Risiko durch MIME-Sniffing im Internet Explorer

Seite 2: Rettung in Sicht

Inhaltsverzeichnis

Microsoft hat das Problem erkannt und plant, es mit der kommenden Version des Internet Explorer anzugehen. So snifft die Version 8 des Internet Explorer bei Bildern grundsätzlich nicht mehr und ignoriert damit eingebettetes HTML. Zudem versteht der Internet Explorer 8 die proprietäre Erweiterung des Content-Type authoritative=true|false (etwa Content-Type=text/html; authoritative=true;), durch die sich das MIME-Sniffing für einzelne Downloads abstellen lässt. Der Internet Explorer behandelt die Datei dann so, wie es der Server signalisiert.

Für kritische Fälle bietet der neue Header „X-Download-Options: noopen“ sogar die Möglichkeit, Dateien strikt außerhalb des Kontextes anzuzeigen. Somit lassen sich sogar HTML-Dateien sicher ausliefern: Der Browser bietet nur an, die Datei zu speichern. Leider wird es einige Zeit dauern, bis der Internet Explorer 8 seine Vorgänger hinreichend verdrängt hat, um sich als Website-Betreiber auf solche Maßnahmen verlassen zu können.

Die Abwehr präparierter Dateien gestaltet sich derzeit jedoch eigentlich ganz einfach: Anwender können seit Windows XP SP2 das MIME-Sniffing im Internet Explorer unter der Rubrik Internetoptionen->Sicherheit->Internet->Anpassen->"Dateien basierend auf dem Inhalt und nicht der Dateierweiterung öffnen" deaktivieren. Allerdings reißt das unter Umständen wieder alte Löcher auf. Ob die Maßnahme also mehr Sicherheit bietet, müssen Praxistests zeigen. Ohnehin dürfte sich der Hinweis unter Anwendern nicht besonders weit herumsprechen, sodass besser die Betreiber von Webservern die Vorsichtsmaßnahmen zum Schutz ihrer Besucher ergreifen und dafür sorgen, dass ihre Systeme keine präparierten Bild ausliefern.

Administratoren können den Typ einer auf ihren Server hochgeladenen Datei etwa mit Skripten auf ihre Schlüssigkeit prüfen. Hat ein Bild die Endung .JPG und sagt die Signatur am Anfang der Datei dasselbe (unter Linux etwa mit dem Befehl file bild.jpg, unter PHP beispielsweise mit getimagesize), ist alles in Ordnung und der Server darf es ausliefern. Selbst wenn es doch HTML-Code enthält, wird der Internet Explorer ihn nicht ausführen. Hierbei ist aber zu beachten, dass nur Bilder so abgesichert werden können und dass der vom Server gesendete Content-Type unbedingt korrekt sein muss. Bei anderen Formaten funktioniert dieser Trick nicht.

Wer ganz sicher gehen will, kann aber zusätzlich die ersten 256 Bytes der Datei auf HTML-Code überprüfen. Muster, die den IE annehmen lassen, es handele sich um HTML-Code sind die üblichen HTML-Tags wie <body>, <head>, <html>, <img>, <script> und so weiter. Findet sich keines dieser Muster innerhalb der ersten 256 Bytes der Datei, so kann Microsofts Browser auch nichts interpretieren.

Darüber hinaus kann der Administrator seinen Server so konfigurieren, dass er beim Download von Dateien (nicht Öffnen von Seiten) immer den Header "Content-disposition: attachment; filename="<filename.ext>" ausliefert. Dies verhindert, dass der Browser die Dateien im Kontext der Internet-Seite öffnet. Stattdessen öffnet er die Datei mit einer lokal verknüpften Anwendung – was Anwender aber wahrscheinlich eher irritieren wird. Dieses Umschreiben der Header funktioniert aber nur, wenn man die Direktzugriffe auf Dateien durch die Anwender verhindert. Daher sollten die Speicherorte von hochgeladenen Dateien nicht öffentlich lesbar sein. Zudem empfiehlt es sich, zufällige Dateinamen zu verwenden.

Die effizienteste Methode ist, Bilddateien mit ImageMagick oder vergleichbaren Tools beispielsweise im Format zu konvertieren. Dabei gehen Codefragemente in den Bildern verloren, sodass diese für den Anwender keine Gefahr mehr darstellen. Große Portale wie Xing und StudiVZ konvertieren etwa die hochgeladenen Portraitfotos der Anwender. Unter Umständen öffnet man damit aber auch neues, potentielles Einfallstor. Wird beispielsweise in der verwendeten ImageMagick-Bibliothek ein kritischer Buffer-Overflow-Fehler bekannt, könnten Angreifer diesen durch speziell präparierte Bilder auslösen und damit Code auf den Server schleusen und starten.

Was einst gut gemeint war, kehrt sich plötzlich um und wird zur Bedrohung für Anwender des Internet Explorers. Zwar gibt es Gegenmaßnahmen, ob die sich mittelfristig auch etablieren, bleibt offen. Derzeit scheint Cross-Site-Scripting über manipulierte Bilder noch nicht weit verbreitet zu sein, allerdings kann sich dies sehr schnell ändern, da Kriminelle gerade die Mitmach-Portale besonders im Visier haben. Abhilfe könnte der Wechsel auf einen alternativen Browser bringen, etwa Firefox. Der führt zwar auch einen MIME-Sniff durch, er rendert aber ein Bild nicht plötzlich als HTML. (dab)