SOC Prime Bias: Critique

31 Mar 2026 14:31 UTC

Attaque de la chaîne d’approvisionnement sur Axios tire une dépendance malveillante de NPM

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Suivre
Attaque de la chaîne d’approvisionnement sur Axios tire une dépendance malveillante de NPM
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

Un paquet npm malveillant, plain-crypto-js@4.2.1, a été publié et plus tard intégré en tant que dépendance transitive à travers des versions compromises du client JavaScript HTTP largement utilisé Axios. Le paquet utilise un script post-install pour livrer un cheval de Troie d’accès à distance multi-étapes ciblant Windows, macOS, et Linux. L’attaque semble avoir reposé sur des jetons npm longue durée, permettant aux acteurs malveillants de pousser des versions malveillantes en dehors du flux de publication habituel du projet. Détecter la dépendance altérée tôt peut stopper le RAT avant son exécution sur les systèmes affectés.

Enquête

Socket Research a effectué une analyse statique de setup.js dropper et a déobfusqué des chaînes de caractères encodées pour exposer le domaine C2, la logique de livraison des charges utiles, et les chemins du système de fichiers ciblés. Les chercheurs ont identifié trois versions compromises d’Axios et deux paquets npm supplémentaires contenant le même code malveillant. Ils ont également extrait des indicateurs réseau, des chemins de fichiers, et des chaînes d’agents utilisateurs pouvant être utilisés pour l’ingénierie de détection et la création de règles.

Atténuation

Les organisations devraient révoquer tous les jetons npm longue durée et pivoter les identifiants pour tous les comptes potentiellement affectés. Les versions compromises d’Axios et tous les paquets qui en dépendent plain-crypto-js@4.2.1 devraient être supprimés ou rétrogradés immédiatement. Les équipes devraient aussi examiner les fichiers de verrouillage, les pipelines CI/CD, et les contrôles de sécurité de la chaîne d’approvisionnement logicielle pour identifier une activité de publication non autorisée et réduire la possibilité de compromission de paquets à l’avenir.

Réponse

Les équipes de sécurité devraient surveiller les journaux d’installation npm pour les références à plain-crypto-js@4.2.1 et les versions affectées d’Axios. Des règles de détection devraient être créées pour l’exécution du hook postinstall, l’accès réseau à sfrclak.com, et la chaîne d’agent utilisateur malveillant. Si une compromission est confirmée, les systèmes affectés devraient être mis en quarantaine, la mémoire volatile collectée pour analyse, et l’hôte réimaginé si le RAT est trouvé.

Flux d’Attaque

Détections

MacOS Suspects – Emplacements et Noms Plist (via file_event)

Équipe SOC Prime
31 Mar 2026

Processus Enfant NodeJS Suspects [Windows] (via cmdline)

Équipe SOC Prime
31 Mar 2026

Téléversement / Téléchargement de Fichiers à Distance via Outils Standards (via cmdline)

Équipe SOC Prime
31 Mar 2026

Modification Suspecte des Permissions de Fichier du Dossier Tmp MacOS (via cmdline)

Équipe SOC Prime
31 Mar 2026

Utilisation Suspecte de CURL (via cmdline)

Équipe SOC Prime
31 Mar 2026

Exécution Possible par l’Utilisation de chmod et nohup dans une Commande Unique (via cmdline)

Équipe SOC Prime
31 Mar 2026

Téléchargements dans des Dossiers Suspects (via cmdline)

Équipe SOC Prime
31 Mar 2026

LOLBAS WScript / CScript (via process_creation)

Équipe SOC Prime
31 Mar 2026

Possibilité d’Exécution par l’Utilisation de Lignes de Commande PowerShell Cachées (via cmdline)

Équipe SOC Prime
31 Mar 2026

Utilisation de Nohup (via cmdline)

Équipe SOC Prime
31 Mar 2026

IOCs (Adresse Source IP) pour détecter : Attaque sur la Chaîne d’Approvisionnement Axios Tire une Dépendance Malveillante de npm

Règles AI de SOC Prime
31 Mar 2026

IOCs (Adresse Destination IP) pour détecter : Attaque sur la Chaîne d’Approvisionnement Axios Tire une Dépendance Malveillante de npm

Règles AI de SOC Prime
31 Mar 2026

IOCs (E-mails) pour détecter : Attaque sur la Chaîne d’Approvisionnement Axios Tire une Dépendance Malveillante de npm

Règles AI de SOC Prime
31 Mar 2026

Stratégies d’Évasion PowerShell et VBScript dans les Attaques de Chaîne d’Approvisionnement [Création de Processus Windows]

Règles AI de SOC Prime
31 Mar 2026

Détection de l’Exécution du Hook Postinstall de Paquet npm Malveillant [Création de Processus Linux]

Règles AI de SOC Prime
31 Mar 2026

Détection de Scripts Python Malveillants et de Fichiers Temporaires dans les Attaques de Chaîne d’Approvisionnement Linux [Événement de Fichier Linux]

Règles AI de SOC Prime
31 Mar 2026

Terminal Windows Renommé et VBScript Auto-Supprimé Détecté [Événement de Fichier Windows]

Règles AI de SOC Prime
31 Mar 2026

Exécution de Script PowerShell avec Drapeaux Cachés et Bypass [Powershell Windows]

Règles AI de SOC Prime
31 Mar 2026

Exécution de Simulation

Prérequis : La vérification pré-vol de Télémétrie & Base de Référence doit avoir 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 la télémétrie exacte attendue par la logique de détection.

  • Récit et Commandes d’Attaque :

    Un attaquant ayant acquis des privilèges utilisateur limités sur une station de travail compromise souhaite télécharger une charge utile VBScript malveillante via un paquet npm légitime (scénario de chaîne d’approvisionnement). Pour éviter la détection générique PowerShell, l’attaquant copie powershell.exe vers un nouveau fichier nommé powershell_renamed.exe mais garde la sous-chaîne “powershell” dans le nom de fichier (ainsi le Image|contains vérification correspond toujours). L’attaquant exécute ensuite une recherche “where powershell” pour recenser le chemin du binaire renommé et enfin lance la charge utile VBScript avec cscript //nologo pour supprimer la bannière du logo.

  • Script de Test de Régression :

    # -------------------------------------------------
    # Étape 1 : Créer une copie renommée de powershell.exe
    # -------------------------------------------------
    $src = "$env:SystemRootSystem32WindowsPowerShellv1.0powershell.exe"
    $dst = "$env:Temppowershell_renamed.exe"
    Copy-Item -Path $src -Destination $dst -Force
    
    # -------------------------------------------------
    # Étape 2 : Utiliser 'where' pour référencer le binaire renommé
    # -------------------------------------------------
    $whereOutput = & where.exe powershell_renamed
    Write-Host "PowerShell renommé localisé à : $whereOutput"
    
    # -------------------------------------------------
    # Étape 3 : Créer une simple charge utile VBScript malveillante
    # -------------------------------------------------
    $vbsPath = "$env:Tempmalicious.vbs"
    @"
    Set objShell = CreateObject("WScript.Shell")
    objShell.Run "cmd.exe /c echo pwned > $env:Temppwned.txt", 0, False
    "@ | Set-Content -Path $vbsPath -Encoding ASCII
    
    # -------------------------------------------------
    # Étape 4 : Exécuter le VBScript silencieusement en utilisant cscript //nologo
    # -------------------------------------------------
    & $dst -Command "cscript //nologo `"$vbsPath`""
    # -------------------------------------------------
    # Fin de la simulation
    # -------------------------------------------------
  • Commandes de Nettoyage :

    # Supprimer le binaire PowerShell renommé
    Remove-Item -Path "$env:Temppowershell_renamed.exe" -Force -ErrorAction SilentlyContinue
    
    # Supprimer le fichier VBScript malveillant
    Remove-Item -Path "$env:Tempmalicious.vbs" -Force -ErrorAction SilentlyContinue
    
    # Supprimer les preuves d'exécution
    Remove-Item -Path "$env:Temppwned.txt" -Force -ErrorAction SilentlyContinue