Skip to main content

13.01.2022

Kritische Schwachstelle in Log4j (CVE-2021-44228)

Executive Summary

Am vergangenen Freitag, den 10.12.2021 wurde ein funktionierender Proof-of-Concept für die durch das BSI als kritisch eingestufte “Log4Shell” Schwachstelle CVE-2021-44228 veröffentlicht. Die Schwachstelle wurde in der bekannten open-source Java-Bibliothek Log4j gefunden, nachdem an unterschiedlichen Stellen von Angriffen auf Server des Computerspiels Minecraft berichtet wurde. Die Bibliothek Log4j, welche bereits seit 2001 entwickelt wird, zählt mittlerweile als eine der Standardbibliotheken zur Erstellung von Software Logs in Java Applikationen. Dementsprechend häufig wird sie in den unterschiedlichsten Bereichen und Programmen der Java-Welt verwendet. Betroffen durch die aktuelle Lücke sind alle Log4j Versionen ab der Version 2.0 bis einschließlich 2.14.1. Diese finden in unzähligen Produkten ihren Einsatz. Allein auf Github gab es zum Zeitpunkt des Bekanntwerdens der Schwachstelle mehr als 1800 Programme, welche von Log4j Gebrauch machen. Viele davon werden wiederum in anderer Software zu finden sein. Bereits wenige Stunden nach der Veröffentlichung der Schwachstelle konnten die ersten Versuche beobachtet werden, die Schwachstelle auszunutzen. Innerhalb kürzester Zeit entwickelte sich hieraus ein Wettlauf zwischen Cybersicherheitsforschern und Cyberkriminellen, betroffene Software zu identifizieren und diese anzugreifen oder aber zu beschützen. Allein bei einem einzelnen Kunden der ConSecur GmbH konnten innerhalb der ersten 24 Stunden trotz der undurchsichtigen Datenlage mehrere 100 Angriffe erkannt und verhindert werden. Während viele dieser Angriffe lediglich der Auskundschaftung der Systeme und einer Evaluierung der Auswirkungen der neuen Schwachstelle galten, konnten schnell auch die ersten ernst zu nehmenden Angriffe mit Kryptomining-Malware beobachtet werden.

Aufgrund der großen Menge  von noch unbekannten Angriffsvektoren resultierend aus der Vielzahl von betroffenen Softwareprodukten arbeiten wir ununterbrochen daran hierzu die neusten Informationen zu sichten, um die Sicherheit unserer Kunden gewährleisten zu können. 
 


Die Schwachstelle im Detail 

Die Schwachstelle in Log4j liegt im Bereich der Interpretation eingehender Daten. Unter normalen Umständen soll die Software erhaltene Details lesen und in sogenannte Logfiles schreiben. Dies ist unter anderem wichtig, damit Administratoren im Falle eines Problems nachvollziehen können, was ihre Software zum Zeitpunkt eines auftretenden Fehlers getan hat, um so den Fehler finden und beheben zu können. Auch in der Strafverfolgung spielen Serverlogs eine große Rolle, weil aus ihnen hervorgeht, welcher Anschluss zu welchem Zeitpunkt eine bestimmte Website aufgerufen hat.  Das Problem ist nun, das die angreifbare Version von Log4j die hierzu benötigten Informationen nicht nur aufschreibt, sondern der speziell geformte Logeintrag zusätzlich auch interpretiert und die enthaltenden Anweisungen ausgeführt werden.    
Dies kann in der nun als Log4Shell bekannt gewordenen Schwachstelle dazu genutzt werden, mittels des “Java Naming and Directory Interfaces” (kurz JNDI) externen Schadcode auf betroffenen Systemen auszuführen.  JNDI erlaubt die Einbindung externer Java Objekte in ein bereits laufendes Java Programm, unter Verwendung von externen Protokollen wie zum Beispiel DNS, LDAP, RMI oder NIS. Schafft man es einen bestimmten String von einer angreifbaren Applikation durch eine verwundbare Log4j-Bibliothek in ein Logfile schreiben zu lassen, kann das System erfolgreich angegriffen werden. 

Eine beispielhafte Umsetzung des Exploits veranschaulicht der Sicherheitsforscher Marcus Hutchins in folgendem YouTube Video: 
Log4j (CVE-2021-44228) RCE Vulnerability Explained

Die Möglichkeiten, wie man unterschiedlichen Anwendungen diese Anweisungen zukommen lassen kann, sind hierbei genauso vielfältig wie die betroffenen Programme. Dies erhöht die Schwierigkeit sich effektiv vor einem Angriff zu schützen.  
 


Was empfehlen wir? 
 
Aufgrund der Vielzahl von betroffenen Produkten und der damit einhergehenden großen Anzahl an möglichen Angriffsmethoden, gibt es derzeit keine einheitliche Regel, um eine vollständige Sicherheit zu garantieren.  
 
Dennoch gibt es mehrere Möglichkeiten, mögliche Angriffe zu erkennen, zu verhindern und ihre Netzwerke abzusichern. 
 

1.Machen Sie sich ein Bild der Lage 

Zunächst empfehlen wir, dass sich Ihr Unternehmen ein Bild davon macht, welche Geräte und Software die betroffenen Versionen der Log4j-Bibliotheken einsetzen.

Hierzu empfehlen wir die Suche nach Software-Hashes der betroffenen Java Pakete. 

Eine Liste derselbigen finden Sie unter anderem hier: github.com/nccgroup/Cyber-Defence/tree/master/Intelligence/CVE-2021-44228

Außerdem gibt es bereits einige Skripte, welche bestimmte Systempfade nach angreifbaren Programmen durchsuchen.
Hierzu können Sie zum Beispiel die folgenden Skripte verwenden:
https://github.com/1lann/log4shelldetect (Go) 
https://github.com/sp4ir/incidentresponse/blob/35a2faae8512884bcd753f0de3fa1adc6ec326ed/Get-Log4shellVuln.ps1 (PowerShell)
https://github.com/Neo23x0/log4shell-detector (Python) 

Zum Prüfen von Geräten welche offene Netzwerkservices anbieten, empfehlen wir folgendes NMAP Skript: 
https://github.com/Diverto/nse-log4shell 
oder aber die für das Tool Burp Suite entwickelte Erweiterung: 
https://github.com/silentsignal/burp-log4shell 

Hiernach sollten Sie in der Lage sein zu sagen, welche Systeme besonders angreifbar sind und welche Systeme erstmal als sicher gelten.


2. Patchen Sie Ihre Systeme

Die wichtigste Methode ihr Netzwerk vor den neuen Schwachstellen zu schützen, ist das Aktualisieren aller Software, welche bei ihnen im Einsatz ist. In den nächsten Monaten wird es eine Vielzahl von Updates kritischer Software geben, welche Sie unbedingt installieren sollten. Bereits innerhalb der ersten 3 Tage nach der Veröffentlichung wurden hier eine Vielzahl an Updates veröffentlicht, unter anderem auch für Log4j, welches mit der Version 15.0 nichtmehr angreifbar ist. Andere Softwareanbieter haben in der Zwischenzeit Statements veröffentlicht, ob ihre Software angreifbar ist oder nicht.  Eine laufend aktualisierte Liste von Hinweisen und Statements zu unterschiedlichen Softwareprodukten findet sich hier: 
https://gist.github.com/SwitHak/b66db3a06c2955a9cb71a8718970c592 
 

 

3. Überwachen Sie Ihr Netzwerk 

Eine weitere sinnvolle Maßnahme, um sich vor Angriffen auf die Log4j Schwachstelle zu schützen, ist eine gut ausgearbeitete Netzwerküberwachung durch IDS- und WAF- Geräte. Da eine Vielzahl der Angriffe dieselben Strukturen in ihren schadhaften Anfragen aufweist, lässt sich durch gezielt erstellte Erkennungsregeln ein Großteil der Angriffe bereits vor Erreichen Ihrer bedrohten Endgeräte erkennen und abwehren. Die ConSecur ist hier seit Beginn der Schadstellenausnutzung gezielt dabei, in Zusammenarbeit mit ihren Partnern Erkennungsregeln zu entwickeln, die eine möglichst fehlerfreie und umfassende Erkennung von Log4Shell Angriffen ermöglicht.  
Beispielhafte Anfragen, welche Ihr Unternehmen zu diesem Zeitpunkt auf jeden Fall erkennen können sollte finden sich unter anderem in folgender Github Repository: https://gist.github.com/superducktoes/9b742f7b44c71b4a0d19790228ce85d8

Die hier zusammengefassten Anfragen stellen allerdings nur einen Bruchteil der Angriffsmöglichkeiten dar und sind somit mit Vorsicht zu genießen.  

 

 4. Denken Sie über ein Threat Intelligence Konzept nach 

Neben der Blockierung maliziöser Anfragen anhand ihrer Signatur macht es Sinn, zu jedem Zeitpunkt die neusten Indikatoren zu von Angreifern kontrollierter Infrastruktur in ihrer Sicherheitsinfrastruktur zu berücksichtigen. Die bereits seit Jahren bekannten Methodiken zur Blockierung von IPs und Domains können gerade in der aktuell sehr angespannten Situation nur funktionieren, wenn die Ihnen hier zur Verfügung stehenden Daten tagesaktuell sind. Allein innerhalb der letzten 3 Tage gab es hier beispielsweise mehr als 500 Indikatoren, welche die ConSecur zusammentragen konnte.  
Ein gut organisiertes Threat Intelligence Konzept, wie es die ConSecur anbietet, stellt hierbei die beste Möglichkeit da, den Schutz ihres Unternehmens zu verbessern.

Auch zu dieser Stunde lässt sich das Ausmaß der Log4Shell Schwachstelle noch nicht vollends bestimmen. Wir verweisen dementsprechend erneut auf die regelmäßigen Updates zur aktuellen Lage, welche das deutsche Bundesamt für Sicherheit in der Informationstechnik (BSI) hier veröffentlicht: 
https://www.bsi.bund.de/SharedDocs/Cybersicherheitswarnungen/DE/2021/2021-549032-10F2.pdf 

Auch wir werden die Lage weiterhin untersuchen und Sie über die neusten Entwicklungen auf dem Laufenden halten.  
 
 Autor: Christoph Petersen