iFrames: XSS-Sicherheitslücke ermöglicht Cross-Site-Scripting in Chrome und Co.
Durch das neue HTML5-Attribut srcdoc lassen sich durch einen Bug in Chrome und Safari die XSS-Filter umgehen. Es drohen Cross-Site-Scripting-Angriffe.
Ich habe von einer Sicherheitslücke in Chrome und Safari gehört, mit der Angreifer die Anti-Cross-Site-Scripting-Filter umgehen können. Die Schwachstelle soll sich einfach ausnutzen lassen. Wie kann ich meine Anwender und Systeme schützen, bis entsprechenden Sicherheitsupdates oder Patches verfügbar sind?
So genannte Cross-Site-Scripting-Schwachstellen gibt es schon seit den 1990ern. Die meisten großen Websites waren schon einmal von XSS-Schwachstellen betroffen. Dazu gehören auch Google, Yahoo! und Facebook. Angriffe über XSS-Schwachstellen lassen sich ausnutzen, um Daten zu stehlen, die Kontrolle über die Sitzung eines Anwenders zu erhalten und schädlichen Code laufen zu lassen. Auch in Verbindung mit Phishing wird die Technik immer wieder genutzt.
Cross-Site-Scripting funktioniert, indem man Code in die Ausgabe einer Web-Applikation einspeist. In der Regel verwendet man eine Client-seitige Programmiersprache wie zum Beispiel JavaScript. Weil XSS eine so gefährliche Sicherheitslücke ist, beinhalten moderne Web-Browser entsprechende Sicherheitsfilter. Damit versucht man, Cyberkriminellen daran zu hindern, bösartigen, eingespeisten Code im Browser eines Anwenders laufen zu lassen, sobald dieser eine Website besucht, die anfällig für XSS-Angriffe ist.
Der Security-Experte Ioseba Palop von Eleven Paths hat kürzlich einen Bug im Cross-Site Scripting Filter von Chrome und Safari gefunden. Damit können Angreifer den Filter unter bestimmten Umständen umgehen und Besucher gewisser Seiten kompromittieren. Das Problem liegt darin, wie der Filter das neue HTML5-Attribut srcdoc im iFrame-Tag behandelt. Der iFrame -Tag wird von allen großen Browsern unterstützt und man verwendet ihn, um ein anderes Dokument innerhalb des derzeitigen HTML-Dokuments einzubetten. Die Syntax ist wie folgt:
<iFrame src="https://www.techtarget.com"></iFrame>
Das Attribut srcdoc des iFrame -Tags ist in HTML5 neu. Derzeit wird es lediglich von Firefox, Chrome und Safari unterstützt. Das Attribut srcdoc spezifiziert den HTML-Inhalt der Seite, der innerhalb eines Frames gezeigt werden soll. Ein Beispiel könnte so aussehen:
<iFrame srcdoc="<p>Welcome to TechTarget!</p>" src="https://www.techtarget.com"></iFrame>
(Spezifiziert man die Attribute srcdoc und src gemeinsam, hat srcdoc Priorität. Im Beispiel oben gibt es eine Fallback-URL für Browser, die srcdoc noch nicht unterstützen.)
Palops Proof of Concept zeigt Folgendes: Sollte eine Webseite einen iFrame enthalten und keine Charset-Filter an die Parameter GET oder POST übermitteln, lässt sich das Attribut srcdoc mithilfe von JavaScript-Code manipulieren. Derzeit gibt es nicht wirklich einen praktikablen Workaround für diese Schwachstelle. Deswegen sollten Anwender vorsichtig sein, wenn Sie nicht-vertrauenswürdige Seiten besuchen. Weiterhin muss der Antimalware-Schutz für URL-Filter bösartiger Adressen auf dem aktuellen Stand sein. Damit ist zum Beispiel gemeint, Microsofts SmartScreen zu aktivieren.
Sicherheitsabteilungen sollten sicherstellen, dass sich die Web-Entwickler dieses Problems bewusst sind. Weiterhin sollten sich die Web-Entwickler die relevanten Dokumentationen zu Gemüte führen, wenn Sie die neuen HTML5-Attribute verwenden wollen. Nur so ist garantiert, dass diese korrekt und sicher implementiert werden. Zum Beispiel erwartet man vom Attribut srcdoc, dass es zusammen mit den Attributen sandbox und seamless verwendet wird. Das Attribut sandbox aktiviert diverse zusätzliche Restriktionen für Inhalte, die vom iFrame gehostet werden. Weiterhin ist es wichtig, separate Domänen für die Inhalte eines iFrame zu benutzen. Sollte der Angreifer nämlich einen Anwender überzeugen, die Seite direkt aufzurufen, läuft der iFrame dann nicht im Kontext der Original-Seite. Die meisten Websites bieten diverse Angriffspunkte wie Suchfelder, Kommentar-Optionen und Cookies. Entwickler sollten Anwender-Eingaben also immer bereinigen, bevor diese verarbeitet und wieder angezeigt werden. Das gilt ganz besonders auch bei der Verwendung von iFrame.
Folgen Sie SearchSecurity.de auch auf Facebook, Twitter und Google+!