
Quelques laboratoires examinant la vulnérabilité de porte dérobée xz (CVE-2024-3094)
Des laboratoires pratiques et sécurisés pour comprendre la porte dérobée dans la chaîne d'approvisionnement de xz-utils — conçus pour les défenseurs, les étudiants et les équipes bleues.
[!WARNING] Ce projet manipule un véritable logiciel malveillant actif dans la nature (la porte dérobée xz 5.6.0 / 5.6.1). Il est fourni strictement pour l'éducation défensive et la recherche autorisée. Tout s'exécute dans un invité isolé et jetable sans accès à Internet. N'exécutez pas ces artefacts sur une machine qui vous est précieuse, sur un réseau que vous ne contrôlez pas, ou contre un système que vous n'êtes pas autorisé à tester. Voir SECURITY.md.
| Lab | Ce qu'il fait | Exécute la charge utile ? |
|---|---|---|
| Lab 1 — Inspecter | Lance un bac à sable jetable, récupère l'archive malveillante hors ligne, et observe le déguisement : le diff build-to-host.m4 entre git et l'archive, les charges utiles des fixtures de test, le marqueur magique. | Non — inspection statique uniquement |
| Lab 2 — Détonner | Construit un réseau isolé de trois machines virtuelles (analyste / compromis / normal, sans Docker). Depuis le poste de saut de l'analyste, SSH vers les deux hôtes pour comparer latence et captures réseau, puis déclenche le sshd compromis sur compromis avec votre propre clé Ed448 (via xzbot) pour une exécution de code à distance pré-authentification en tant que root — tandis que normal reste immunisé. | Oui — machines virtuelles isolées, hors ligne, votre clé |
Une campagne d'ingénierie sociale de deux ans a conféré à un mainteneur malveillant l'autorité de publication sur xz-utils. La charge utile a été livrée uniquement dans l'archive de la version (pas dans git), cachée dans des fixtures de test, et activée à la compilation sur les systèmes x86-64 glibc. À l'exécution, elle utilisait un crochet IFUNC de glibc sur RSA_public_decrypt (accessible via sshd → libsystemd → liblzma) pour donner au détenteur de la clé une exécution de code à distance pré-authentification — une commande cachée dans le module RSA d'un certificat SSH, chiffrée en ChaCha20 et signée en Ed448. Ce n'est pas un C2 ni une connexion magique. Détecté par Andres Freund le 29 mars 2024 via un ralentissement SSH d'environ 500 ms, avant qu'il n'atteigne les distributions stables.
make setup # installation/vérifications préalables (Multipass ou Docker, tcpdump, etc.)
make lab1 # bac à sable d'inspection
make lab2 # construction du réseau isolé de 3 VM pour la détonation, puis : multipass shell analyst
make clean # tout démolir, purger les VM / captures / clés générées
Les prérequis et les guides pas à pas pour chaque laboratoire se trouvent dans docs/.
sshd compromis du Lab 2 se lie uniquement à l'interface de boucle locale / pont interne et le laboratoire refuse de s'exécuter si l'invité peut accéder à Internet.MIT.