13. Dezember 2021
Keine Log4j-Schwachstelle in QF-Test
Zuletzt aktualisiert: 19.05.2022
QF-Test und der QF-Test Lizenzserver sind nicht von der Log4shell-Schwachstelle CVE-2021-44228 betroffen
In den letzten Tagen wurde eine Schwachstelle in der Open-Source-Bibliothek Log4j gefunden, über die Server-Systeme kompromittiert werden können (genannt "Log4shell"). QF-Test ist (und war) nicht von dieser Schwachstelle betroffen, und zwar aus einer Reihe von Gründen:
- QF-Test nutzt Log4j nicht direkt, sondern verwendet ein eigenes Logging-System, welches keine String-Interpretation und keine Code-Ausführung erlaubt.
- Die JRE-Versionen, die mit QF-Test ausgeliefert werden bzw. wurden (Oracle JDK und OpenJDK) sind seit Oracle JRE 8u121 in 2019 so konfiguriert, dass die Code-Ausführung des aktuellen Angriffsvektors verhindert wird. Konkret ist die Einstellung
com.sun.jndi.rmi.object.trustURLCodebase
standardmäßig auffalse
bzw.null
gesetzt, so dass kein entfernter Code ausgeführt wird. QF-Test ändert diese Einstellung nicht. - Normalerweise wird QF-Test nicht in einem Server-Modus gestartet, so dass Angreifer keinen Schadcode in den Prozess einschleusen können. Aber auch im Daemon-Modus oder als Lizenz-Server benötigt QF-Test keine Log4j-Klassen.
- Keine der mit QF-Test ausgelieferten Bibliotheken enthält log4j in einer Version, die anfällig für den log4shell Angriff ist*. Dies wurde von uns, wie unten beschrieben, für alle aktuellen und vergangenen offiziellen QF-Test Versionen geprüft, bis zurück zu QF-Test 3.4.11, welche älter ist als die erste verwundbare log4j Version 2.0beta9.
*) Die log4-Klassen, welche vor QF-Test 6.0 in die mitgelieferte externe UI-Automation-Bibliothek eingebettet waren, sind nicht von der CVE-2021-44228 Schwachstelle betroffen.
Wie Sie selbst auf verwundbare Versionen von Log4j prüfen können
Man kann das Log4j detector tool verwenden um selbst zu überprüfen, dass keine verwundbare Version von Log4j in QF-Test enthalten ist. Dazu muss man die Bibliothek herunterladen und z.B. im Verzeichnis C:\TEMP
speichern. Dann öffnet man ein Terminal bzw. eine Eingabeaufforderung, navigiert zu dem Verzeichnis mit der Bibliothek und startet das Tool mit Hilfe des in QF-Test eingebetteten Java-Interpreters:
# Unter Windows: > "C:\Program Files\QFS\qftest\qftest-5.3.4\jre\win64\bin\java.exe" -jar log4j-detector-2021.12.13.jar "C:\Program Files\QFS\qftest\" -- Analyzing paths (could take a long time). -- Note: specify the '--verbose' flag to have every file examined printed to STDERR. -- No vulnerable Log4J 2.x samples found in supplied paths: [C:\Program Files\QFS\qftest\] -- Congratulations, the supplied paths are not vulnerable to CVE-2021-44228 ! :-) # Unter Linux: > /data/install/qftest/qftest-5.3.4/jre/linux64/bin/java -jar log4j-detector-2021.12.13.jar /data/install/qftest/qftest-branch -- Analyzing paths (could take a long time). -- Note: specify the '--verbose' flag to have every file examined printed to STDERR. -- No vulnerable Log4J 2.x samples found in supplied paths: [/data/ins tall/qftest/qftest-branch] -- Congratulations, the supplied paths are not vulnerable to CVE-2021-44228 ! :-) # Unter macOS: % /Applications/QF-Test.app/Contents/PlugIns/*.j*/Contents/Home/jre/bin/java -jar log4j-detector-2021.12.13.jar /Applications/QF-Test.app/Contents/Resources -- Analyzing paths (could take a long time). -- Note: specify the '--verbose' flag to have every file examined printed to STDERR. -- No vulnerable Log4J 2.x samples found in supplied paths: [/Applications/QF-Test.app/Contents/Resources] -- Congratulations, the supplied paths are not vulnerable to CVE-2021-44228 ! :-)
(Die in diesem Beispiel verwendeten Standardpfade müssen dabei an Ihr System angepasst werden)
Eigene Plug-Ins überprüfen
In den eigenen Tests werden evtl. externe Plugins verwendet, die nicht mit QF-Test mitgeliefert werden. Auch hier ist es sinnvoll, diese auf Schwachstellen zu überprüfen. Dazu wählen Sie im QF-Test-Menü den Punkt "Hilfe->Info..." (auf macOS "QF-Test->Über QF-Test") aus, dort den Reiter "Systeminfo" und folgen dem Link zu "dir.plugin". In der Eingabeaufforderung muss nun zur Prüfung der gleiche Befehl wie zuvor verwendet werden, wobei Pfad letzten Argument ersetzt werden muss durch den Pfad für "dir.plugin", also zum Beispiel:
# Unter macOS: % /Applications/QF-Test.app/Contents/PlugIns/*.j*/Contents/Home/jre/bin/java -jar log4j-detector-2021.12.13.jar "/Users/pascal/Library/Application Support/de.qfs.apps.qftest/plugin