
Recherche de la vulnérabilité CVE-2024-3094.
Ce dépôt contient les résultats de l'analyse de la vulnérabilité critique CVE-2024-3094 (backdoor dans la bibliothèque liblzma du paquet xz-utils, menant à une exécution de code à distance via le processus OpenSSH).
Dans le cadre du projet, un environnement de test isolé a été préparé, un modèle de menace a été développé et des vérifications automatiques ont été écrites.
Dockerfile — Script de construction de l'environnement (Debian Bookworm) avec toutes les dépendances (OpenSSH, Python 3, venv, pytest, pwntools).tests/ — Répertoire contenant les tests automatiques (pytest) :
test_vulnerability.py / tests_vulnerability.py — Tests d'intégration de la fonctionnalité SSH et tests Mock pour vérifier le comportement du système de détection de la backdoor.exploit/ — Scripts Proof of Concept (PoC) pour l'émulation de l'attaque.docs/ — Modèle de menace (Threat Model) au format Markdown et graphiques.reports/ — Rapports des résultats de l'analyse statique/dynamique.Tous les tests et recherches sont effectués dans un conteneur Docker isolé afin de ne pas mettre en danger le système hôte.
L'image installe le serveur SSH (avec le mot de passe root:screencast) et configure un environnement virtuel Python avec toutes les bibliothèques nécessaires.
docker build -t cveanalysis:20243094 .
Le conteneur est lancé en arrière-plan. Le port SSH interne (22) est redirigé vers le port 2222 de la machine hôte.
docker run -d -p 2222:22 --name cve-test cveanalysis:20243094
Pour exécuter tous les fichiers de test (test_vulnerability.py et tests_vulnerability.py), exécutez la commande depuis votre machine hôte :
docker exec -it cve-test pytest -v tests/*
Ce que les tests vérifient :
root:screencast).Si vous souhaitez tester les scripts du dossier exploit/ (ou vous connecter manuellement en SSH) depuis votre machine hôte, utilisez le port redirigé 2222 :
# Exemple de connexion manuelle
ssh [email protected] -p 2222
# Mot de passe : screencast
# Exemple d'exécution de votre script PoC (s'il nécessite un lancement externe)
python3 exploit/PoC.py 127.0.0.1
Après avoir terminé l'analyse, arrêtez et supprimez le conteneur de test :
docker stop cve-test
docker rm cve-test