Tipps und Tricks gegen Sicherheitsrisiken

Java-Security-Risiken: So schützen Sie sich

29.05.2013 von Frank-Michael Schlede und Thomas Bär
Sicherheitslücken in Oracles Java-Software sind nicht nur für die Unternehmens-IT eine ernst zu nehmende Gefahr. Zudem tauchen ständig neue Bedrohungen auf. Komplett auf Java zu verzichten ist zwar möglich, aber nicht immer ratsam.

Alle paar Wochen ist es so weit: eine neue kritische Sicherheitslücke in der Java-Software. Manche davon stellen eine so große Gefahr dar, dass sogar der öffentlich-rechtliche Rundfunk darüber berichtet - zuletzt war das im Januar der Fall. 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 Plug-Ins 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."

Fakten: 2012 war in Bezug auf die Sicherheit von Java für Oracle kein gutes Jahr.
Foto: Kaspersky Lab

Dieses "zwingend benötigen" ist das Problem: Heute benötigt ein Großteil der Bundesbürger die Java-Software allein schon, um mithilfe des ElsterOnline-Portals der Finanzbehörden ihre Steuererklärungen abgeben zu können. Und zumindest bis Ende August wird es keine Java-freie ElsterOnline-Variante geben - nicht gerade beruhigend. Kurzum: Wir werden wohl noch einige Zeit mit dem Java-Risiko leben müssen. Grund genug für uns, das Thema einmal aufzuarbeiten.

Java für alles

Java ist eine Programmiersprache, die James Gosling gemeinsam mit einigen Kollegen während seiner Zeit bei Sun Microsystems entwickelt hat. Sun wurde 2010 von 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 (Java Runtime Environment, JRE) 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 sich 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 Webseiten 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 (Jave Runtime Environment, JRE) landet genauso 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 Webbrowser 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-Plug-In. 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 dem 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.

Ist Java bereits auf meinem PC installiert?
Anbieter Oracle stellt die Möglichkeit zur Verfügung, dies direkt über die Web-Seite feststellen zu lassen.
Träge Nutzerschaft
Die Nutzer lassen sich Zeit mit dem Update: Nutzeranteil von neueren Java-Versionen (gepatcht), verglichen mit älteren und angreifbaren (betroffenen) Versionen im Wochenrhythmus.
Freigabe erforderlich
Die Sicherheitsmechanismen des Browsers (hier Google Chrome) greifen: Bevor Java – auch nur zur Überprüfung – freigegeben wird, muss dies vom Nutzer genehmigt werden.
Vorsicht, umfassende Rechte
Java läuft eben nicht nur im Browser ab: In diesen Fällen kommt eine Anwendung auf dem eigenen PC zum Einsatz, die teilweise mit einem uneingeschränkten Zugriff arbeitet.
Support für Windows 8
Alle Überprüfungen können natürlich auch unter Windows 8 ausgeführt werden: Hier bietet Microsoft zusätzliche Unterstützung durch eine eigene Infoseite an.
Ob's hilft?
Die Installation der Java-Software unter Windows 8: Oracle sieht natürlich eher die Vorteile in dieser Software und kehrt diese bei der Installation heraus.
Mehr Müll
Eine sehr schlechte Angewohnheit, die Java mit Adobes Flash teilt: Bei der Installation versucht die Software durch bereits angewählte Menüpunkte, dem Anwender zusätzliche "Crapware" auf das System zu bringen beziehungsweise Einstellungen wie dir für die Suchmaschine zu "verbiegen".
Java zwingend erforderlich
Anwendungen, die nur laufen, wenn Java installiert ist: Die Freeware JDownloader deutet schon in ihrem Namen an, dass sie nur bei Vorhandensein der Java Runtime zum Einsatz kommen kann.
Java zwingend erforderlich II
Auch das Anonymisierungs-Tool JAP (JonDo) ist darauf angewiesen, dass auf dem PC, auf dem es zum Einsatz kommt, die Java Runtime installiert ist. Ansonsten kann sie von der Software mit installiert werden.
Control Panel
Die Sicherheitseinstellungen auf einem Windows-8-System: Von vielen Nutzern unbemerkt, installiert Java auch einen Eintrag in der Systemsteuerung, von dem aus das sogenannte Control Panel aufgerufen werden kann.
Simple Deinstallation
Das Java Control Panel steht natürlich auch bei den Windows-7-Systemen zur Verfügung: Mit seiner Hilfe ist auch eine Deinstallation der Software leicht vorzunehmen.
Frequenz der Updates einstellen
Mit Hilfe des Control Panels können Nutzer sowohl die Frequenz als auch die Art und Weise festlegen, in der entsprechende Updates von Java heruntergeladen und installiert werden.
Plug-In deaktivieren
Deaktivierung des Java-Plug-Ins direkt im Betriebssystem: Auch das funktioniert über das Control Panel in der Systemsteuerung im das Kästchen für den Browser abgewählt wird. Der Browser muss danach neu gestartet werden.
The Java vanishes
So verschwindet Java wieder vom System: Die Software kann, wie jede andere Software unter Windows, direkt unter dem Eintrag Programme (beziehungsweise „Programme und Funktionen“ unter Windows 7) wieder deinstalliert werden.
Plug-In-Management
Die Einstellungen der Plug-Ins im Firefox-Browser: Hier können die Anwender festlegen, ob Java-Applets von ihrem Browser ausgeführt werden sollen – und sie können dieses Plug-In an dieser Stelle auch wieder entfernen.
Alles noch fit?
Sollte regelmäßig vorgenommen werden: Mozillas Firefox erlaubt die Überprüfung der Plug-Ins darauf, ob sie noch dem aktuellen Stand entsprechen.
Meister bei den Exploits:
Java auch im Jahr 2013 "führend", wie diese Übersicht über die von SourceFire gefundenen Indicators of compromise zeigt. (Quelle: SourceFire/FireAMP soluntion, Cisco)

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 sämtlichen 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 sich die Java-Entwickler ein grundsätzlich gutes Konzept einfallen lassen, indem sie die Java-Programme in einer virtuellen Maschine ausführen und deren Zugriffe auf das System damit abblocken wollten. 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, 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 Website aufrufen, die ein Java-Applet auf dem lokalen PC startet.

Security-Experten warnen

Java läuft nicht nur im Browser ab: In diesen Fällen kommt eine Anwendung auf dem eigenen PC zum Einsatz, die teilweise mit einem uneingeschränkten Zugriff arbeitet.
Foto: Thomas Bär / Frank-Michael Schlede

Auch die Sicherheitsfirmen werden nicht müde, immer wieder auf die Gefahren hinzuweisen: Java taucht regelmäßig in Statistiken und Berichten auf den ersten Plätzen der gefährlichen Software auf. Im Kaspersky Lab Report vom Februar über die größten Sicherheitsrisiken wird Java als der "unangefochtene Spitzenreiter" bezeichnet. Die Kaspersky-Experten können sich daher einen Seitenhieb auf Oracle nicht verkneifen, das demnach 2012 ein "besonders hartes Jahr" zu erleiden hatte.

Besonders erschreckend ist eine weitere Erkenntnis dieses Reports. Die Spezialisten haben sich angesichts der vielen Java-Sicherheitslücken damit befasst, wie die Software auf den verschiedenen Systemen im realen Einsatz verwendet wird. Sie konzentrierten sich dabei auf den relativ kurzen Zeitraum zwischen zwei wichtigen Updates der Software: Am 30. August 2012 stellte Oracle die Versionen Java SE 7 Update 7 und Java SE 6 Update 35 bereit, und am 16. Oktober des gleichen Jahres erfolgten die Updates auf die Versionen Java SE 7 Update 9 und SE 6 Update 37.

Die Untersuchung der Anwenderinformationen ergab, dass allein in diesem kurzen Zeitraum 41 verschiedene Hauptversionen von Java 6 und 7 bei den Nutzern im Einsatz waren. Die Forscher untersuchten darüber hinaus, wie schnell die Nutzer innerhalb dieser sieben Wochen auf die jeweils sicherere Version von Java wechselten: Sie stellten fest, dass nur 30 Prozent der Nutzer das Update vorgenommen hatten, bevor schon das nächste Konglomerat an Sicherheitsflicken zur Verfügung stand.

Hilfreich: Mithilfe des Control Panels können Nutzer sowohl die Frequenz als auch die Art und Weise festlegen, in der entsprechende Updates von Java heruntergeladen und installiert werden.
Foto: Thomas Bär / Frank-Michael Schlede

Dass die potenzielle Gefahr, die von Java-Software auf den PCs ausgehen kann, längst nicht vorbei ist, zeigt zudem ein Proof of Concept des polnischen Start-ups Security Explorations: Am 25. Februar entdeckte das Unternehmen eine neue kritische Schwachstelle ("Issue 54") in der Standard-Edition der Java-SE-Plattform, über die es Oracle umgehend informierte. Als die Sicherheitsforscher ihre Untersuchungen am 18. März - also mehr als drei Wochen später - öffentlich machten, gab es jedoch seitens Oracle immer noch keinerlei Reaktion. Weder wurde die Schwachstelle als solche bestätigt, noch gab es einen Hinweis auf einen Patch.

Java wieder "loswerden"

Grundsätzlich ist die Deinstallation von Java - bei den aktuellen Versionen der Software - einfach: Unter Windows 7 finden die Anwender unter "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.

Ade: Die Software kann unter Windows direkt unter dem Eintrag Programme (beziehungsweise "Programme und Funktionen" unter Windows 7) wieder deinstalliert werden.
Foto: Thomas Bär / Frank-Michael Schlede

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 Plug-Ins auf Aktualität ermöglicht.

Fazit

Was bleibt als Schlussfolgerung aus all diesen Meldungen, Begebenheiten und Unsicherheiten rund um Java? Wie kriegen Sie Java unter Kontrolle? Wir haben einige Tipps zusammengestellt:

(hal)


Dieser Artikel basiert auf einem Beitrag unserer Schwesterpublikation Computerwoche.