Security: Sicherheitslücken im Netscape Communicator

25.09.2000 von ULLI EIKE  und Mike Hartmann
Auch Netscapes Browser bleibt von Bugs nicht verschont. Schlecht für den Anwender, denn von Netscape gibt es kaum noch Hilfe oder Fixes. Wir nennen Ihnen die aktuellen Gefahrenquellen ab Version 4.5.

Die letzte große Neuauflage des Netscape Communicators erschien mit der Version 4.5. Zwar gelang es Netscape, hier zahlreiche Bugs aus den Vorversionen zu beseitigen, allerdings traten gleichzeitig neu Sicherheitslücken auf. Von diesen sind einige in der verbesserten Version 4.51 gestopft. Auch die weiteren Versionen 4.6 und 4.7 zeichnen sich hauptsächlich durch Bugfixes aus.

Mit dem Mozilla-Projekt entsteht der Communicator derzeit völlig neu. Netscape beschränkt sich daher bei der Pflege der aktuellen Versionen auf das Notwendigste. Für den sicherheitsbewussten Benutzer bleibt deshalb nur, sich in den entsprechenden Newsforen zu informieren. Empfehlenswert sind das Netscape Communicator Forum sowie das spezielle Sicherheitsforum.

Die meisten Sicherheitslücken entstehen durch die lokale Ausführung von JavaScript-Funktionen, die dabei erweiterte Zugriffsrechte erhalten. Tatsächlich wird der Code für die lokale Ausführung jedoch trickreich durch externe HTML-Seiten in lokale Bereiche wie zum Beispiel den Browsercache "injiziert".

Sicherheitslücken, die Netscape-Communicator-Versionen vor 4.5 betreffen, wurden entweder mit der Version 4.51 beseitigt, oder sind Varianten der hier ausführlich vorgestellten Fehlfunktionen. Sie unterscheiden sich im Wesentlichen nur durch programmtechnische Details, die Wirkungsweise ist meist gleich zu den hier aufgezeigten Bugs.

Bei der Jagd auf Netscape Bugs hat sich der Bulgare Gregori Guninski besonders profiliert. Seine Erfolgsquote beim Endecken von Sicherheitslöchern im Netscape Communicator liegt ähnlich hoch, wie bei der Suche nach Bugs im Internet Explorer.

Auf den folgenden Seiten finden Sie in chronologisch absteigender Reihenfolge Beschreibungen der bekannten Bugs und die zugehörigen Gegenmaßnahmen.

Achtung: Bevor Sie Links zu Bug-Demonstrationen folgen, machen Sie sich bitte mit der Wirkungsweise und den zu erwartenden Resultaten vertraut. Einige Bugs können unter Umständen zum Absturz des Communicators führen. mha)

Neu: Javascript in Cookies

Der Navigator bis Version 4.72 enthält eine Sicherheitslücke, die es böswilligen Website-Betreibern erlaubt, HTML-Dateien vom Rechner des Benutzers auszulesen. Das sind unter anderem die Bookmark-Dateien oder die Browser-History. Aus diesen Daten ließe sich beispielsweise problemlos ein Profil mit Surf-Gewohnheiten erstellen.

Um an diese Daten zu kommen, muss die Website lediglich einen Cookie mit Javascript-Code auf dem Rechner speichern.

Workaround

Voraussetzung ist, dass der Netscape-Profilname bekannt ist (in den meisten Fällen ist das "default") und dass Cookies sowie Javascript eingeschaltet sind.

Eine Demonstration der Sicherheitslücke findet sich auf den Seiten von Peacefire.

Javascript in Cookies

Betrifft:

Communicator bis 4.72

Wirkung:

Datenausspähung

Patch:

Upgrade auf 4.75

Neu: URL-Lesen

Ein Fehler in der Java-Implementation von Netscape erlaubt es Applets, jede Ressource auf dem Rechner auszulesen, die über eine URL erreichbar ist. Das Applet muss lediglich die Klassen netscape.net.URLConnection und netscape.net.URLInputSteam verwenden. Solche Applets können lokale Daten auslesen und auch durch eine Firewall ins Internet schicken.

Normalerweise werden Klassen, die auf Dateien zugreifen können, überprüft, ob sie lokal oder von einem entfernten Rechner stammen. Bei den beiden oben genannten Klassen entfällt diese Überprüfung jedoch. Dadurch können sie über die URL "file://" auf lokale Dateien zugreifen. Auch Dateien im Intranet sind nicht sicher.

Workaround

Der Fehler ist ab der Version 4.75 des Netscape Communicator beseitigt.

URL Lesen

Betrifft:

Communicator bis 4.74

Wirkung:

Datenausspähung

Patch:

Upgrade auf 4.75

Neu: Inkonsistente Warnungen

Wenn der Benutzer Webseiten per SSL aufruft, warnt der Navigator, falls das Zertifikat der Site nicht mit dem Domain-Namen übereinstimmt. Übergeht der Benutzer diese Warnung und ruft die Seite dennoch auf, warnt Netscape bei allen folgenden Seiten nicht mehr, die dasselbe Zertifikat verwenden.

Wenn ein Hacker nun den DNS-Eintrag einer Site manipuliert und es schafft, dass der Benutzer die Sicherheitswarnung einmal übergeht, gibt der Benutzer unter Umständen sensitive Daten an die Site des Hackers preis, weil Netscape im Folgenden nicht mehr warnt.

Workaround

Lassen Sie besondere Vorsicht bei der Arbeit mit Zertifikaten walten. Vertrauen Sie nicht blind jeder Verbindung zu einer Site, bei der Netscape das Symbol für eine sichere Verbindung anzeigt.

URL Lesen

Betrifft:

Communicator bis 4.75

Wirkung:

Datenausspähung

Patch:

Keiner

Weitere Informationen

Neu: JPEG-Buffer

Netscape verwendet eigene Routinen, um JPEG-Dateien anzuzeigen. Die meisten Anzeige-Routinen für JPEG werten das Kommentarfeld gar nicht erst aus, Netscape dagegen versucht dieses und lässt sich durch ungültige Informationen verwirren. Die Folge ist, dass ein Hacker beliebigen Programmcode, den er im Bild versteckt hat, ausführen lassen kann.

Workaround

Ab Netscape 4.74 ist dieser Bug gefixt.

JPEG-Buffer

Betrifft:

Communicator bis 4.73

Wirkung:

Ausführen beliebigen Codes

Patch:

Netscape 4.74

Neu: Brown Orifice

In allen Netscape-Versionen bis 4.74 ist eine schwere Sicherheitslücke, die es einem Java-Applet erlaubt, als Server zu agieren und Dateien zum Abruf bereitzustellen. Ein entsprechendes Demo-Applet zeigt die Funktionsweise. In Anlehnung an das Programm Back Orifice heißt das Applet Brown Orifice.

Es meldet sich bei einem Hauptserver an und überträgt, ähnlich wie Napster, die Liste der zur Verfügung stehenden Dateien. Andere Benutzer können dann direkt mit dem Brown Orifice Applet Kontakt aufnehmen und die Daten runterladen.

Workaround

Steht der Rechner hinter einer Firewall, ist die Kontaktaufnahme von außen unmöglich. Auch Personal Firewalls wie Zonealarm verhindern die Ausspähung erfolgreich. Dennoch ist ein Upgrade auf Netscape 4.75 dringend anzuraten.

Brown Orifice

Betrifft:

Communicator bis 4.74

Wirkung:

Stellt lokale Daten im Internet zur Verfügung

Patch:

Netscape 4.75

Weitere Informationen

Neu: /tmp Symlink

Beim Importieren von Zertifikaten verwendet Netscape auf Linux-Rechnern eine temporäre Datei im Verzeichnis /tmp. Diese Datei kann von jedermann gelesen und geschrieben werden.

Kann ein Hacker den Dateinamen richtig erraten, ist er in der Lage, einen symbolischen Link auf eine beliebige andere Datei zu erzeugen und damit ein falsches Zertifikat ins System einzuschleusen.

Workaround

Derzeit ist keine Workaround bekannt. Die Gefahr ist allerdings nicht besonders hoch, da sich ein Hacker zunächst Zugriff auf die Maschine verschaffen und ein eigenes Programm installieren müsste.

/tmp Symlink

Betrifft:

Communicator unter Linux

Wirkung:

Erlaubt das Einschleusen falscher Zertifikate

Patch:

Keiner

Weitere Informationen

Neu: Ungültige SSL-Warnung

Netscape ist beim Umgang mit SSL-Zertifikaten nicht gründlich genug. Richtigerweise sollte Netscape das Zertifikat anhand des Namens überprüfen und dann die Verbindung anhand des Namens im Zertifikat und der bereits bestehenden Verbindung herstellen, um sicherzugehen, dass die richtige Site angesprochen wird. Doch mit Netscape bis Version 4.72 ist folgendes Szenario möglich:

Ein Hacker verändert den DNS-Eintrag von www.beispiel.de, sodass alle Anfragen an seine www.hackersite.de weitergeleitet werden. Er stellt seine Site so ein, dass sie als Proxy agiert und die Anfragen an www.beispiel.de weiterleitet.

Wenn nun ein Benutzer www.beispiel.de aufruft, landet er auf der Hackersite, ohne es zu merken. Der Hacker sorgt nun dafür, dass eine SSL-Verbindung aufgebaut wird, indem er beispielsweise ein Bild über https abruft. Da die meisten Benutzer die SSL-Warnung ausgeschaltet haben, bekommen sie davon nichts mit. Der Hacker benötigt dazu nur ein gültiges SSL-Zertifikat für sich selbst.

Wenn der Benutzer nun auf www.beispiel.de einkauft und eine sichere Verbbindung aufbauen will, um seine Kreditkartennummer einzugeben, baut Netscape eine Verbindung zu www.beispiel.de auf, wird jedoch aufgrund des gefälschten DNS-Eintrags auf www.hackersite.de umgeleitet. Dabei stellt Netscape fest, dass zu dieser IP-Adresse bereits eine SSL-Verbindung besteht, und verwendet diese. Damit glaubt der Benutzer, seine Daten an www.beispiel.de zu schicken, tatsächlich gehen die Daten aber an www.hackersite.de.

Workaround

Die Sicherheitslücke ist ab Netscape 4.73 behoben.

Ungültige SSL-Warnung

Betrifft:

Netscape bis 4.72

Wirkung:

Ausspähung sensitiver Daten

Patch:

Netscape 4.75

Weitere Informationen

Dynamic Font Support Bug

Die Unterstützung dynamischer Schriftarten kann unter Umständen zum Absturz des Communicators führen. Schuld daran ist ein Fehler im "Bitstream's TrueDoc Portable Font Displayer" (nstdfp32.dll). Beim Laden von modifizierten PFR-Dateien (PFR: Portable Font Ressource) tritt ein Programmfehler auf, der den Communicator abstürzen lässt.

Ist die im Header der PFR-Datei angegebene Länge der folgenden Daten erheblich kleiner als der tatsächliche Umfang, wird zu wenig Speicher für die Daten angelegt und das Schreiben der überzähligen Informationen führt zu einem Pufferüberlauf. Bufferoverflows können unter Umständen dazu genutzt werden , schädlichen Programmcode an das System zu übermitteln. Dieser Programmcode kann meist die Sicherheitsbeschränkungen umgehen und Schaden im System anrichten.

Workaround

Deaktivieren Sie die Verwendung dynamischer Schriftarten unter "Bearbeiten/Einstellungen/Gesamtbild/Schriftart".

Dynamic Font Support Bug

Betrifft:

Communicator bis 4.7

Wirkung:

Programmabsturz

Patch:

Nicht verfügbar

Weitere Informationen

Beispiel bei Whiteheads

JavaScript URL-Bug

Mit Hilfe von JavaScript lässt sich beim Laden einer Seite automatisch ein neues Fenster öffnen. Dazu wird die URL dieses Fensters im JavaScript-Code übergeben. Die Sicherheitslücke entsteht, wenn zusammen mit dieser URL ausführbarer JavaScript-Code übertragen wird. Erhält die URL den Zusatz "&{...}", kann der Angreifer zwischen den geschweiften Klammern eine Funktion von JavaScript aufrufen. Damit ist es beispielsweise möglich, über "about:cache" den Inhalt des Caches und somit die zuletzt besuchten Internetadressen zu ermitteln.

Workaround

Deaktivieren Sie JavaScript oder installieren Sie die neueste Communicator-Version.

JavaScript URL-Bug

Betrifft:

Communicator bis 4.6

Wirkung:

Ausspähen von Daten

Patch:

Upgrade auf neueste Communicator-Version

Weitere Informationen:

Georgi Guninskis Bugbeschreibung und Beispiel

JavaScript Meta Bug

Innerhalb des Meta-Tags lassen sich unter dem Parameter "charset" JavaScript-Funktionen ablegen. Ein JavaScript-Programm kann die Funktionen mit der Anweisung "about:document" lokal starten. Über diesen Umweg sind Informationen aus dem Cache und aus der Konfigurationsdatei zugänglich. Der Datenschnüffler kann auf diese Weise unter Umständen Informationen über die zuletzt besuchten Sites, aber auch über E-Mail-Adresse, Mailserver und -passwort abrufen.

Workaround

Deaktivieren Sie JavaScript oder installieren Sie die neueste Communicator-Version.

JavaScript Meta Bug

Betrifft:

Communicator bis 4.6

Wirkung:

Ausspähen von Daten

Patch:

Upgrade auf neueste Communicator-Version

Weitere Informationen:

Georgi Guninskis Bugbeschreibung und Beispiel

JavaScript ILayer Bug

Über eine JavaScript-Funktion ist es möglich zu überprüfen, ob ein bestimmtes Verzeichnis auf dem Computer des Benutzers existiert. Dazu wird ein Layer erzeugt, und das betreffende Verzeichnis als lokale URL übergeben. Innerhalb des Layers wird der Verzeichnisinhalt daraufhin gelistet. Durch den Aufruf eines nicht existierenden Verzeichnisses kann der Communicator zum Absturz gebracht werden.

Workaround

Deaktivieren Sie JavaScript oder installieren Sie die neueste Communicator-Version.

JavaScript ILayer Bug

Betrifft:

Communicator bis 4.6

Wirkung:

Ausspähen von Daten

Patch:

Upgrade auf neueste Communicator-Version

Weitere Informationen:

Georgi Guninskis Bugbeschreibung und Beispiel

JavaScript Track Bugs

Mit Hilfe eines JavaScript-Programms ist es möglich, eine aktuelle URL zu ermitteln. Dazu wird programmgesteuert ein neues Fenster erzeugt und der notwendige Programmcode über "data:" beziehungsweise "view-source:" sowie bis Communicator 4.51 auch mit "document.links" an die lokale JavaScript-Konsole übergeben. Mit Hilfe der Konsole lässt sich nun die aktive Adresse des neuen Fensters auslesen.

Obwohl die Bugs in den neuen Versionen teilweise beseitigt sind, besteht noch immer die Gefahr eines Communicator-Absturzes .

Workaround

Deaktivieren Sie JavaScript oder installieren Sie die neueste Communicator-Version.

JavaScript Track Bugs

Betrifft:

Communicator bis 4.6 (Windows), 4.08 (NT), 4.07 (Linux)

Wirkung:

Ausspähen von Daten

Patch:

Upgrade auf neueste Communicator-Version

Weitere Informationen:

Bugbeschreibung und Beispiel data:-Bug von Georgi Guninski

Bugbeschreibung und Beispiel view-source:-Bug von Georgi Guninski

JavaScript View-Source Bug

Mit Hilfe der View-Source-Funktion zeigt der Communicator den Quelltext von HTML-Seiten und anderen Dokumenten an. Gleichzeitig lässt sich jedoch auch ein Skript starten, welches die angezeigten Daten auswertet. Beim Anlegen eines ILayers, der die Konfigurationsdaten mit Hilfe von "view-source:wysiwyg://1/about:config" enthält, kann ein passendes Skript die enthaltenen kritischen Daten wie E-Mail-Adresse, Passwort und zuletzt besuchte Websites ermitteln. Außerdem ist der Zugang zu Informationen im Cache und in lokalen Verzeichnissen möglich. Besonders gefährlich ist, dass diese Sicherheitslücke beim Anzeigen HTML-formatierter E-Mail-Nachrichten im Messenger vorhanden ist.

Workaround

Deaktivieren Sie JavaScript oder installieren Sie die neueste Communicator-Version.

JavaScript View-Source Bug

Betrifft:

Communicator bis 4.6 (Windows), 4.07 (Linux)

Wirkung:

Ausspähen von Daten

Patch:

Upgrade auf neueste Communicator-Version

Weitere Informationen:

Georgi Guninskis Bugbeschreibung und Beispiel

JavaScript Bookmark Bug

Mit Hilfe von JavaScript Code im Title-Tag einer HTML-Seite öffnen sich zwei unterschiedliche Sicherheitslücken.

Zum Einen führt der Communicator den betreffenden Code aus, sobald die Seiteninformation aufgerufen wird (about:document). Das Script hat dann aus der als sicher eingestuften About-Umgebung Zugriff auf weitere About-Aufrufe, etwa "about:cache" und "about:config". Die Gefahren entsprechen den bereits bei den vorhergehenden Bugs beschriebenen Risiken: Ausspähen des Caches, der Mail-Adresse und Passwörtern.

Der zweite Bug betrifft die sichere Umgebung der Lesezeichen. Auch hier wird der im Titel befindliche Code dazu benutzt, die Sicherheitsbeschränkungen zu unterlaufen und Daten auf der Festplatte zu lesen. Voraussetzung für den externen Aufruf ist, dass der Pfad zur Lesezeichendatei bekannt ist. Da fast alle Benutzer die Default-Einstellung benutzen, ist dieser nicht schwer zu erraten.

Workaround

Deaktivieren Sie JavaScript oder installieren Sie die neueste Communicator-Version.

JavaScript Bookmark Bug

Betrifft:

Communicator bis 4.6 (Windows), 4.07 (Linux)

Wirkung:

Ausspähen von Daten

Patch:

Upgrade auf neueste Communicator-Version

Weitere Informationen:

Bugbeschreibung und Beispiel About-Bug von Georgi Guninski

Bugbeschreibung und Beispiel Title-Bug von Georgi Guninski

JavaScript Bookmark Bug

Durch eine entsprechend gestaltete URL lässt sich JavaScript Code innerhalb der Lesezeichen des Communicators zum Umgehen von Sicherheitsbeschränkungen missbrauchen. JavaScript besitzt nur innerhalb der aktuellen Domain erweiterte Rechte, etwa zum Lesen von Dateien. Wird nun ein Skript als Lesezeichen gespeichert, ist beim späteren Aufruf dieses Lesezeichens die Domain der gerade im Browser angezeigten Seite aktiv. Besonders gefährlich ist dies, wenn der Aufruf stattfindet, während eine lokale Datei im Browserfenster angezeigt wird. Das Skript hat nun die Rechte zum Lesen aller Dateien, die sich im gleichen Verzeichnis wie die lokale Datei befinden. Auf diese Weise sind dem Skript alle hier gespeicherten Daten zugänglich.

Zudem kann das Skript zum so genannten "Spoofing" missbraucht werden, dem Anzeigen gefälschter Seiten unter dem Deckmantel der gerade aktiven, vertrauenswürdigen Site.

Workaround

JavaScript Bookmark Bug

Betrifft:

Communicator bis 4.6

Wirkung:

Ausspähen von Daten

Patch:

Upgrade auf neueste Communicator-Version

Weitere Informationen:

Georgi Guninskis Bugbeschreibung und Beispiel