Melden Sie sich hier an, um auf Kommentare und die Whitepaper-Datenbank zugreifen zu können.

Kein Log-In? Dann jetzt kostenlos registrieren.

Falls Sie Ihr Passwort vergessen haben, können Sie es hier per E-Mail anfordern.

Der Zugang zur Reseller Only!-Community ist registrierten Fachhändlern, Systemhäusern und Dienstleistern vorbehalten.

Registrieren Sie sich hier, um Zugang zu diesem Bereich zu beantragen. Die Freigabe Ihres Zugangs erfolgt nach Prüfung Ihrer Anmeldung durch die Redaktion.

10.11.1998 - 

Internet-Sicherheit/Sun nimmt Stellung zu einer Virenmeldung

Strange Brew: Ein seltsames Gebräu macht Java-Anwendern Sorgen

Die beliebteste Programmiersprache im Internet, Java, war immer schon der Kritik ausgesetzt, nicht gerade ausgefeilte Sicherheitsmechanismen zu bieten. Derzeit sorgt ein angeblicher Java-Virus namens "Strange Brew" für Aufregung in der IT-Gemeinde. Thomas Puslednik* von Sun erklärt, worum es geht - und worum nicht.

Vor kurzem hat Symantec ein angeblich in Java geschriebenes Programm namens "Strange Brew" - das könnte man mit "seltsames Gebräu" übersetzen - veröffentlicht. Es soll das erste Programm sein, das die Sicherheitscodes von Java durchbrechen und wie Viren schädliche Aktionen vornehmen kann. Wird das Programm aufgerufen, modifiziere es die existierenden Klassen-Files und die lokalen File-Systeme eines Rechners.

Die wichtigste Feststellung vorweg: Strange Brew stellt ein generelles Problem dar und hat nichts mit der Sicherheit von Java an sich zu tun. Das Programm als Java-Virus zu bezeichnen ist irreführend.

Web-Benutzer können ihre Systeme und Files durch Surfen nicht anstecken. Um den ärgerlichen Virus nachvollziehen zu können, müßte der Anwender eine in hohem Maße künstliche und ausgeklügelte Umgebung aufbauen. Selbst Symantec bestätigt, daß Strange Brew unter normalen Bedingungen im Web nicht existieren könnte.

Strange Brew kann nur dann wirken, wenn man ein Programm in einem Modus ausführt, das es dem Virus erlaubt, auf das File-System zuzugreifen. Das Java-Sicherheitsmodell schließt genau das aus. Eine der Grundeigenschaften der Programmiersprache ist, daß "untrusted" Applets, also Anwendungen, die nicht auf dem System vorinstalliert sind, keinen Zugriff auf das File-System des Rechners haben.

Strange Brew oder jeder andere Virus müßte also als trusted Code ablaufen. Dies würde aber bedeuten, daß der Virus, also das Programm, auf dem lokalen System installiert und von dort auch ausgeführt werden müßte. In der nichtkontrollierbaren Umgebung des Internets würde Strange Brew in keinem Fall als "trusted" einzuordnen sein. Deshalb kann sich Strange Brew nicht vom Internet auf lokale Systeme ausbreiten.

Die Java-Technologie wurde für komplexe Netzumgebungen entwickelt. In die Architektur von Java sind Features eingebettet, die berücksichtigen, daß Applets aus unbekannten Quellen ausgeführt werden müssen. Das Sicherheitskonzept von Java basiert auf dieser Arbeitsweise.

Experten trauen dem Virusprogramm nur minimale Auswirkungen zu, da es extrem schwierig zu übertragen ist. Aufgrund der eingebauten Sicherheitseigenschaften der Java-Architektur kann sich Strange Brew von einem angesteckten Applet aus nicht weiter ausbreiten.

Das Java Development Kit (JDK), Version 1.0 und jünger, erfüllt mit dem Sandbox-Modell ein hohes Sicherheitsniveau. Dieses Modell macht es unmöglich, daß untrusted Code auf das File-System zugreift: in diesem Fall externer, außerhalb der Klassenpfade liegender Code, den ein Rechner gewöhnlich vom Netzwerk und auch vom Web bekommt.

Die "Infektion" durch Strange Brew ist keine Infektion im eigentlichen Sinn. Denn die Systemeinstellungen müßten im vorhinein manipuliert, sprich falsch aufgesetzt, sein, um den Rechner für untrusted Code empfänglich zu machen. Deshalb ist die Beschädigung des File-Systems durch Strange Brew ein Fall von unsachgemäßer Implementierung.

Dabei würde der Rechner Viren und anderen Programmen den Zugang auf Informationen erlauben, die verschiedene Java-Sicherheitsmechanismen bei der Standardinstallation des Systems abwehren würden. Kurzum, der Anwender müßte den Virus mutwillig selbst auf das File-System setzen, bevor dieser es beschädigen kann.

Ein Beispiel aus dem Alltag veranschaulicht das Problem: Wenn jemand die Auswirkungen von Zucker auf einen Automotor testen möchte, müßte er nicht nur den Benzintank öffnen, sondern auch den Zucker selbst hineinschütten. Der Lieferant des Treibstoffs hätte mit der Beschädigung des Motors nichts zu tun.

"Die Wahrscheinlichkeit, daß Java-Applets in einem Netzwerk Schaden anrichten, ist viel geringer, als allgemein angenommen wird", faßt Ron Rapport zusammen. Der Analyst bei Zona Research erklärt die hohe Aufmerksamkeit für Strange Brew mit "Tendenzen, diese Gefahr zu dramatisieren".

Sun reagiert mit großer Untersuchung

"Wir haben in das JDK auf Basis der Java-Technologie extrem hohe Sicherheitsebenen und -mechanismen eingebaut, um Anwender vor Viren und anderen Bedrohungen ihrer Systeme zu schützen. Ein Beweis dafür ist, daß Strange Brew der erste Java-Virus ist, von dem seit Erfindung von Java überhaupt berichtet wird", schildert Larry Abrahams, Director Core JDK Entwicklung bei Sun Microsystems, die Sicherheitssituation bei Java.

Nach seinem Wissensstand "verhindern die Eigenschaften des Sandbox-Modells und die eingebauten Sicherheitsebenen von Browsern wie Netscapes Navigator oder Microsofts Internet Explorer Eindringlinge wie Strange Brew". Das Unternehmen "untersucht das Thema in großem Stil und läßt zur Gewährleistung von Sicherheit und Zuverlässigkeit der Java-Technologie keine Möglichkeiten außer acht".

Bis heute gibt es keine Berichte, daß irgendwelche Anwender- oder Entwicklersysteme infiziert wurden. Sun wird mit den nächsten Versionen des Java Development Kit alle anstehenden Internet- und Java-Sicherheitsproblematiken weiterhin berücksichtigen.

Suns künftiges Java Development Kit, JDK 1.2, unterstützt hochkonfigurierbare und ausnehmend fein ausgebildete, gut definierte Zugriffskontrollen. Das Entwicklungs-Tool dehnt das Sandbox-Modell noch weiter aus, indem es Entwicklern, Anwendern und Systemadministratoren die Möglichkeit bietet, eine Reihe von flexiblen Sicherheitsaspekten selbst zu spezifizieren und zu verwalten. Diese Aspekte konzentrieren sich auf Aufgaben, die Anwendungen oder Applets durchführen können beziehungsweise nicht dürfen. Das Sicherheitsmodell von JDK 1.2 ist das Ergebnis umfangreicher Tests, die die Qualität von Sicherheitsmechanismen auf Programmiersprachenebene demonstrieren.

Angeklickt

Alle, die Internet-Techniken mit Skepsis begegnen, sahen sich bestätigt, viele Entwickler waren beunruhigt: Vor kurzem kursierten Meldungen, Symantec habe einen Java-Virus identifiziert. "Strange Brew", so sein Name, gerate bei Nutzung des Internet auf den lokalen Rechner und richte dort in den File-Systemen Schaden an. Der Autor beschreibt, was Strange Brew unternimmt und welche Voraussetzungen man dafür vorfinden muß. Sein Fazit: Ein Anwender muß schon mutwillig die Standardsicherheitsmechanismen von Java ausschalten, damit etwas passieren kann.

Unsichere Java-Applets?

Der Unterschied zwischen einem Virus und "feindlichen" Applets:

Ein Virus ist ein Softwareprogramm, das sich selbst replizieren und gegebenenfalls Zerstörungen in einem System anrichten kann. Feindliche Applets sind Ansammlungen von Java-Applets, die Ressourcen in fahrlässiger oder schädigender Weise abziehen, nämlich die gesamte CPU- oder Speicherleistung des Rechners. Das Sicherheitsmodell von Java verhindert dadurch, daß sich untrusted Code in der Sandbox befindet, daß Viren oder feindliche Applets vom Web oder vom Netzwerk auf das System geladen werden.

Grenzen von Applets

Grundsätzlich können vom Netz geladene Applets auf der Client-Seite keine Files lesen oder beschreiben. Auch ist es mit Applets nicht möglich, andere Programme auf dem Client zu starten und durchzuführen. Bei Microsofts Active X ist dies hingegen möglich, wie der Chaos Computer Club mit der berühmten 20-Mark-Spende an Amnesty International bewiesen hat. Über das Netz geladene Java-Applets können jedoch keine Bibliotheken starten oder native Method-Calls definieren. Wenn ein Java-Applet native Method-Calls definieren könnte, würde es damit direkten Zugriff auf die darunterliegende Rechnerebene bekommen.

Können Applets Files lesen oder beschreiben?

Untrusted Applets können in Java-fähigen Browsern Files weder lesen noch schreiben. Geladene Applets sind per se untrusted.

Kann ein Applet Systemeigenschaften lesen, die es nicht lesen dürfte?

Nein. Es gibt keinen Weg für ein geladenes Applet, Systemeinstellungen zu lesen, zu denen es standardmäßig keinen Zugriff hat.

Wie war es dem Strange-Brew-Virus möglich, Java-Applets und Anwendungen auf einer Solaris-Plattform von Sun zu infizieren?

Strange Brew wurde lokal als trusted Code auf das System geladen, was nicht der Umgebung entspricht, in der man Strange Brew gewöhnlich finden würde. Mit anderen Worten: Strange Brew wurde mit der ausdrücklichen Erlaubnis eines Zugriffs auf Klassen-Files geladen. Das Sandbox-Modell von Java hätte dies verhindert, wäre Strange Brew über das Internet oder Intranet geladen worden.

Infektionsgefahr für ältere Browser

Browser nach den Methoden des Java Development Kit ab Version 1.0.2 verfügen über dasselbe Sandbox-Sicherheitsmodell. JDK 1.2 wird darüber hinaus zusätzliche Flexibilität zur Gestaltung von Sicherheitsmechanismen bieten.

*Thomas Puslednik ist Mitarbeiter der Abteilung Martentwicklung der Sun Microsystems GmbH in München.