Web 2.0 revisited

789 Aufrufe

Veröffentlicht am

  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Web 2.0 revisited

  1. 1. Web 2.0 Security Revisited
  2. 2. ?
  3. 3. Angriffssituation Web 1.0: 2/3
  4. 4. 20 % 26 % SQL Injection 17 % Information Disclosure10 % Known Exploits XSS Missing Authentication 12 % Other 15 %
  5. 5. Web 1.0 Applikation Browser Server
  6. 6. Web 1.0 Applikation Browser Model Server
  7. 7. Web 1.0 Applikation Browser Controller Model Server
  8. 8. Web 1.0 Applikation Browser Controller Model Server View
  9. 9. Web 1.0 Applikation Browser Controller Model Server View
  10. 10. Web 1.0 Applikation Browser Controller Model Server View
  11. 11. Web 1.0 Applikation Browser Controller Model Server View
  12. 12. Web 1.0 Applikation Browser Input-Validierung Controller Model Server View
  13. 13. Web 1.0 Applikation Browser Controller Model Server View
  14. 14. Web 1.0 Applikation Browser Controller Escaping Model Server View
  15. 15. Web 1.0 Applikation Browser Controller Model Server View
  16. 16. RIA-Applikation Browser Controller Model Server View
  17. 17. RIA-Applikation Browser Browser Controller Model Server View
  18. 18. RIA-Applikation Browser Browser View Controller Model Server
  19. 19. RIA-Applikation Browser Controller Browser View Model Server
  20. 20. RIA-Applikation Browser Controller Browser View Model Server
  21. 21. RIA-Applikation Browser Controller Browser View Input-Validierung ? Model Server
  22. 22. XSS
  23. 23. Ein Einbruch in JavaScript
  24. 24. Ein Einbruch in JavaScript Variablen lassen sich überschreiben
  25. 25. Ein Einbruch in JavaScript Variablen lassen sich überschreiben (Fast) jedes Objekt lässt sich überschreiben
  26. 26. Ein Einbruch in JavaScript Variablen lassen sich überschreiben (Fast) jedes Objekt lässt sich überschreiben Jede Methode lässt sich überschreiben
  27. 27. Ein Einbruch in JavaScript Variablen lassen sich überschreiben (Fast) jedes Objekt lässt sich überschreiben Jede Methode lässt sich überschreiben alle Browser-eigenen Methoden!
  28. 28. Ein Einbruch in JavaScript Variablen lassen sich überschreiben (Fast) jedes Objekt lässt sich überschreiben Jede Methode lässt sich überschreiben alle Browser-eigenen Methoden! Jeder Inhalt der Seite kann geändert und verraten werden
  29. 29. Ein Einbruch in JavaScript Variablen lassen sich überschreiben (Fast) jedes Objekt lässt sich überschreiben Jede Methode lässt sich überschreiben alle Browser-eigenen Methoden! Jeder Inhalt der Seite kann geändert und verraten werden Alle Rechte der Seite - Same Origin und Cookies
  30. 30. Ein Einbruch in JavaScript Variablen lassen sich überschreiben (Fast) jedes Objekt lässt sich überschreiben Jede Methode lässt sich überschreiben alle Browser-eigenen Methoden! Jeder Inhalt der Seite kann geändert und verraten werden Alle Rechte der Seite - Same Origin und Cookies Prototype Hijacking: jeder Datenfluss in JavaScript lässt sich korrumpieren
  31. 31. JavaScript Würmer JavaScript VirenCookie Stealing Transaktionen Information Disclosure Intranet / VPN-Attacken
  32. 32. Ein IFRAME reicht.
  33. 33. Mash-Ups Browser Server
  34. 34. Mash-Ups Map- Browser Widget Server Map-Service
  35. 35. Mash-Ups Embedded Map- Application Browser Widget Embedded Server Map-Service Application
  36. 36. Mash-Ups Embedded Map- Application Browser Widget Embedded Server Map-Service Application
  37. 37. crossdomain.xml JSON HijackingClickJacking JavaScript Rootkits Google Wave Facebook
  38. 38. Embedded Applications
  39. 39. Schutz für EmbeddedApplicationsHTML, JS und SQL werden ersetzt Facebook: FBML, FBJS und FBQL ADsafe Google, Yahoo, MySpace: Caja
  40. 40. FBML/FBJSfunction hello(name) { var greeting = {name:name}; $(“greetingdiv“).innerHTML = greeting.name;}function a21987_hello(name) { var a21987_greeting = {name:name}; $(“greetingdiv“).setInnerFBML(a21987_greeting.name);}
  41. 41. Caja
  42. 42. CajaCapability-Based Security für JavaScript Security-Modell ähnlich ACL, RBACL etc Statt Objekten/Referenzen werden Capabilities übergeben
  43. 43. Caja Capability-Based Security für JavaScript Security-Modell ähnlich ACL, RBACL etc Statt Objekten/Referenzen werden Capabilities übergebenResource: /tmp/cookie_fileCapability: $fd = fopen(‘/tmp/cookie_file‘, ‘r‘);
  44. 44. Mash-Ups Embedded Map- Application Browser Widget Embedded Server Map-Service Application
  45. 45. CajaJavaScript/HTML/CSS wird rewritten „Virtual IFrame“ keine Zugriffe auf globale Entities Embedded Valija Cajoler App
  46. 46. Neue Features ==Neue Injections!
  47. 47. Facebook Privacy„Wenn Du eine Anwendung autorisierst, kanndiese auf jegliche Informationen DeinesKontos zugreifen, die diese benötigt, um zufunktionieren.“
  48. 48. Facebook Privacy „Wenn einer Deiner Freunde eine Anwendung besucht oder diese autorisiert, kann dieAnwendung unter anderem auf die Freundesliste deines Freundes sowie auf Informationen über die darin enthaltenen Personen zugreifen.“
  49. 49. Facebook PrivacyThe Month of the Facebook Bugs:„Many Facebook applications, even widely usedor seemingly trustworthy ones, lack basic securityprecautions.“6 der Top 10 waren betroffen.
  50. 50. Realtime WebDie Verbreitung von Viren und Würmern wird schneller im besten Fall Denial of Service im schlechtesten Fall Beyond Repair (das ist neu)
  51. 51. RIA-Cloud Service-Cloud
  52. 52. RIA-Cloud Browser Service-Cloud
  53. 53. RIA-Cloud Browser Mobile Widget Service-Cloud
  54. 54. RIA-Cloud Browser Mobile Widget RIA-Client Service-Cloud
  55. 55. Cross-Zone-ExploitsGeo-Data-Access PIM-Data-Access
  56. 56. Cross-Zone-ExploitsWidget mit RTF-Feed
  57. 57. phonegap
  58. 58. Browser Securitylocation-Spoofing-SchutzJSON HiJacking (alle aktuellen Browser)XSS in CSS verbieten (alle aktuellen Browser)Origin/Access-Control Headers als CSRF-SchutzContent Security PolicyJSON.parse()toStaticHTML (IE8)
  59. 59. Browserbasierte JS-SicherheitCross-Document-Messaging:otherWindow.postMessage(‘Hi!‘, ‘http://google.de/‘);window.addEventListener(“message“, receiveMessage,senderWindow);function receiveMessage(event) { if (event.origin !== ‘http://bing.com‘) return; ...
  60. 60. Sichere Web 2.0ApplikationenBrowser-Features und Header, falls möglich, nutzenWer Widgets / Mashups / UGC mit JS erlaubt: Caja nutzen! Widgets Caja-konform entwickelnApplikationen _müssen_ XSS und CSRF-Schutzenthalten
  61. 61. Vielen Dank! Weitere Fragen: johann-peter.hartmann@sektioneins.de

×