Cross-Site-Scripting: Datenklau über Bande

Seite 3: Aus dem Rahmen fallen

Inhaltsverzeichnis

Durch ungepatchte Sicherheitslöcher in Web-Browsern kann JavaScript aber auch mehr als nur Cookies stehlen. Inbesondere der Internet Explorer, der Microsofts JavaScript-Erweiterung JScript ausführen kann, hat eine Reihe von Schwachstellen, die sich durch Skripting ausnutzen lassen. JavaScript kann auf alle Elemente einer HTML-Seite zugreifen, sie verändern oder auch neue hinzufügen -- allerdings nur dann, wenn beide Seiten aus der gleichen Domain stammen ("same-Origin-Prinzip"). So könnte JavaScript-Code auf dieser Seite den Inhalt einer gleichzeitig geöffneten heise-online-Seite modifizieren. Eine Reihe von Fehlern im Internet Explorer erlaubten es allerdings schon öfter, dieses same-Origin-Konzept zu umgehen. Damit war es dann einer Web-Seite möglich, andere Seiten "fernzusteuern" auch wenn sie aus anderen Quelle stammen. Ein Extremfall war ein Bug, der es ermöglichte, ein Hilfefenster zu öffnen und zu manipulieren. Dieses war dann mit den Rechten des lokalen Rechners ausgestattet und konnte damit auch auf lokale Dateien zugreifen. Bei solchen Fehlern spricht man von Cross-Frame- beziehungsweise Cross-Windows-Scripting. Ob der eigene Browser für solche Angriffe verwundbar ist, kann man auf den Seiten des c't-Browserchecks sehen. Mit einigen der Sicherheitslöcher ist der Zugriff auf lokale Dateien und sogar das Ausführen beliebiger Programme möglich. Die Konsequenzen kann sich jeder selbst ausmalen.

Cross-Site-Scripting-Attacken haben ihre Ursache in fehlerhaften Web-Applikationen, während Cross-Frame-Scripting-Attacken auf Sicherheitslücken im Web-Browser beziehungsweise in den Skripting-Funktionen zurückzuführen sind. Insbesondere die Kombination von Schwachstellen auf Server und Client gibt einem Angreifer die Chance, die Kontrolle über einen PC zu erlangen. Die Mehrzahl der IE-Installation dürfte Active Scripting aktiviert haben. Ein sicherer Schutz wäre das Deaktivieren aller Skripting-Funktionen. Als Empfehlung kann das nicht gelten, schließlich werden viele Webseiten dann nicht mehr korrekt dargestellt. Durch das Einspielen aktueller Patches kann man aber die Hürden für einen Angreifer erhöhen.

[1] Evolution of Cross-Site Scripting Attacks

[2] Brute-Force Exploitation of Web Application Session IDs

[3] XSS-FAQ

[4] About Cross-Frame Scripting and Security (dab)