Was macht ein Angreifer, der Log4j ausnutzen will? Grundsätzlich: Er missbraucht das normale Vorgehen, Anfragen auf ein System zu protokollieren, für seinen Zweck, ausführbaren bösartigen Code zu implementieren.
Bei einer Anfrage von einem Windows-System auf einen Webserver liest die Log4j-Funktion nämlich auf dem angefragten Webserver eine Variable, kann sie auflösen und den so gewonnenen Wert als Objekt im Speicher der Login-Protokolldatei einfügen. Um diesen Wert zu erhalten, beantwortet der angesprochene Webserver die Anfrage mit einer Rückfrage und erhält in Gegenzug eine Antwort zum Auflösen der Variable: Wenn ein Benutzer sich einwählt, dessen Konto aus irgendeinem Grund momentan nicht verfügbar ist, ist der Wert für das Log-Protokoll, dass der Benutzername nicht vorliegt zum Beispiel:
Log.info (``${user.name} not found´´ -> ``mustermann not found´´
Bösartige C&C-Server
Log4j bietet aber leider noch mehr Möglichkeiten. Angreifer können in diesem String anstelle des Nutzernamens einen eigenen Java Naming and Directory Interface (JNDI) Lookup in die Log-Datei einfügen, der auf einen Server unter Kontrolle der Hacker (und außerhalb des Netzwerks) zugreift. Das heißt: Wenn ein Hacker eine JNDI benutzt, nutzt er zum Auflösen der Variable diese Java-API, um ein Objekt von seinem entfernten System auf das Opfersystem zu senden.
Der bösartige Angreifer, der seine Attacke mit einem unscheinbaren Login startet, leitet dafür die Antwort des angefragten Systems auf seinen bösartigen Command-and-Control-Server um und schickt im Gegenzug als Auflösen der Variable einen ausführbaren Payload – einen bösartigen Code und damit Malware – auf das angefragte System. Solche Aktionen bleiben für den Anwender vielleicht zunächst unbemerkt, wenn der Code etwa nur Informationen suchen soll. Er kann aber auch eine sofort aktive Ransomware installieren. Die Kommunikation zwischen anfragendem System, angefragtem Webserver und bösartigem C&C-Server ist sofort sichtbar.
So etwa der Nachrichtenverkehr, um den Namen eines Rechners zu erfahren und andere Informationen zu sammeln. Abbildung 1 zeigt ein Beispiel, in dem durch die Umleitung einer Anfrage versucht wird, an Information zu kommen.
Abb. 1: Umleiten einer Anfrage, um Informationen zu sammeln. Quelle: Bitdefender Labs
Im Beispiel in Abbildung 2 wird der Nachrichtenverkehr genutzt, um bösartigen Code zu versenden und zu installieren. Hier werden über JNDI Java-Objekte im Directory-Dienst des Webservers gespeichert. Wenn das LDAP-Objekt das objectClass-Attribut als javaNamingReference definiert hat und die Attribute javaCodebase, javaFactory sowie javaClassName hat, wird der LDAP Object Loader die Inhalte der URL abrufen, die in der javaCodebase definiert sind. Damit generiert er ein Objekt im Speicher. Die Initialisierungsmethode dieser Klasse (constructor) wird ausgeführt und lädt unbekannten Code von einer unbekannten Quelle herunter.
Abb. 2: Umleiten einer Rückfrage des Opfersystems und Laden eines bösartigen Codes. Quelle: Bitdefender Labs
Erkennbar sind solche Angriffe durch neue, unbekannte IP-Adressen außerhalb des Netzes als Absender, wie die folgenden beiden Beispiele zeigen. Abbildung 3 zeigt die Ausnutzung der Log-4j-Schwachstelle. Über diese wurden im Dezember angegriffene Systeme Teil des Muhstik-Botnetzes. Heruntergeladen wurden Kryptominer. Abbildung 4 zeigt ein fiktives Beispiel: Über ein Windows-System startet die Anfrage auf einen Ubuntu-Webserver des Opfers. Dessen LDAP-Anfrage landet bei dem Kali Linux- also dem C&C-Server und sendet ein Exploit auf den Opferserver.
Abb. 3: Botnetze. Quelle: Bitdefender Labs
Abb. 4: Ein fiktives Beispiel. Quelle: Bitdefender Labs
Die IP-Adressen des C&C-Servers sind dem zu schützenden Netz per se unbekannt, weil sie außerhalb des eigenen Netzes liegen. Allein dadurch sind sie eine Anomalie im Netzwerkverfahren. Eine Analyse der geografischen Herkunft der Absender-IPs bei Angriffen im Winter 2021 deutet auf eine weitere außergewöhnliche Kommunikation hin. Die Analysen und die Threat Intelligence der Bitdefender Labs konnte vordergründig westeuropäische IP-Adressen in über 50 Prozent der Fälle bekannten TOR-Ausgangsservern zuordnen. Zugleich zeigen die Analysen, welche JNDI-Protokolle die Angreifer häufig nutzen, und welche deshalb in Zukunft verdächtig sind. Zumindest in der Frühphase waren in 50,7 Prozent der Fälle LDAP-, in 47,3 Prozent DNS-Protokolle involviert – kaum jedoch RMI (0,9 %) oder LDAPS (0,6 %).
Die Kommunikation der C&C-Server ist im Netzverkehr sichtbar
Eine Network Detection erkennt dieses Verhalten als anormales Verhalten granular und meldet es. Basierend auf den Me- thoden von Künstlicher Intelligenz und Machine Learning wird sie immer besser das Nutzen von Protokollen und IP-Adressen korrelieren und damit vermutlich bösartige Anomalien im Netzverkehr erkennen. Für eine Abwehr agiert sie mit anderen Sicherheitstechnologien zusammen – wie etwa Endpoint Detection and Response, um laterale Bewegungen im Netz zu erkennen.
Auch eine Next Generation Firewall hilft, sofern sie nicht durch Verschleierungstaktiken hinsichtlich des Datenverkehrs ausgehebelt ist. Sie kann aber in jedem Fall zahlreiche Angriffe blocken. Ein Mehr an Sicherheit liefert sie genauso wie der grundlegende Schutz eines Endpunkts gegen Malware. Komplexe Gefahren, die über eine einfache Schwachstelle wie Log4j initiiert werden, erfordern eine gestaffelte Gegenwehr.