Die log4j-Lücke
Aktueller Stand: 22.12.2021 8:44 (Version 3)
Vergangene Woche veröffentlichte das Bundesamt für Sicherheit in der Informationstechnik (BSI) eine Warnmeldung hinsichtlich einer sehr kritischen Softwareschwachstelle [1]. Wir haben hierzu bereits am 13.12.2021 im Blog informiert [2]. Die betroffene Software „log4j“ ist selbst wiederum in einer Unzahl anderer Softwarepakete enthalten, sodass sehr viele IT-Dienste von dieser Schwachstelle betroffen sind. Zudem ist diese Lücke sehr einfach ausnutzbar, weswegen hier dringender Handlungsbedarf besteht.
Mit diesem Blog-Artikel möchten wir alle IT-Administratoren an der TU Chemnitz auf den aktuellen Stand bringen, da sich im Laufe der letzten Woche neue Erkenntnisse ergeben haben. Bereits ergriffene Schutzmaßnahmen können deshalb mittlerweile nicht mehr wirksam sein. Wir rufen aus diesem Grund die IT-Administratoren aller Struktureinheiten an der TU Chemnitz dazu auf, ihre IT-Systeme noch vor Beginn der Betriebsruhe flächendeckend hinsichtlich der Verwundbarkeit zu überprüfen. Hierfür empfehlen wir folgendes Vorgehen:
- Prüfen Sie, ob die von Ihnen genutzten Softwareprodukte in der Liste [3] als betroffen genannt sind. In dieser Liste sind Hinweise zu empfohlenen Sicherungsmaßnahmen verlinkt. Wenden Sie diese Maßnahmen an!
- Prüfen Sie das System mit den in diesem Blog-Artikel empfohlenen Werkzeugen.
Bitte wenden Sie stets beide Schritte an! Erst wenn beide Schritte keine Lücken feststellen, können Sie sich ausreichend sicher sein, dass Ihr System nicht angreifbar ist und während der Betriebsruhe keine Gefahr für die Sicherheit des Campusnetzes darstellt.
Prüfwerkzeuge
Wir können zwei Prüfwerkzeuge empfehlen: „divd-2021-00038–log4j-scanner“ [4a] (im Folgenden kurz „divd“) und „log4shelldetect“ [5a]. Beide Werkzeuge können vorkompiliert von GitHub bezogen werden: [4b] divd vorkompiliert bzw [5b] log4shelldetect vorkompiliert. Sie erfordern keine weiteren Softwarepakete und somit ist es auch sehr unwahrscheinlich, dass bereits mit Schadcode infizierte Systeme die Prüfroutinen täuschen. Welches Werkzeug Sie verwenden, ist egal. Wir beschreiben hier die Anwendung von „divd“, da es zudem in der Lage ist, neben dem Dateisystem auch Docker-Container zu untersuchen. Zudem kann es verwundbare Dateien behelfsmäßig patchen und ist damit vom Funktionsumfang her mächtiger.
divd
Verwundbare Dateien suchen
Der Aufruf von divd erfolgt durch:
./divd-2021-00038--log4j-scanner scan Verzeichnisliste
Es werden alle verwundbaren Dateien aufgelistet.
Hier besteht also dringender Handlungsbedarf! Folgende Verzeichnisse müssen Sie mindestens überprüfen:
- /usr
- /opt
- /var
- /srv (Update 21.12.2021 11:55)
Ist noch in anderen Verzeichnissen Software installiert, müssen diese Verzeichnisse ebenfalls überprüft werden.
Verwundbare Docker-Container suchen
Software wird heutzutage nicht immer direkt auf dem Server installiert, sondern als sogenannter Docker-Container ausgeliefert. Hierbei handelt es sich um ein „System im System“. Divd ist in der Lage, diese Docker-Container zu durchsuchen. Der Aufruf erfolgt durch
./divd-2021-00038--log4j-scanner scan-image --local
Hiermit werden alles auf der Maschine installierten Docker-Container durchsucht. Das dauert etwas.
Verwundbare Dateien patchen
Sollten vom Software-Hersteller keine Schutzmaßnahmen veröffentlicht worden sein, kann divd den schadhaften Code entfernen. Jedoch kann sich das betroffene IT-System im Anschluss fehlerhaft verhalten und wir können keine Garantie für die Wirksamkeit dieser Maßnahme bieten. Der Aufruf erfolgt durch
./divd-2021-00038--log4j-scanner patch Datei
Bitten beachten Sie, dass Serverdienste im Anschluss neu gestartet werden müssen, damit die Änderung wirkt.
Update 22.12.2021 8:44: Das Patch-Feature ist experimentell. Uns wurden Fälle berichtet, in denen die Patch-Funktion nicht half den verwundbaren Code zu entfernen. Bitte verlassen Sie sich nicht allein auf diese Lösung und prüfen Sie nach Anwendung des Patches ggf. erneut, ob die Datei noch verwundbaren Code enthält.
log4shelldetect
Der Vollständigkeit halber beschreiben wir nun noch die Anwendung von „log4shelldetect“. Dieses Werkzeug durchsucht das Dateisystem auf verwundbare Dateien. Der Aufruf erfolgt durch
./log4shelldetect -include-zip Verzeichnis
Update 21.12.2021 11:55: Dieser Scanner kann nur jeweils ein Verzeichnis am Stück überprüfen. Zusätzliche Verzeichnisse auf der Kommandozeile werden ignoriert. Starten Sie also den Scanner für jedes Verzeichnis (z.B: /usr, /var, /opt, /srv, …) individuell.
Die Ausgabe sieht wie folgt aus.
Dateien, die mit „VULNRBL“ (vulnerable, engl. für „verwundbar“) markiert sind, sind von der Lücke betroffen. Mit dem Aufruf
./log4shelldetect -mode list -include-zip Verzeichnis
werden nur betroffene Dateien ausgegeben, sodass die Ausgabe übersichtlicher wird.
Änderungsgeschichte
- 21.12.2021 10:00: redaktionelle Änderungen
- 21.12.2021 11:55
- Verzeichnispfade /srv ergänzt
- Hinweise zu Einzelpfaden bei „log4shelldetect“ ergänzt
- Parameter „-include-zip“ bei „log4shelldetect“ ergänzt
- 22.12.2021 8:44: Hinweise zur Patch-Funktion von „divd“ ergänzt
Links
- [1] Sicherheitswarnung „Kritische Schwachstelle in Java-Bibliothek Log4j“ des BSI
- [2] URZ-Blogbeitrag „Kritische Schwachstelle in log4j“ vom 13.12.2021
- [3] „Log4j overview related software” auf GitHub
- [4a] Prüfwerkzeug „divd-2021-00038–log4j-scanner“ auf GitHub
- [4b] divd vorkompiliert
- [5a] Prüfwerkzeug „log4shelldetect“ auf GitHub
Schreibe einen Kommentar
Du musst angemeldet sein, um einen Kommentar abzugeben.