Alle paar Wochen ist es soweit: eine neue kritische Sicherheitslücke in der Java-Software. Manche davon sind dermaßen ernst zu nehmen, dass sogar der öffentlich-rechtliche Rundfunk darüber berichtet - der letzte "große Fall" ereignete sich im Januar 2014. Spätestens dann ist das Bundesamt für Sicherheit in der Informationstechnik (BSI) immer schnell mit einem "guten" Rat zur Stelle: Alle Anwender sollten entweder Java komplett von ihren Rechnern deinstallieren oder zumindest die Plugins entfernen/deaktivieren, die es Browsern wie dem Internet Explorer oder Firefox ermöglichen, sogenannte Java-Applets direkt auszuführen. Eine Einschränkung gibt das BSI den Anwendern dann aber doch auf den Weg: Sie sollten es deaktivieren "….solange sie es nicht zwingend benötigen".
Dieses "zwingend benötigen" ist das Problem: Bis vor kurzer Zeit benötigte ein Großteil der Bundesbürger die Java-Software noch, um mit Hilfe des ElsterOnline-Portals der Finanzbehörden ihre Steuererklärungen abgeben zu können. In der Zwischenzeit bieten die Behörden endlich auch eine Java-freie ElsterOnline-Variante an. Aber es gibt noch mehr als genug Anwendungen, die komplett auf Java setzen.
Kurzum: Wir werden wohl noch einige Zeit mit dem Java-Risiko leben müssen. Grund genug für uns, das Thema einmal aufzuarbeiten.
Java - WTF?
Java ist eine Programmiersprache, die James Gosling zusammen mit einigen Kollegen während seiner Zeit bei Sun Microsystems entwickelt hat. Sun wurde 2010 durch Oracle übernommen, wodurch auch Java mit all ihren Ausprägungen in die Obhut der Datenbankfirma geriet.
Bei Java handelt es sich um eine objektorientierte Programmiersprache, die bis 1995 noch den Projektnamen Oak trug. Sie wurde von Goslings Team mit dem Anspruch entwickelt, die damals scheinbar übermächtige Programmiersprache C abzulösen. Das sollte zum einen durch eine deutliche Vereinfachung der Sprache im Vergleich zu C und C++ erreicht werden. Zum anderen enthält Java nicht nur den klassischen Compiler zum Übersetzen des Source Codes bereit, sondern kann auch mit einer Laufzeitumgebung (JRE - Java Runtime Environment) aufwarten. Hier kommen virtuelle Maschinen (JVM) zum Einsatz, die es ermöglichen, dass Java-Programme möglichst unabhängig von der Plattform sind, auf der sie entwickelt wurden: Programmierer können ihre Java-Programme einmal erstellen und sie dann auf einer beliebigen Plattform laufen lassen, wenn dort eine entsprechende Laufzeitumgebung mit den benötigten Bibliotheken vorhanden ist. Auf diese Weise hat sich Java im Laufe der Jahre nicht nur auf PCs verbreitet, sondern kommt auch auf vielen Geräten von Telefonen über Blu-ray-Player bis hin zu Komponenten in PKWs zum Einsatz.
Was hat es mit JavaScript auf sich?
Java und JavaScript werden oft miteinander verwechselt, haben aber direkt nichts miteinander zu tun: Während es sich bei Java um eine "echte" Programmiersprache handelt, ist JavaScript eine reine Script-Sprache (auf Text basierend), die nur innerhalb von HTML-Dokumenten ausgeführt werden kann. Diese Script-Sprache wurde von der Firma Netscape unter dem Namen LiveScript entwickelt. Was sie mit Java eint ist die Tatsache, dass beide Ansätze auf objektorientierten Techniken basieren und diese auch einsetzen. Verwirrung entsteht häufig nicht nur durch die Namensgleichheit, sondern auch durch die Tatsache, dass beide Techniken häufig durch den Besuch von Web-Seiten und den Einsatz von Browsern auf den PCs der Nutzer aktiv werden. Zudem handelt es sich bei beiden Ansätzen um "aktive Techniken", die letztendlich das Ausführen von Programmcode auf dem eigenen PC erlauben.
Bestandteile von Java
Vielen Anwendern ist vielleicht nicht bewusst, dass auf ihren Rechnern bereits Java vorinstalliert ist. Zumindest eine Version der Laufzeitumgebung - der Java Runtime - ist auf den meisten PCs zu finden. Wer nicht genau weiß, ob Java installiert ist, kann in den Windows-Systemeinstellungen im Bereich "Programme und Funktionen" (unter Windows 7) oder unter "Programme" (bei Windows 8) danach suchen. Auf der Java-Website stellt Oracle neben dem Download aber auch eine entsprechende Prüfmöglichkeit zur Verfügung.
Ob bereits vorinstalliert oder manuell heruntergeladen und installiert - das Ergebnis ist das gleiche: Die Java-Laufzeitumgebung (JRE - Jave Runtime Environment) landet genau wie die virtuelle Maschine für Java (JVM) und die benötigten Java-Bibliotheken auf dem System. Die JRE ist notwendig, damit Java-Software, die ein Web-Browser auf einer Seite vorfindet, auf dem lokalen System ausgeführt werden kann.
Ein weiterer wichtiger Bestandteil des Pakets ist direkt im Browser zu finden - das sogenannte Java-Plugin. Erst durch dieses zusätzliche Stück Software, das sich in den jeweiligen Browser integriert, können die kleinen Java-Programme - sogenannte Applets - überhaupt ausgeführt werden, da es die Verbindung zwischen Browser und der Laufzeitumgebung herstellt. Daraus wird auch ersichtlich, dass ein solches Plug-In niemals "stand-alone" - also ohne die JRE - arbeiten könnte. Wenn Sie ein Plug-In in einem Ihrer Browser installiert haben, haben Sie zwingend auch die Laufzeitumgebung auf dem System installiert.
Warum Java gefährlich ist
Grundsätzlich hat jedes größere Softwareprojekt das Problem der Fehleranfälligkeit. Noch schwieriger und komplexer wird die Situation, wenn eine Software im Zusammenspiel mit einer anderen Software oder gar dem Betriebssystem agieren muss - Systemverwalter und Sicherheitsbeauftragte können ein Lied davon singen. Ein weiteres großes Problem bei Java: Hier werden Programme auf dem PC ausgeführt. Um Programme auf einem Rechner (ganz gleich mit welchem Betriebssystem er betrieben wird) auszuführen, benötigen diese Ressourcen des Betriebssystems und in einigen Fällen auch Zugriff auf die dort gespeicherten Dateien. Vielfach werden diese Aktionen dabei mit all den Rechten des jeweiligen Nutzers ausgeführt - arbeitet dieser mit den Zugriffsrechten eines Administrators, so sind auch gefährliche Zugriffe und Änderungen möglich. Obwohl es schon seit Windows Vista für einen Standardnutzer nicht mehr wie unter Windows XP nötig ist, mit den Rechten eines Administrators zu arbeiten, ist dies leider allzu häufig noch die Regel.
Nun haben die Java-Entwickler sich aber grundsätzlich ein gutes Konzept einfallen lassen, indem sie die Java-Programme in einer virtuellen Maschine ausführen und deren Zugriffe auf das System damit gehörig abblocken sollten. Die Praxis zeigt leider, dass dies nicht der Fall ist und dass hier auch viele Einflüsse von anderen Programmen einwirken können, die sich dann als veritable Sicherheitslücken entpuppen (in der Computerwissenschaft als "side effects" bezeichnet und häufig mit "Seiteneffekt" nicht zutreffend übersetzt). Fehler in der Implementierung und bei der Umsetzung neuer Funktionen und Bibliotheken tun ein Übriges dazu, dass immer wieder Sicherheitslücken entstehen. Diese müssen dann vom Anbieter - in diesem Fall Oracle - durch entsprechende Patches und Upgrades wieder beseitigt werden.
Grundsätzlich gilt auch hier: Anwender sollte keine Software aus unbekannten und/oder potenziell unsicheren Quellen auf ihren Systemen ausführen. Genau das tun sie häufig aber, wenn sie eine Web-Seite aufrufen, die ein Java-Applet auf dem lokalen PC startet!
Security-Experten warnen
Auch Sicherheitsfirmen werden nicht müde, regelmäßig auf die Gefahren hinzuweisen: Java taucht regelmäßig in Statistiken und Berichten unter den ersten Plätzen der gefährlichen Software auf. Laut Cisco 2014 Annual Security Report, der Anfang des Jahres erschienen ist und unter anderem einen Ausblick auf die größten Gefährdungspotenziale für das Jahr 2014 gibt, sind es die Schwachstellen der Java-Software, die nach wie vor für die meisten Web-Exploits verantwortlich sind.
Die entsprechenden Daten hat Cisco mit Hilfe der FireAmp-Schnittstellen der Unternehmenstochter SourceFire gesammelt und ausgewertet. Sie zeigen, dass die Java-Exploits einen Anteil von 91 Prozent bei den sogenannten IoCs (Indicators of compromise - Indikatoren für Schwachstellen) stellen. Diese Technik findet laut Cisco/SourceFire in Echtzeit die Schwachpunkte, die an den Endpunkten der Netzwerke auftreten, und zeichnet dann auf, welche Art von Software diese Schwachstellen verursacht hat.
Die Experten von SourceFire weisen in diesem Zusammenhang auch darauf hin, dass Java allein durch die enorme Verbreitung dieser Software im Jahr 2013 häufig das Mittel der ersten Wahl für Angreifer war. Das wird sich nach Einschätzung der Fachleute auch 2014 und in den folgenden Jahren nicht ändern. Wie verbreitet Java-Lösungen sind, zeigt ein Blick auf die Java-Webseite von Oracle: Danach nutzen 97 Prozent aller Unternehmens-Desktops und 89 Prozent aller Desktops und Rechner allein in den USA Java. Hinzu kommen 100 Prozent (!) aller Blue-Ray-Player, 3 Milliarden Mobiltelefone und nicht zuletzt 125 Millionen Fernsehgeräte. Da kann es nicht verwundern, dass der Security-Report der Java-Software eine Angriffsoberfläche bescheinigt, die für Cyber-Kriminelle einfach viel zu groß ist, um sie zu ignorieren. Sie stellen zudem fest, dass viele Angriffe zunächst mittels bekannter Java-Schwachstellen gestartet werden, da dieser Weg den Kriminellen den besten ROI (Return on Investment) für ihre Bemühungen bietet.
Fazit
Was bleibt als Schlussfolgerung aus all diesen Meldungen, Begebenheiten und Unsicherheiten rund um Java? Wie bekommen Sie Java unter Kontrolle? Wir haben einige Tipps zusammengestellt:
-
Software, die Sie nicht unbedingt für eine bestimmte Anwendung oder in Bezug auf ein Browser-Plug-In für eine ganze bestimmte Web-Seite benötigen, sollten Sie von Ihren Systemen entfernen - das gilt besonders für Software wie Java, die aktiv Programme auf den Systemen ausführen kann.
-
Kontrollieren Sie alle Systeme regelmäßig auf entsprechende Programm-"Überreste" und darauf, ob nicht irgendeine neue Software wieder eine Java-Runtime und damit vielleicht sogar ein Browser-Plug-In mit "eingeschleppt" hat.
-
Wenn Sie Java benötigen - vor allem als Plug-In im Browser - - sorgen Sie dafür, dass die Software immer auf dem aktuellsten Stand ist. Kontrollieren Sie dies nach Möglichkeit von Zeit zu Zeit auch manuell.
-
Verwenden Sie Sicherheitsprogramme wie den Script-Blocker NoScript in Ihrem Browser: Mit Hilfe dieser Programme lässt sich nicht nur der Einsatz von Scripten wirkungsvoll blockieren, sondern beispielsweise auch der Gebrauch von Java auf Seiten unterbinden, denen der Anwender "nicht traut" (untrusted). Zudem können Sie mit Hilfe solcher Programme relativ fein granuliert steuern, auf welchen Seiten Sie welche aktiven Techniken zulassen.
-
Nehmen Sie regelmäßig Update vor und überprüfen Sie, ob die Java-Software auf dem aktuellen Stand ist. Dazu eignet sich beispielsweise im Mozilla Firefox die Option zur Überprüfung der Plug-Ins im "Add-On Manager".
Java wieder "loswerden"
Grundsätzlich ist die Deinstallation von Java - bei den aktuellen Versionen der Software - einfach: Unter Windows 7 finden Anwender bei "Programme und Funktionen" und unter Windows 8 unter "Programme" (bei beiden Windows-Version in den Systemeinstellungen) das installierte Java-Software-Paket mit seiner genauen Versionsbezeichnung. Mit einem Rechtsklick kann die Software endgültig aus dem Betriebssystem entfernt werden.
Wer nur die Unterstützung von Java in seinem Browser deaktivieren möchte, kann dies beispielsweise beim Mozilla Firefox unter dem Menüpunkt "Add-On" tun. Dort die Plug-Ins auswählen und im folgenden Menü das Java-Plug-In deaktivieren/deinstallieren. Hier finden Sie auch den Link, der eine Überprüfung der Plugins auf Aktualität ermöglicht. (sh)