Security musings

Catégories

Tags

🔍 Licence d'Utilisation 🔍

Sauf mention contraire, le contenu de ce blog est sous licence CC BY-NC-ND 4.0.

© 2025 à 2042 Sébastien Gioria. Tous droits réservés.

Dans ce second volet de notre série, j’analyse le cycle de vie du ver Shai-Hulud, de l’infiltration initiale à la possible destruction des données de la victime.

📢 Dans cette série : “L’anatomie du ver Shai-Hulud”

  1. Introduction et enjeux
  2. Scénario d’attaque : du phishing à la destruction
  3. Modélisation des menaces : STRIDE & PASTA
  4. Best Practices et remédiation

Phase 0 : Compromission Initiale (Phishing MFA)

L’attaque débute par une campagne de phishing ciblant les développeurs npm. Les victimes reçoivent des emails frauduleux les invitant à “mettre à jour” leurs options d’authentification multi-facteurs (MFA) sur npm. Une fois les credentials volés, l’attaquant déploie le payload initial.

Note : Unit 42 estime avec une confiance modérée que le script bash malveillant a été généré à l’aide d’un LLM.

Shai-Hulud 1.0 vs 2.0 : L’escalade technique

La version 2.0 introduit des changements majeurs qui en font une menace bien plus dangereuse.

Différences Critiques

🛠️ Aspect 🛡️ Shai-Hulud 1.0 🦖 Shai-Hulud 2.0
Vecteur d’exécution postinstall (après installation) preinstall (avant installation)
Zone d’impact Nécessite l’installation complète 💀 Exécution garantie sur tous serveurs CI/CD
Contournement Détectable par scan statique 👻 Bypass complet des outils de scan
Payloads Scripts génériques setup_bun.js + bun_environment.js (>10 MB)
Exfiltration Dépôt “Shai-Hulud” 🔱 Dépôt “Sha1-Hulud: The Second Coming
Persistance Aucune 🔄 GitHub Actions workflow (discussion.yaml)
Mode Sabotage Aucun 🔥 Destruction du répertoire home (fallback)

Le Mécanisme Destructif (Nouveau)

Si le malware échoue à voler des credentials ou à s’authentifier sur GitHub, il passe en mode sabotage : écrasement sécurisé et suppression de tous les fichiers accessibles dans le répertoire home de l’utilisateur. Cette tactique transforme une attaque d’espionnage en déni de service massif.

Persistance via GitHub Actions

Le malware crée un workflow .github/workflows/discussion.yaml qui enregistre la machine infectée comme self-hosted runner GitHub, permettant à l’attaquant d’exécuter des commandes arbitraires via les discussions GitHub.

À retenir 📌

  • Vecteur initial : Phishing ciblant le MFA des développeurs npm pour voler les credentials.
  • Évolution critique : Passage de postinstall à preinstall, garantissant l'exécution même en CI/CD.
  • Persistance : Utilisation de GitHub Actions (discussion.yaml) pour transformer la machine en runner self-hosted.
  • Mode Sabotage : Destruction des données (wipe) du répertoire home en cas d'échec de l'exfiltration.

Dans le prochain article, nous appliquerons les modèles STRIDE et PASTA pour quantifier ces risques.