~2 minutes
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”
- Introduction et enjeux
- Scénario d’attaque : du phishing à la destruction
- Modélisation des menaces : STRIDE & PASTA
- 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.
- ✓ 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.
Articles lies
Stratégies d'implémentation SLSA : Du Workflow Réutilisable au 'Do It Yourself'
Maintenant que nous avons vu comment atteindre le niveau 3 de SLSA avec GitHub Actions, une question se pose: est-ce la seule manière de faire ?
16/02/2026Atteindre SLSA Niveau 3 avec GitHub Actions et Sigstore : Le Guide Pratique
Dans mon précédent article sur SLSA, j'ai présenté le framework et ses niveaux de maturité.
15/02/2026SLSA : Mettre sa Supply Chain logicielle sous haute surveillance
On passe notre temps à scanner nos images, à durcir nos clusters Kubernetes et à chasser les vulnérabilités dans notre code.
14/02/2026Shai-Hulud : Best Practices et Protection des Pipelines (4/4)
Pour clore cette série sur le ver Shai-Hulud, ce dernier volet détaille les mesures concrètes de protection et de remédiation pour sécuriser votre ...
09/01/2026Shai-Hulud : Modélisation des Menaces STRIDE & PASTA (3/4)
Pour bien comprendre les risques posés par le ver Shai-Hulud, j'ai appliqué deux méthodologies de modélisation majeures: STRIDE et PASTA.
07/01/2026