
Forschung zur CVE-2024-3094-Schwachstelle.
Dieses Repository enthält die Ergebnisse der Analyse der kritischen Sicherheitslücke CVE-2024-3094 (Backdoor in der Bibliothek liblzma des Pakets xz-utils, die zu RCE über den OpenSSH-Prozess führt).
Im Rahmen des Projekts wurde eine isolierte Testumgebung erstellt, ein Bedrohungsmodell entwickelt und automatische Prüfungen geschrieben.
Dockerfile — Build-Skript für die Umgebung (Debian Bookworm) mit allen Abhängigkeiten (OpenSSH, Python 3, venv, pytest, pwntools).tests/ — Verzeichnis mit automatischen Tests (pytest):
test_vulnerability.py / tests_vulnerability.py — Integrationstests für SSH-Funktionalität und Mock-Tests zur Überprüfung des Backdoor-Erkennungsverhaltens.exploit/ — Proof-of-Concept (PoC)-Skripte zur Angriffssimulation.docs/ — Bedrohungsmodell (Threat Model) im Markdown-Format und Diagramme.reports/ — Berichte zu Ergebnissen der statischen/dynamischen Analyse.Alle Tests und Untersuchungen werden in einem isolierten Docker-Container durchgeführt, um das Host-System nicht zu gefährden.
Das Image installiert einen SSH-Server (mit Passwort root:screencast) und richtet eine virtuelle Python-Umgebung mit allen erforderlichen Bibliotheken ein.
docker build -t cveanalysis:20243094 .
Der Container wird im Hintergrund gestartet. Der interne SSH-Port (22) wird auf Port 2222 des Host-Rechners weitergeleitet.
docker run -d -p 2222:22 --name cve-test cveanalysis:20243094
Um alle Testdateien (test_vulnerability.py und tests_vulnerability.py) auszuführen, führen Sie folgenden Befehl auf Ihrem Host-Rechner aus:
docker exec -it cve-test pytest -v tests/*
Was die Tests prüfen:
root:screencast).Wenn Sie Skripte aus dem Ordner exploit/ testen (oder manuell per SSH verbinden) möchten, nutzen Sie von Ihrem Host-Rechner aus den weitergeleiteten Port 2222:
# Beispiel für manuellen Login
ssh [email protected] -p 2222
# Passwort: screencast
# Beispiel für das Ausführen Ihres PoC-Skripts (falls es einen externen Aufruf erfordert)
python3 exploit/PoC.py 127.0.0.1
Stoppen und entfernen Sie den Testcontainer nach Abschluss der Analyse:
docker stop cve-test
docker rm cve-test