Wie scanne und behebe ich die Log4j-Schwachstelle?

Die Sicherheitslücke in Log4j stellt eine der gravierendsten Gefahren für moderne Systeme dar.

Protokollierung ist ein zentrales Element zeitgemäßer Anwendungen, und die Protokollierungsbibliothek Log4j spielt hier eine führende Rolle.

Diese Bibliothek wird in einer Vielzahl von Anwendungen, Diensten und Systemen eingesetzt. Folglich sind alle Anwendungen, die Log4j nutzen, von der im letzten Jahr entdeckten Sicherheitslücke betroffen.

Angesichts der global wachsenden Bedenken um Cybersicherheit ergreifen Unternehmen und Einzelpersonen Maßnahmen zum Schutz ihrer Anwendungen, Systeme und Daten.

Die Entdeckung dieser Schwachstelle hat Fachleute und Unternehmen zusätzlich unter Druck gesetzt.

Daher ist es unerlässlich, die Log4j-Schwachstelle zu identifizieren und zu beseitigen, wenn man seine Daten, sein Netzwerk, seinen Ruf und das Vertrauen der Kunden bewahren möchte.

In diesem Artikel werde ich erläutern, was die Log4j-Schwachstelle ist und welche Schritte zur Erkennung und Behebung erforderlich sind.

Beginnen wir mit einem grundlegenden Verständnis von Log4j und seiner Notwendigkeit.

Was ist Log4j?

Log4j ist ein in Java verfasstes Open-Source-Protokollierungstool, das vorwiegend zur Speicherung, Formatierung und Veröffentlichung von Protokolldatensätzen aus Anwendungen und Systemen dient, die anschließend auf Fehler überprüft werden. Die aufgezeichneten Daten können vielseitig sein, von Webseiten- und Browserdaten bis hin zu technischen Systemdetails, auf denen Log4j läuft.

Anstatt Code von Grund auf neu zu schreiben, können Entwickler die Log4j-Bibliothek nutzen, indem sie ihren Code in ihre Apps integrieren.

Log4j ermöglicht es Entwicklern, sämtliche Ereignisse in Verbindung mit ihren Anwendungen mit präzisen Protokollinformationen zu überwachen. Dies unterstützt sie dabei, Anwendungen zu kontrollieren, Probleme zeitnah zu erkennen und zu beheben, bevor sie sich zu größeren Problemen in Bezug auf Leistung und/oder Sicherheit entwickeln.

Diese Java-basierte Bibliothek wurde von Ceki Gülcü entwickelt und 2001 unter der Apache-Lizenz 2.0 veröffentlicht. Sie verwendet Java Naming and Directory Interface (JNDI)-Dienste, um Apps die Interaktion mit anderen Apps wie LDAP, DNS, CORBA usw. zu ermöglichen und eine Verzeichnis- und Namensfunktionalität für Java-basierte Anwendungen bereitzustellen. Log4j arbeitet mit drei Hauptkomponenten:

  • Logger zur Erfassung von Protokolldaten
  • Layouts zur Formatierung von Protokolldaten in diversen Stilen
  • Appender zur Verteilung von Protokolldaten an verschiedene Zielorte

Log4j hat sich als eine der bekanntesten Protokollierungsbibliotheken im Internet etabliert und wird von Organisationen aus verschiedenen Branchen und Ländern eingesetzt. Viele haben diese Bibliothek in zahlreichen Anwendungen integriert, darunter führende Cloud-Dienste von Google, Microsoft, Apple, Cloudflare, Twitter usw.

Der Entwickler, die Apache Software Foundation, entwickelte Log4j 2 als Upgrade von Log4j, um in früheren Versionen aufgetretene Probleme zu lösen. Im letzten Jahr wurde jedoch in Log4j eine Schwachstelle entdeckt, die es Angreifern ermöglichen kann, in Anwendungen und Systeme einzudringen, Daten zu entwenden, ein Netzwerk zu infizieren und andere schädliche Aktivitäten auszuführen, wenn diese Schwachstelle nicht behoben wird.

Lassen Sie uns das genauer betrachten.

Was ist Log4Shell – die Log4j-Schwachstelle?

Log4Shell ist eine kritische Cybersicherheitslücke innerhalb der Log4j-Bibliothek, die die Kernfunktionen der Bibliothek beeinträchtigt. Sie erlaubt es Angreifern, ein mit dem Internet verbundenes Gerät oder eine Anwendung durch Remotecodeausführung zu kontrollieren. Bei erfolgreichem Zugriff können sie:

  • Beliebigen Code auf dem Gerät oder System ausführen
  • Auf sämtliche Netzwerke und Daten zugreifen
  • Jede Datei auf der betroffenen App oder dem Gerät verändern oder verschlüsseln

Diese Schwachstelle wurde erstmals am 24. November 2021 von Chen Zhaojun, einem Sicherheitsforscher bei Alibaba (einem chinesischen E-Commerce-Giganten), gemeldet. Die Schwachstelle betraf ihre Minecraft-Server, die das Cloud-Sicherheitsteam von Alibaba am 9. Dezember entdeckte.

Das NIST veröffentlichte die Schwachstelle in der National Vulnerability Database unter der Bezeichnung CVE-2021-44228. Die Apache Software Foundation bewertete diese Schwachstelle mit einer 10 im CVSS-Schweregrad. Diese Bewertung ist selten und wird nur bei sehr schwerwiegenden Fällen vergeben, da sie das Potenzial hat, weitreichend und einfach ausgenutzt zu werden, was zu massiven Schäden für Organisationen und Einzelpersonen führen kann.

Apache reagierte mit der Veröffentlichung eines Patches für diese Schwachstelle. Allerdings blieben einige Bereiche unbehandelt, was zu weiteren Schwachstellen führte:

  • CVE-2021-45046, die Denial-of-Service (DoS)-Angriffe durch JNDI-Lookups ermöglichte
  • CVE-2021-45105, die es Hackern ermöglicht, Thread-Kontext-Map-Informationen zu manipulieren und DoS-Angriffe durch die Interpretation einer präparierten Zeichenfolge auszulösen
  • CVE-2021-44832 betrifft alle Log4j 2-Versionen über Remote Code Injection (RCE)

Wie funktioniert Log4Shell?

Um das Ausmaß und das Schadenspotenzial von Log4Shell zu verstehen, ist es wichtig zu wissen, wie diese Log4j-Schwachstelle funktioniert.

Die Log4Shell-Schwachstelle ermöglicht es Angreifern, beliebigen Code per Fernzugriff in ein Netzwerk einzuschleusen und die vollständige Kontrolle darüber zu übernehmen.

Diese Art von Cyberangriff beginnt damit, dass eine Protokollierungsbibliothek wie Log4j Protokollinformationen sammelt und speichert. Wenn keine Protokollierungsbibliothek vorhanden ist, werden alle Daten vom Server direkt nach der Datenerfassung archiviert.

Sollten diese Daten jedoch analysiert oder Aktionen basierend auf bestimmten Protokollinformationen durchgeführt werden, ist eine Protokollierungsbibliothek erforderlich, um Protokolldaten vor der Archivierung zu analysieren.

Aufgrund der Log4j-Schwachstelle wird jedes System oder jede Anwendung, die Log4j verwendet, anfällig für Cyberangriffe. Die Protokollierungsbibliothek führt Code basierend auf der Eingabe aus. Ein Hacker kann die Protokollbibliothek zur Ausführung von Schadcode zwingen, da die Schwachstelle es ihm ermöglicht, die Eingabe zu manipulieren.

Währenddessen laufen viele Prozesse im Hintergrund ab. Wenn Log4j eine speziell präparierte Zeichenfolge erhält, ruft es einen LDP-Server auf und lädt den auf dem Server gehosteten Code herunter, um ihn auszuführen. Angreifer können auf diese Weise einen LDAP-Server erstellen, der schädlichen Code speichert, und so die Kontrolle über jeden Server erlangen, der diesen Code ausführt. Dann senden sie eine Zeichenfolge, die ihren Schadcode an eine Zielanwendung oder ein Zielsystem weiterleitet und die vollständige Kontrolle darüber übernimmt.

Die Log4j-Schwachstelle kann also wie folgt ausgenutzt werden:

  • Ein Angreifer findet einen Server mit einer verwundbaren Log4j-Version.
  • Sie senden dem Zielserver eine GET-Anfrage, die einen Link zu ihrem schädlichen LDAP-Server enthält.
  • Anstatt die Anfrage zu überprüfen, stellt der Zielserver direkt eine Verbindung zu diesem LDAP-Server her.
  • Die Angreifer senden dem Zielserver eine LDAP-Server-Antwort mit Schadcode. Aufgrund der Schwachstelle von Log4j, die es ermöglicht, den Code ohne Prüfung zu empfangen und auszuführen, kann der Hacker diese Schwachstelle nutzen, um in den Zielserver einzudringen und verbundene Systeme, Netzwerke und Geräte zu gefährden.

Wie kann die Log4j-Schwachstelle Benutzern schaden?

Die Schwachstelle in Log4j ist besorgniserregend, da sie in zahlreichen Softwareanwendungen und Systemen eingesetzt wird.

Da Protokollierung ein zentrales Element der meisten Softwareanwendungen ist und Log4j eine führende Lösung in diesem Bereich darstellt, findet Log4j Einsatz in einer Vielzahl von Softwaresystemen.

Einige der gängigen Dienste und Anwendungen, die Log4j nutzen, sind Minecraft, AWS, iCloud, Microsoft, Twitter, Internetrouter, Softwareentwicklungstools, Sicherheitstools und mehr. Daher können Angreifer eine Vielzahl von Anwendungen, Diensten und Systemen angreifen, die von Privatanwendern, Softwareentwicklern, Dienstanbietern und anderen Fachleuten und Einzelpersonen verwendet werden.

Darüber hinaus ist die Log4j-Schwachstelle für Angreifer sehr einfach auszunutzen. Der gesamte Prozess erfordert keine Expertenkenntnisse, um einen Angriff durchzuführen. Daher steigt die Anzahl der Angriffe, die diese Schwachstelle ausnutzen.

Die Auswirkungen der Log4j-Schwachstelle können sein:

  • DoS-Angriffe
  • Angriffe auf die Lieferkette
  • Coin-Mining
  • Schadsoftware-Injektionen, wie Ransomware und Trojaner
  • Beliebige Code-Injektion
  • Remote-Code-Ausführung

Und mehr.

Als Folge dieser Angriffe können Ihre Anwendungen, Systeme und Geräte verloren gehen und Ihre Daten Angreifern zum Opfer fallen, die diese möglicherweise verkaufen, manipulieren oder der Öffentlichkeit zugänglich machen. Dadurch kann Ihr Unternehmen in Bezug auf Datenschutz, Vertrauen, Geschäftsgeheimnisse und sogar Umsätze und Erträge geschädigt werden, abgesehen von Compliance-Risiken.

Laut einem Bericht haben über 40 % der globalen Unternehmensnetzwerke Angriffe aufgrund dieser Schwachstelle erfahren.

Selbst wenn Sie keine anfälligen Log4j-Versionen in Ihren Anwendungen verwenden, können Ihre Drittanbieter-Integrationen diese nutzen, was Ihre App anfällig für Angriffe macht.

Es ist wichtig zu beachten, dass alle Log4j-Versionen vor Log4j 2.17.0 betroffen sind. Daher ist es unerlässlich, den Logger zu aktualisieren, wenn Sie ihn verwenden. Bekannte Anbieter, die von dieser Log4j-Schwachstelle betroffen sind, sind beispielsweise Adobe, AWS, IBM, Cisco, VMware, Okta, Fortinet usw. Wenn Sie Dienste von einem dieser Anbieter nutzen, überwachen Sie Ihre Apps kontinuierlich und verwenden Sie Sicherheitssysteme, um Probleme sofort zu beheben.

So erkennen Sie von Log4j betroffene Programme und beheben die Probleme

Die Log4Shell-Schwachstelle hat einen CVSS-Score von 10. Daher sind noch nicht alle Probleme in Log4j behoben. Es ist jedoch möglich, dass Sie oder Ihr Drittanbieter Log4j in Ihrer Anwendung verwenden.

Wenn Sie Ihre Daten, Systeme und Ihr Netzwerk schützen möchten, stellen Sie sicher, dass Sie einige Abhilfemaßnahmen befolgen.

#1. Aktualisieren Sie Ihre Log4j-Version

Die Aktualisierung Ihrer aktuellen Log4j-Version auf Log 4j 2.17.1 ist die effektivste Methode, um Ihre Geräte und Apps vor Angriffen aufgrund der Log4j-Schwachstelle zu schützen.

Log4Shell ist eine Art Zero-Day-Angriff, der Ihr Software-Ökosystem potentiell beeinträchtigen kann. Apache hat einige der Schwachstellen in den neueren Versionen behoben. Aber selbst wenn Ihr System vor dem Upgrade kompromittiert wurde, sind Sie immer noch gefährdet.

Es ist daher wichtig, nicht nur die Version zu aktualisieren, sondern auch unverzüglich mit Ihren Incident-Response-Verfahren zu beginnen, um sicherzustellen, dass keine Schwachstellen in Ihren Systemen und Anwendungen vorhanden sind, und die Angriffe zu mindern. Sie müssen auch alle Ihre Serverprotokolle auf Indicators of Compromise (IOC) überprüfen und Ihre Systeme und Ihr Netzwerk ständig überwachen.

#2. Verwenden Sie die neuesten Firewalls und Sicherheitssysteme

Firewalls wie die Web Application Firewall (WAF) und Firewalls der nächsten Generation können dabei helfen, Ihr Netzwerk vor Angreifern zu schützen, indem sie ein- und ausgehende Datenpakete scannen und verdächtige blockieren. Stellen Sie daher die neuesten Firewalls in Ihrem Netzwerk bereit und konfigurieren Sie strenge ausgehende Regeln auf Ihren Servern, um Angriffe im Zusammenhang mit der Log4j-Schwachstelle zu verhindern.

Obwohl Angreifer Firewalls umgehen können, bieten Firewalls dennoch ein gewisses Maß an Sicherheit, indem sie Anfragen von Angreifern blockieren.

Aktualisieren Sie außerdem alle Ihre Sicherheitssysteme wie Intrusion Detection Systems (IDS), Intrusion Prevention Systems (IPS) usw. mit den neuesten Signaturen und Regeln. Diese Systeme helfen, RMI- und LDAP-Datenverkehr daran zu hindern oder zu filtern, sich mit einem schädlichen LDAP-Server zu verbinden.

#3. MFA implementieren

Die Implementierung einer Multi-Faktor-Authentifizierung (MFA) in Ihren Anwendungen und Systemen bietet besseren Schutz vor Angreifern. Es bietet eine zusätzliche Sicherheitsebene, selbst wenn es einem Angreifer gelingt, die erste Ebene zu durchbrechen. Dies kann durch biometrische Daten wie Fingerabdrücke oder Iris-Scan, die Festlegung einer Sicherheitsfrage oder die Aktivierung einer Sicherheits-PIN erfolgen.

Die Verwendung von MFA erschwert und verzögert Angriffe. Gleichzeitig kann es Sie bei einem Vorfall sofort benachrichtigen, sodass Sie noch Zeit haben, die erforderlichen Maßnahmen zu ergreifen.

Zusätzlich müssen Sie strenge VPN-Richtlinien einsetzen, um Datenschutzverletzungen zu reduzieren. Dies ermöglicht Benutzern einen sicheren Zugriff auf Ihre Systeme von überall her, ohne Angst vor Angreifern haben zu müssen.

#4. Systemeigenschaften ändern

Falls Sie nicht auf die neueste Version der Log4j-Bibliothek aktualisieren können, ist es notwendig, die Java-Systemeigenschaften umgehend zu ändern, sofern Sie eine Version von Log4j 2.10 bis Log4j 2.14.1 verwenden.

Sie müssen die Einstellungen so anpassen, dass Lookups verhindert werden, mit denen Angreifer die Schwachstellen erkennen und anschließend Möglichkeiten zur Ausnutzung finden.

#5. JNDI entfernen

Die Ursache dieser kritischen Sicherheitslücke liegt in ihrem Design. Das JNDI-Lookup-Plugin weist einen Designfehler auf, der es Angreifern ermöglicht, einen Angriff durchzuführen.

JNDI wird für die Codeausführung basierend auf den Eingabedaten in seinem Protokoll genutzt. Diese Daten kann jeder leicht manipulieren, da der Logger jede Anfrage ohne Überprüfung akzeptiert.

Sicherheitsforscher haben festgestellt, dass dieses Plugin seit seiner Veröffentlichung im Jahr 2013 immer ungeprüfte Daten annimmt und an die Log4j-Bibliothek weiterleitet.

Daher ist die Log4j-Schwachstelle anfällig für die Ausnutzung durch eine einfache String-Injektion. Sobald der Angreifer diese eingefügt hat, akzeptiert der Logger die in der Zeichenfolge angeforderte Operation und führt diese ohne Überprüfung sofort aus.

Wenn Sie Ihre Systeme und Anwendungen sichern möchten, ist es wichtig, die Klasse – JndiLookup – zu deaktivieren. Dadurch wird verhindert, dass der Logger basierend auf Protokolldaten Aktionen ausführt.

Tatsächlich ist die JNDI-Suche in Log4j 2.16.0 bereits standardmäßig deaktiviert, um Ihre Anwendungen und Systeme zu schützen.

Wenn Sie also eine Log4j-Version niedriger als 2.16.0 verwenden, stellen Sie sicher, dass Sie JNDI Lookup deaktiviert haben.

#6. Sprechen Sie mit Ihren Lieferanten

Selbst wenn Sie alles richtig gemacht haben, Ihre Firewalls und Sicherheitssysteme aktualisiert, die Log4j-Version aktualisiert, JNDI Lookup deaktiviert usw., sollten Sie nicht nachlassen.

Selbst wenn Sie in Ihren Anwendungen keine anfällige Log4j-Version verwenden, ist es möglich, dass Ihre Drittanbieter sie einsetzen. Sie werden also nie erfahren, wie Ihre Anwendung oder Ihr System gehackt wurde, weil die eigentliche Ursache in Ihrer Drittanbieter-Integration lag.

Daher ist es ratsam, mit Ihren Anbietern zu sprechen und sicherzustellen, dass auch sie Log4j auf die neueste Version aktualisiert und andere oben beschriebene Sicherheitspraktiken umgesetzt haben.

#7. Verwenden Sie einen Log4j Vulnerability Scanner

Es gibt viele Tools zum Scannen von Log4j-Schwachstellen, die auf dem Markt verfügbar sind und Ihnen die Erkennung von Log4j-Schwachstellen in Ihren Systemen und Anwendungen erleichtern.

Wenn Sie nach solchen Tools suchen, überprüfen Sie deren Genauigkeit, da viele von ihnen falsch-positive Ergebnisse liefern. Wählen Sie ein Tool aus, das Ihren Anforderungen entspricht, da es sich möglicherweise auf die Identifizierung der Log4j-Schwachstelle, die Meldung der Gefährdung und die Behebung der Schwachstelle konzentriert.

Wenn Ihr Fokus auf der Erkennung liegt, suchen Sie nach einem Log4j-Schwachstellenscanner, der das Problem identifizieren kann, oder verwenden Sie einen, der das Problem erkennen und beheben kann.

Einige der besten Log4j-Scan-Tools sind:

  • Microsoft 365 Defender: Microsoft bietet eine Reihe von Sicherheitslösungen und -tools an, mit denen Sie Log4j-Exploits in Ihrem Netzwerk erkennen und verhindern können. Sie sind in der Lage, Versuche von Remote-Code-Ausführung und Exploits zu erkennen und sich vor Log4j-Schwachstellen in Windows- und Linux-Geräten zu schützen.
  • Amazon Inspector und AWS: Amazon hat ein Scan-Tool entwickelt, um die Log4j-Schwachstelle in Amazon EC2-Instances und Amazon ECR zu finden.
  • CloudStrike Archive Scan Tool (CAST): CloudStrike hat ebenfalls ein hervorragendes Scan-Tool zur Erkennung der Log4j-Schwachstelle entwickelt, damit Sie Probleme rechtzeitig beheben können, bevor Angreifer sie ausnutzen können.
  • Google Cloud Logging-Erkennung: Die Google Cloud Logging-Erkennung ermöglicht es Ihnen, Log4j-Exploits mit dem Logs Explorer zu erkennen. Sie können eine Protokollabfrage erstellen und nach potenziellen Exploit-Strings suchen.
  • Google hat außerdem log4jscanner entwickelt, einen Open-Source-Dateisystemscanner zur Erkennung der Log4j-Schwachstelle.
  • BurpSuite Log4j Scanner: Dies ist ein Sicherheits-Plugin für Fachleute und Unternehmen, das ihnen bei der Erkennung der Log4j-Schwachstelle hilft.
  • Huntress Log4Shell Vulnerability Tester: Dieses Tool generiert zufällig eine eindeutige Kennung, die Sie beim Testen Ihrer Eingabefelder verwenden können. Wenn eine Schwachstelle in der Anwendung oder im Eingabefeld gefunden wird, beendet der sichere LDAP-Server die schädliche Verbindung sofort und gewährleistet somit Ihre Sicherheit.
  • WhiteSource Log4j Detect: WhiteSource hat ein kostenloses CLI-Tool, WhiteSource Log4j Detect, entwickelt, das auf GitHub gehostet wird, um Ihnen bei der Erkennung und Behebung von Log4j-Schwachstellen – CVE-2021-445046 und CVE-2021-44228 – zu helfen.
  • JFrog Open-Source-Scanning-Tools für Log4j: JFrog hat verschiedene Open-Source-Lösungen und -Tools entwickelt, um Log4j-Schwachstellen in Ihren Binärdateien und Ihrem Quellcode zu finden.

Fazit

Die Log4j-Schwachstelle stellt ein kritisches Sicherheitsproblem dar. Da diese Protokollierungsbibliothek in zahlreichen Anwendungen und Systemen weit verbreitet ist, ist auch die Log4j-Schwachstelle weit verbreitet und ermöglicht es Angreifern, eine Vielzahl von Systemen und Apps auszunutzen.

Wenn Sie Ihre Systeme und Anwendungen vor dieser Schwachstelle schützen möchten, ist es entscheidend, dass Sie die Log4j-Bibliothek auf die neueste Version aktualisieren und die oben beschriebenen Sicherheitsmaßnahmen implementieren.