Vergitterte Fenster, Teil 2
Seite 2: Gefahrenzone
Gefahrenzone
Das Zonenmodell des Internet Explorer definiert, welche Webseite welche Aktionen durchführen darf. Beispielsweise kann eine im Internet aufgerufene Webseite nicht auf die Festplatte zugreifen. Auf dem PC gespeicherte HTML-Seiten öffnet der Browser im Kontext "Local Machine", für die keine Sicherheitseinstellungen definiert sind. Diese Zone ist keine echte Zone im Internet Explorer und nur über die Registry konfigurierbar. Durch Tricks versuchen Angreifer, Skripte in dieser Zone auszuführen, um ihre Rechte auf dem System auszubauen. Um dem entgegenzuwirken, gelten fortan echte Sicherheitseinstellungen für die Zone "Local Machine" (Zone 0). Microsoft behauptet zwar, dass die Einstellungen dafür strenger als die der "Internet Zone" seien, vergleicht man aber die Registry-Einstellungen beider Zonen, so kommt man zu einem anderen Ergebnis: Zumindest in der Beta-Version ist alles ist auf "Erlauben" oder "Aktivieren".
Ohnehin ist das unerlaubte Wechseln in die lokale Sicherheitszone die am meisten ausgenutzte Schwachstelle im Internet Explorer. Mit Zone Elevation Blocking will Microsoft verhindern, dass eine Seite oder ein Link in einer Zone mit mehr Rechten ausgeführt wird, es sei denn der Anwender erlaubt das. Objekte oder Elemente einer Seite, die der Browser in der "Internet Zone" ausführt, können somit laut Microsoft nie in die Zone "Lokales Intranet" wechseln.
Bei der Übertragung einer Datei vom Server zum Client können falsche Typinformation übertragen werden. So erkennt der Internet Explorer etwa eine Datei anhand ihres MIME-Typs als .php-Datei, in Wirklichkeit handelt es sich aber um eine .hta-Datei, die nach dem Herunterladen gestartet wird. Obwohl die Angaben der Datei-Erweiterung und des MIME-Typs, respektive Content-Typs des HTTP-Headers unterschiedlich sind, meldet der Browser keinen Fehler. Mit obigem Beispiel php/hta-Beispiel haben bereits einige Webseiten Dialer und Trojaner auf Client-PCs installiert. Davor will Microsoft Windows XP nun schützen, indem der Internet Explorer gleich vier Informationen miteinander vergleicht: Dateiendung, Content Type, Content Disposition und das Ergebnis eines MIME-Sniffs. Der MIME-Sniff versucht den Inhalt der Datei anhand von Mustern zu erkennen. Stimmt ein Wert nicht mit den anderen überein, so benennt der Internet Explorer die Datei um und legt sie im Cache ab, ohne sie mit einer Applikation zu öffnen. Welchen Namen die Datei erhält, geht aus der Dokumentation nicht hervor.
Despotisch
Gedanken hat sich Microsoft auch um die nervigen Pop-Up-Fenster (window.createPopup) gemacht, die einige Webseiten automatisch öffnen. Gemeint sind hier nicht die Fenster des Windows-Nachrichtendienstes, sondern mit Werbung und Spam gefüllte Browser-Fenster. Mit dem Pop-up-Manager können Anwender das Öffnen dieser Plagegeister unterdrücken, allerdings nur für Webseiten in der Internet-Zone und "eingeschränkte Sites". Versucht eine blockierte Seite ein Fenster zu öffnen, so alarmiert der Pop-up-Manager den Anwender mit einem Hinweis und einem Warnton. Der Besuch einiger Webseiten könnte demnächst also ziemlich geräuschvoll werden. Glücklicherweise kann man aber den Warnton wieder abstellen. Darüberhinaus ändert sich das Verhalten der Pop-up-Fenster hinsichtlich Lage und Größe, um zu verhindern, dass diese Teile des Hauptfensters verdecken und ungestörtes Surfen unmöglich machen. Damit ist es auch nicht mehr möglich, mit sogenannten Chromeless Windows -- Frames ohne Rahmen und Statusleisten -- Dialogboxen oder Teile der Windows-GUI zu simulieren. Durch den geschickten Aufbau solcher Fenster war es möglich, beispielsweise den Login-Dialog täuschend echt zu simulieren. Dahinter steckte aber ein skriptgesteuertes Pop-up, das eingegebene Namen und Passwörter an einen Rechner ins Internet schickte.
Um die Herkunft einer Seite zu verschleiern, versuchen einige Websites den Blick auf Adress- und Statusleisten eines neuen Fensters zu versperren, indem sie Teile des neuer Browser-Frames außerhalb des sichtbaren Bildschirmes platzieren. Zukünftig können Skripten der window.open()-Funktion nicht mehr beliebige Parameter zum Öffnen und Platzieren neuer Fenster übergeben. Standardmäßig werden solche Fenster zusätzlich immer mit Statusleiste geöffnet.
Aus Sicherheitsgründen ist der Zugriff von Objekten einer DNS-Domäne auf Objekte einer anderen Domäne verboten. Das soll verhindern, dass ein Skript eines Browserfensters auf die Inhalte eines anderen Browserfensters zugreifen kann, um etwa Information auszulesen. Durch Implementierungsfehler gilt diese Einschränkung aber nicht vollständig für Objekte, die im Cache abgelegt sind. Der neue Schlüssel FEATURE_OBJECT_CACHING blockiert den Zugriff von Skripten auf Objekte im Cache. Die geschieht unabhängig davon, ob Skript und Objekt von derselben URL stammen. Beim Aufruf einer neuen URL löscht der Browser alle Referenzen.