Source: Trend Micro (blog de recherche Trend Vision One). Contexte: poursuite de l’enquête sur l’attaque supply chain NPM du 15 septembre et nouveaux incidents signalés le 24 novembre avec des centaines de dépôts mentionnant Sha1‑Hulud: The Second Coming.
L’analyse décrit un malware Shai‑hulud 2.0 ciblant les écosystèmes cloud et développeurs. Il vole des identifiants et secrets de AWS, GCP, Azure, ainsi que des tokens NPM et jetons GitHub, et exploite les services de gestion de secrets (AWS Secrets Manager, GCP Secret Manager, Azure Key Vault). Il met en place un C2 via GitHub Actions (création d’un dépôt contrôlé par l’attaquant sous le compte de la victime, déploiement d’un runner auto‑hébergé nommé SHA1HULUD, workflows de commande), et inclut un mécanisme destructif effaçant les données si le vol d’identifiants échoue. ☁️🪱
Chaîne d’attaque: le code malveillant est livré via un preinstall NPM qui installe/emploie le runtime Bun (setup_bun.js) puis exécute le payload principal (bun_environment.js). Il détecte CI/CD (GitHub Actions, AWS CodeBuild, CircleCI, Buildkite, GCP Cloud Build) ou s’exécute en arrière‑plan sur postes dev (POSTINSTALL_BG=1). Il tente l’élévation de privilèges (sudo sans mot de passe ou via Docker), désactive des contrôles (systemd‑resolved, vidage iptables/DOCKER‑USER), et collecte des métadonnées système. Les données exfiltrées sont organisées en fichiers JSON (contents.json, environment.json, cloud.json, truffleSecrets.json) vers le dépôt GitHub C2 créé par le malware.
Propagation supply chain: Shai‑hulud 2.0 backdoorise automatiquement tous les packages NPM du mainteneur compromis, jusqu’à 100 en parallèle, en injectant un preinstall malveillant et en republiant avec un bump de version (patch) pour paraître légitime. Il énumère les packages du mainteneur (priorisés par téléchargements), télécharge les tarballs, modifie package.json (preinstall), emballe setup_bun.js et bun_environment.js, puis publie via le token NPM volé. 🧩
TTPs observés:
- Livraison via package NPM (preinstall) et installation furtive du runtime Bun; exécution détachée en environnement développeur
- Détection CI/CD et exécution immédiate pour maximiser l’accès aux credentials
- Vol d’identifiants multi‑cloud (env vars, fichiers de config ~/.aws, ADC GCP, Azure SPN, Workload Identity, Pod Identity/IMDS; ECS/EKS task creds) et exploitation active de AWS Secrets Manager, GCP Secret Manager, Azure Key Vault
- Abus de GitHub Actions pour C2: création d’un dépôt public minimal, obtention d’un token d’enregistrement de runner, déploiement d’un runner auto‑hébergé (nom SHA1HULUD), workflow discussion.yaml pour exécuter des commandes, workflow de vol de secrets (toJSON des secrets, artefacts Actions)
- Escalade de privilèges (sudo, montage via Docker), désactivation des défenses (DNS systemd‑resolved, iptables OUTPUT/DOCKER‑USER), effacement destructif si aucun token valide
- TruffleHog utilisé pour scanner les répertoires locaux et extraire des secrets supplémentaires
Indicateurs et artefacts mentionnés (extraits de l’analyse):
- Fichiers/charges: setup_bun.js, bun_environment.js; modification package.json (preinstall)
- Runner GitHub auto‑hébergé: SHA1HULUD; workflow .github/workflows/discussion.yaml; branche temporaire add-linter-workflow‑{timestamp}
- Exfiltration via artefact formatting (ZIP contenant format.json) et fichiers de sortie contents.json, environment.json, cloud.json, truffleSecrets.json
- Indices de campagne: description de dépôt GitHub Sha1‑Hulud: The Second Coming; exigence de scope OAuth workflow pour manipuler Actions
Type et but de l’article: analyse de menace détaillée visant à documenter les capacités, l’enchaînement d’attaque et les artefacts de Shai‑hulud 2.0.
🧠 TTPs et IOCs détectés
TTP
[‘Livraison via package NPM (preinstall) et installation furtive du runtime Bun’, ‘Exécution détachée en environnement développeur’, ‘Détection CI/CD et exécution immédiate pour maximiser l’accès aux credentials’, ‘Vol d’identifiants multi-cloud et exploitation active de AWS Secrets Manager, GCP Secret Manager, Azure Key Vault’, ‘Abus de GitHub Actions pour C2: création d’un dépôt public minimal, obtention d’un token d’enregistrement de runner, déploiement d’un runner auto-hébergé, workflow pour exécuter des commandes’, ‘Escalade de privilèges (sudo, montage via Docker)’, ‘Désactivation des défenses (DNS systemd-resolved, iptables OUTPUT/DOCKER-USER)’, ‘Effacement destructif si aucun token valide’, ‘Utilisation de TruffleHog pour scanner les répertoires locaux et extraire des secrets supplémentaires’, ‘Propagation supply chain: backdoorisation automatique des packages NPM du mainteneur compromis’]
IOC
[‘Fichiers/charges: setup_bun.js, bun_environment.js’, ‘Modification package.json (preinstall)’, ‘Runner GitHub auto-hébergé: SHA1HULUD’, ‘Workflow .github/workflows/discussion.yaml’, ‘Branche temporaire add-linter-workflow-{timestamp}’, ‘Exfiltration via artefact formatting (ZIP contenant format.json)’, ‘Fichiers de sortie: contents.json, environment.json, cloud.json, truffleSecrets.json’, ‘Description de dépôt GitHub: Sha1-Hulud: The Second Coming’]
🔗 Source originale : https://www.trendmicro.com/en_us/research/25/k/shai-hulud-2-0-targets-cloud-and-developer-systems.html