Menü
IT News
  • Newsticker
  • heise Developer
  • heise Netze
  • heise Open Source
  • heise Security
Online-Magazine
  • heise+
  • Telepolis
  • heise Autos
  • TechStage
  • tipps+tricks
Magazine
  • c't
  • iX
  • Technology Review
  • c't Fotografie
  • Mac & i
  • Make
  • im Browser lesen
Services
  • heise Download
  • Preisvergleich
  • Whitepapers
  • Webcasts
  • Stellenmarkt
  • IT-Markt
  • Tarifrechner
  • Netzwerk-Tools
  • Spielen bei Heise
  • heise Business
  • Loseblattwerke
  • iMonitor
Heise Medien
  • heise shop
  • Artikel-Archiv
  • Abo
  • Veranstaltungen
  • Arbeiten bei Heise
  • Mediadaten
  • Presse
Anzeige: Zukunftsmacher
heise Security
  • News
    • Archiv
    • 7-Tage-News
  • Hintergrund
  • Events
  • Foren
  • Kontakt
  1. Security
  2. Hintergrund
  3. Java-0-Day unter der Lupe

Java-0-Day unter der Lupe

Hintergrund 28.08.2012 18:46 Uhr Ronald Eikenberg

Ein Programmierfehler macht das ganze ausgefeilte Sicherheitskonzept von Java hinfällig. Denn der Exploit schaltet den Schutz einfach ab.

Der jüngste Java-Exploit sieht harmlos aus – und das macht ihn gefährlich.

Bei einer ersten Analyse des bereits öffentlich verfügbaren Exploit-Codes fällt auf, dass er so gar nicht auffällt: Der Angriffscode sieht auf den ersten Blick aus, wie jedes andere Java-Programm – von exotischem Bytecode ist keine Spur. Sein Geheimnis ist laut Michael Schierl, der selbst bereits mehrere Java-Lücken aufgedeckt hat, dass er etwas tut, was er eigentlich gar nicht dürfte: Er schaltet den SecurityManager einfach ab und bricht damit praktisch aus der Sandbox von Java aus.

Eigentlich sollte der eingeschränkte Code eines unsignierten Applets keinen Zugriff auf die Klassen der sun.*-Hierarchie erhalten, da diese nur zur internen Verwendung freigegeben sind. So stellt die Klasse sun.awt.SunToolkit unter anderem eine Methode getField() bereit, durch die man auf private Attribute von anderen Klassen zugreifen kann. Der Exploit verschafft sich diesen Zugriff über eine Lücke im ClassFinder und umgeht dann einen weiteren Sicherheitscheck, um via getField() das Attribut "acc" eines Objekts auszutauschen. In dem Attribut ist eigentlich vermerkt, dass das Objekt etwa von einer Klasse aus dem Applet http://angriff.boese-seite.tld/exploit.jar stammt und daher vom System abgeschottet innerhalb der Sandbox laufen sollte.

Der Exploit erstellt zunächst ein Statement-Objekt, das die Methode System.setSecurityManager(null) aufruft und die Sandbox damit effektiv abschaltet. Dann baut er in Handarbeit ein AccessControlContext-Objekt auf, das eine Klasse repräsentiert, die von der lokalen Festplatte gestartet wurde und somit alle Rechte hat. Dieses Objekt speichert der Angriffscode anschließend über den Zugriff auf das "acc"-Attribut im setSecurityManager-Statement. Da für Java damit der Eindruck entsteht, dass das Statement von vertrauenswürdigem Code abstammt, wird es danach klaglos ausgeführt.

public void disableSecurity()
throws Throwable
{
Statement localStatement = new Statement(System.class, "setSecurityManager", new Object[1]);
Permissions localPermissions = new Permissions();
localPermissions.add(new AllPermission());
ProtectionDomain localProtectionDomain = new ProtectionDomain(
new CodeSource(new URL("file:///"), new Certificate[0]), localPermissions);
AccessControlContext localAccessControlContext =
new AccessControlContext(new ProtectionDomain[] {localProtectionDomain});
SetField(Statement.class, "acc", localStatement, localAccessControlContext);
localStatement.execute();
}

Anschließend kann der Exploit auf dem System schalten und walten, wie er möchte. Der analysierte Exploit startet zu Demonstrationszwecken den Windows-Taschenrechner calc.exe über dieselbe Methode, die auch eine legitime Java-Anwendung nutzen würde. Prinzipiell hätte der Angreifer hier auch ein Statement bauen können, das Dateien auf der Festplatte löscht oder eine nativen Payload nachlädt und ausführt. Ein bereits im Internet gesichteter bösartiger Exploit infiziert PCs mit dem Remote Administration Toolkit Poison Ivy.

Nachdem die Sandbox geräumt ist, kann der Exploit beliebige Prozess auf dem System starten.

"Intrusion Detection Systeme (IDS) und Antivirensoftware wird es schwer haben, generische Signaturen für die Lücke bereitzustellen, weil kein exotischer Bytecode benötigt wird, um sie auszunutzen – im Gegensatz zu den letzten beiden großen Lücken", befürchtet Schierl. Von der Schwachstelle sind alle Betriebssysteme betroffen. Theoretisch könnte ein Virenschreiber Malware programmieren, die über diese Lücke Windows, Mac OS X und Linux infiziert. Hierzu muss er nur einige wenige betriebssystem-spezifische Anpassungen vornehmen. Ähnliche Fälle gab es bereits; der Flashback-Trojaner infizierte über unsichere Java-Installationen hunderttausende Macs.

Oracle hat sich bislang nicht offiziell zu der kritischen Schwachstelle geäußert. Bei Erscheinen dieses Artikels hat das Unternehmen noch die Java-Version 7 Update 6 zum Download angeboten, die – genauso wie alle älteren 7er Versionen – auf die hier beschriebene Weise angreifbar ist. Wer eine anfällige Version auf seinem System installiert hat, tut gut daran, die Browser-Plug-ins für Java-Unterstützung zu deaktivieren. Andernfalls ist es nur eine Frage der Zeit, bis sich ungebetene Malware-Gäste auf dem Rechner einnisten.

Update, 28.8., 21:40: Die Beschreibung der Funktionsweise des Exploits präzisiert und neue Erkenntnisse aus der umfangreichen Analyse von Immunity eingebaut.

(rei)

https://heise.de/-1676764 Drucken
Mehr zum Thema:
Exploit Java Sicherheitslücken
Anzeige
Anzeige
Dienste
  • Security Consulter
  • Netzwerkcheck
  • Anti-Virus
  • Emailcheck
  • Browsercheck
  • Krypto-Kampagne
Anzeige

heise Events secIT by Heise 2019

Der Treffpunkt für Security-Anwender und -Anbieter

  • Mehr als 35 Expert Talks
  • 12 vertiefende Workshops zu aktuellen IT-Sicherheitsthemen
  • 3.400 m² mit den wichtigsten Unternehmen aus der IT-Sicherheitsbranche
  • Zwei große Vortragsbühnen mit mehr als 45 Vorträgen führender IT-Experten
  • Netzwerken und Feiern auf der großen secIT-Party
Jetzt Ticket sichern!
Alerts! alle Alert-Meldungen

mIRC

Kritische Lücke im Linux-Kernel

WinRAR

Anzeige
Anzeige
  • Apps und Daten vor Cyber-Attacken schützen!
  • XDR – Neue Waffe im Kampf gegen Cyber-Angriffe
  • Hyperkonvergenz – flink, kombiniert und optimiert
  • Business-Monitor von Acer testen und behalten!
  • secIT 2019 – anmelden für kostenlose Workshops
  • Düsseldorf sucht ITler! Heise Jobtag am 21.03.
  • Am 07.03. ist After Work Jobtag in Hannover
  • MINT-Job gesucht? 14.03. TR Jobtag in München
  • IT-Jobtag am 27.02. in Hamburg
  • Wettbewerb der besten Coder der Welt – anmelden!
Artikel

Nach dem Passwort-Leak: Eigene Passwörter lokal checken

Eine halbe Milliarde geleakter Passwörter mal eben lokal durchsuchen? Mit einem Python-Skript geht das schnell und auch ohne riesige Downloads.

Hintergrund 32 Kommentare

Dynamit-Phishing mit Emotet: So schützen Sie sich vor der Trojaner-Welle

Derzeit sorgt der Trojaner Emotet in Deutschland für Furore und legt ganze Unternehmen lahm. Bei vielen Firmen und Privatpersonen besteht deshalb akuter Handlungsbedarf.

Hintergrund 152 Kommentare mit Bilderstrecke

Auftragsmörder im Darknet gesucht: Was tun mit der Liste an Interessenten?

Das britische Magazin Wired hat eine aufwühlende Geschichte rund um eine Betrugsmasche im Darkweb geschrieben, die mitten in Mordermittlungen hineinführt.

Lesetipp 77 Kommentare

Neueste Forenbeiträge

  1. Re: scheint sich als erster den fehlerhaften Code auf diese Art angeschaut zu ha
    cosinusx schrieb am 21.02.2019 12:53: Donnerstag == Vize-Freitag. Also eine Art Freitag, passst! :-) Auf ein fröhliches <°>>><-Werfen!!! :-P…

    Forum:  10 Jahre alte kritische Lücke in Linux-Kernel-Kryptofunktion entdeckt

    Underbreak hat keinen Avatar
    von Underbreak; vor 5 Minuten
  2. Ich bin einfach nur verwundert...
    wie jemand mit einer derartigen Zuverlässigkeit absolut dämliche Beiträge verfassen kann. Ist das Absicht?

    Forum:  10 Jahre alte kritische Lücke in Linux-Kernel-Kryptofunktion entdeckt

    Underbreak hat keinen Avatar
    von Underbreak; vor 7 Minuten
  3. Re: Und hat sich mal jemand den Patch von HUAWAI angeschaut?
    der vergleich ms update zu linuxupdates hinkt gewaltig zwei komplett verschiedene architekturen mit jeweils anderen stärken und schwächen…

    Forum:  10 Jahre alte kritische Lücke in Linux-Kernel-Kryptofunktion entdeckt

    quasides hat keinen Avatar
    von quasides; vor 19 Minuten
News und Artikel
  • News
  • 7-Tage-News
  • News-Archiv
  • Hintergrund-Artikel
  • Alert-Meldungen
Service
  • Newsletter
  • Tools
  • Foren
  • RSS
  • mobil
Dienste
  • Security Consulter
  • Netzwerkcheck
  • Anti-Virus
  • Emailcheck
  • Browsercheck
  • Krypto-Kampagne
  • Datenschutzhinweis
  • Impressum
  • Kontakt
  • Mediadaten
  • 909952
  • Content Management by InterRed
  • Copyright © 2019 Heise Medien