Log4J JDisc-Skript

Versuchen Sie – wie viele Administratoren – gerade herauszufinden, ob Anwendungen von der log4j Sicherheitslücke betroffen sind? Für kommerzielle Anwendungen „von der Stange“ ist das meist recht einfach zu bestimmen. Für benutzerdefinierte Anwendungen, die in Rechenzentren gehostet werden, kann das eine Herausforderung sein. Anwendungen, die von externen Entwicklern erstellt wurden, sind mit einem hohen Risiko verbunden. 

Das trifft besonders dann zu, wenn diese Entwickler bereits zum nächsten Kunden oder Projekt gewechselt sind. Die Anwendungen werden oft schlecht gewartet oder dokumentiert. Das macht es noch schwieriger, die Bedrohung zu erkennen.

Unser Partner JDisc hat für diesen Zweck nun ein Skript veröffentlicht. Es prüft Computer auf betroffene Anwendungen, die auf Anwendungsservern wie Tomcat, JBoss, WebSphere oder anderen laufen. Das Skript kann entweder alleine auf einem Server laufen oder in JDisc Discovery integriert werden. Das erlaubt seine automatische Ausführung bei jedem Scan eines Linux-Computers. Dieses Skript ist momentan nur für Linux verfügbar. In Kürze wird eine Windows-Version folgen.

Bitte beachten Sie: Das Skript wird kostenfrei und ohne jegliche Garantie oder Lizenzbeschränkungen zur Verfügung gestellt.

Arbeitsweise des Skripts

Wird das Skript ausgeführt, versucht es zunächst, die ausführbare JAR-Datei aus dem JDK zu finden. Der Befehl „jar“ wird benötigt, um .jar-, .ear- und .war-Dateien zu entpacken und zu untersuchen. Wenn jar nicht installiert ist, verwendet es „unzip“ als Ausweichlösung.

Dann wird nach den jar-Dateien von log4j direkt auf der Festplatte gesucht. Schließlich werden alle .ear-, .jar- und .war-Dateien überprüft, indem das Archiv nach allen eingebetteten log4j-Vorkommen durchsucht wird. Wenn es ein Vorkommen findet, gibt das Skript eine Meldung im Konsolenfenster aus. Um Probleme bei der Autorisierung zu minimieren, wird empfohlen, das Skript als root auszuführen! Beachten Sie, dass nicht alle Funde kritisch sein müssen. Die Befunde sind lediglich ein Hinweis für weitere Untersuchungen!

So integrieren Sie das Skript in JDisc Discovery

Sie können das Skript nicht nur manuell ausführen, sondern auch JDisc die Arbeit für Sie erledigen lassen. Die Idee ist, die Fähigkeit von JDisc Discovery zu nutzen, benutzerdefinierte Attribute auszufüllen, indem man Skripte auf den Zielrechnern ausführt. Immer wenn JDisc Discovery einen Linux Computer scannt, kopiert es das Skript auf den Zielcomputer, führt das Skript aus und zeichnet die Ausgabe auf. Die Ausgabe wird in einem benutzerdefinierten Attribut gespeichert, das später für Berichte verwendet werden kann.

Die folgenden Schritte erklären, wie Sie das Skript in Ihre Discovery integrieren können.

Laden Sie sich das Skript herunter. Speichern Sie es lokal auf Ihrer Festplatte. Bitte beachten Sie, dass die Datei Unix-Zeilenendungen verwendet. Wenn Sie sie in Windows-Zeilenenden ändern (indem Sie die Datei bearbeiten), kann es zu Problemen kommen! Stellen Sie bitte sicher, dass die Datei nach Ihren Änderungen immer noch Unix-Zeilenenden hat!

Definieren Sie ein neues benutzerdefiniertes Attribut. Öffnen Sie dazu den Menüpunkt „Devices > Custom Attributes > Configuration“. Sie sehen nun eine Liste benutzerdefinierter Attribute. Klicken Sie auf die Schaltfläche „Add Folder“. Sollte diese nicht verfügbar sein, markieren Sie bitte den Eintrag „Custom Attributes“. Fügen Sie nun einen neuen Ordner namens „log4j“ hinzu.

JDisc Log4J Skript

Markieren Sie nun den soeben erstellten Ordner. Klicken Sie auf die Schaltfläche „Add“. Wählen Sie in dem sich öffnenden Dialog unter „Field Definition“ den Inhaltstyp „Multiline Text“ und vergeben Sie einen Feldnamen. Stellen Sie bitte sicher, dass das Kontrollkästchen „Automatically populate value“ aktiviert ist. 

JDisc Log4J Skript

Klicken Sie nun auf die Schaltfläche „Add“, um eine neue Collection-Methode hinzuzufügen. Die Collection-Methode ändern Sie bitte auf „Execute Command“. Stellen Sie außerdem sicher, dass Sie als Plattform „Linux“ auswählen, da dieses Skript (derzeit) nur unter Linux eingesetzt werden kann.

JDisc Log4J Skript

Fügen Sie nun das Skript hinzu. Klicken Sie erneut auf die Schaltfläche „Add“. Daraufhin wird ein neues Dialogfeld mit der Liste der vorhandenen Sammlungsskripte angezeigt. Bei Ihnen ist diese Liste höchstwahrscheinlich leer. In diesem Beispiel sehen Sie in der Liste ein „helloworld“-Skript. Wählen Sie die Schaltfläche „Add“, um das neue Skript hinzuzufügen. Stellen Sie sicher, dass Sie den Typ „Unix script“ auswählen.

JDisc Log4J Skript

Klicken Sie die Schaltfläche „Browse“, um das heruntergeladene Shell-Skript zu suchen und auszuwählen. Nachdem Sie das Skript ausgewählt haben, werden im Dialogfeld der Dateiname, die Befehlszeile und der Skriptcode angezeigt.

Wählen Sie die Option „Requires root/administrative access“, wenn Sie Root- oder Administratorzugriff auf Ihre Linux-Computer haben. Andernfalls lassen Sie die Option unmarkiert. In diesem Fall wird das Skript als normaler Benutzer (der eigentliche Scan-Benutzer) ausgeführt und hat daher möglicherweise nicht auf alle Dateien Zugriff.

JDisc Log4J Skript

Vergeben Sie noch einen Namen für das Skript, schließen Sie diesen Dialog mit „Ok“ und den nächsten Dialog (Custom Attribute Data Collection) ebenfalls mit „Ok“. Wählen Sie nun im verbleibenden Dialog Ihr neues Skript aus. Durch die Auswahl des Skripts wird die benutzerdefinierte Attributdatensammlung für das ausgewählte Betriebssystem (in diesem Fall Linux) mit dem aktuellen Skript verknüpft.

JDisc Log4J Skript

Nun sind Sie bereit und können die Suche starten. Dies kann etwas länger dauern, da das Skript das gesamte Dateisystem überprüft, was ein wenig Zeit in Anspruch nehmen kann. Wenn die Erkennung abgeschlossen ist, können Sie die Ergebnisse im Abschnitt für die benutzerdefinierten Attribute eines Geräts überprüfen. In diesem Beispiel sehen Sie die Ergebnisse für ein betroffenes Linux-System.

JDisc Log4J Skript

Abschließend können Sie einen benutzerdefinierten Bericht erstellen, der Ihr neues benutzerdefiniertes Attribut als Spalte enthält.

JDisc Log4J Skript

Haben Sie Feedback?

Haben Sie Feedback zu diesem Skript? Die Entwickler von JDisc freuen sich auf Tipps und Hinweise, um das Skript zu verbessern oder auf andere Unix-Varianten zu portieren. Ihre Vorschläge sind herzlich willkommen, damit jeder von diesem Skript profitieren kann!