Alert!

Log4j 2.16.0 verbessert Schutz vor Log4Shell-Lücke

Die Entwickler härten das Logging gegen weitere Angriffe, während sich der Schutz durch bestimmte Java-Versionen als löchrig erweist.

In Pocket speichern vorlesen Druckansicht 160 Kommentare lesen
Aufmacherbild Log4j 2.16.0/Keine Java-Version hilft

(Bild: solarseven/Shutterstock.com)

Update
Lesezeit: 3 Min.
Von

Die Apache-Entwickler haben nach der vergangenen Freitag hastig veröffentlichten Version 2.15.0 zum Schließen der Log4Shell-Sicherheitslücke jetzt Log4j 2.16.0 fertig gestellt und darin die Schutzmaßnahmen verbessert. Auf der anderen Seite haben Sicherheitsforscher Proof-of-Concept-Code (PoC) zum Ausnutzen der Schwachstelle verfeinert – Angriffe funktionieren damit unabhängig von der Java-Version und bestimmten Java-Sicherheitseinstellungen. Verlässlichen Schutz bietet daher nur ein Update der Log4j-Bibliothek.

In Log4j 2.16.0 haben die Apache-Programmierer den Code entfernt, der Nachrichten in den Logs mit den fatalen URL-Einträgen zu potenziell bösartigen LDAP-Servern analysiert. Dazu deaktivieren die Entwickler das Java Naming and Directory Interface (JNDI) nun gänzlich. Nutzer könnten ihn manuell wieder einschalten, er stelle allerdings in ungeschützter Umgebung ein hohes Sicherheitsrisiko dar, warnen die Apache-Entwickler in der Log4j-Versionsankündigung.

[Update]Die Programmierer haben zudem eine Sicherheitsmeldung herausgegeben, der zufolge Version 2.16.0 eine weitere Schwachstelle ausbessert (CVE-2021-45046, CVSS 3.7 niedrig). Im Wesentlichen habe die ursprüngliche Fehlerkorrektur nicht in allen Konfigurationen vollständig gegriffen; ein Denial-of-Service wäre möglich. Wenn ein Update auf Log4j 2.16.0 noch nicht möglich ist, helfe dagegen das Entfernen der Jndi-Lookup-Klasse etwa via zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class [/Update]

Zunächst fand sich am vergangenen Freitag in der ersten Fassung der Apache-Sicherheitsmeldung zur Lücke ein Hinweis auf eine bestimmte Java-Version, die Angriffe verhindere. Der Hinweis wurde kurz darauf entfernt. Es hat sich inzwischen herausgestellt, dass keine Java-Version verlässlich vor einem Angriff schützen kann.

Der Sicherheitsforscher Márcio Almeida hat ein Exploit-Kit zum Ausnutzen der Log4Shell-Schwachstelle angepasst, sodass es mit jeder Java-Version funktioniere und auch etwa die Einstellung trustURLCodebase=false nicht dagegen helfe. Dazu hat er die bösartigen Daten, den Schadcode, einfach in ein anderes Format umgepackt (Serialization). Einzige Bedingung sei, dass die vom eingeschleusten serialisierten Code genutzten Klassen im Klassenpfad der angegriffenen Anwendung liegen müssten.

Almeida verweist darauf, dass ausschließlich das Update von Log4j – und zwar so schnell wie möglich – gegen das Ausnutzen der Sicherheitslücke Log4Shell helfe. Da bietet es sich an, gleich auf die neue, noch besser gesicherte Version Log4j 2.16.0 zu aktualisieren. Allerdings liegen bislang noch keine gesicherten Erkenntnisse zu möglichen Nebenwirkungen des Updates vor.

"Was genau sollte ich jetzt tun?" ist die zentrale Frage des heise-Security-Webinars "Die Log4j-Lücke – der Praxis-Ratgeber für Admins" am Montag, den 20. Dezember um 11:00.

[Update 15.12.2021 07:40 Uhr] CVE-Eintrag vom Apache-Projekt ergänzt.

(dmk)