IT-Systeme auf die log4j-Schwachstelle testen

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:

  1. 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!
  2. 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

Schreibe einen Kommentar