Auch Netscapes populärer Webbrowser bleibt von Bugs im eigenen Sicherheitssystem nicht verschont. Schlecht für den Anwender, denn seit einigen Monaten gibt es von Netscape kaum noch Bugfixes und Onlinehilfen.
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 zahlreiche weitere 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 6.0 derzeit völlig neu. Netscape beschränkt sich daher bei der Pflege der aktuellen Versionen auf das Notwendigste. Das letzte offizielle Netscape-Sicherheitsbulletin stammt aus März 1999. Für den sicherheitsbewussten Benutzer bleibt deshalb nur, sich in den entsprechenden Newsforen zu informieren.
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.
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 odifizierten 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.
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.
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.
JavaScript Layer 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 .
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.
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.
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 B 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.
JavaScript Bookmark Bug II
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.
Roger
Kündig