SOC Prime Bias: Critical

27 Oct 2026 13:41 UTC

42 Référentiels GitHub Armes Révèlent un Éditeur npm Caché

Author Photo
SOC Prime Team linkedin icon Suivre
42 Référentiels GitHub Armes Révèlent un Éditeur npm Caché
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

Une campagne sophistiquée suivie sous le nom de testmetest utilise des packages npm malveillants et des dépôts GitHub compromis pour voler des identifiants et automatiser des publications de packages malveillants. Les attaquants s’appuient sur des wrappers polymorphes, des addons Node.js natifs et des charges utiles chiffrées pour échapper à la détection. La campagne implique également une infrastructure utilisée pour scanner et exploiter des vulnérabilités de cPanel.

Investigation

Les chercheurs en sécurité de JFrog ont identifié 42 dépôts GitHub armés ainsi que plusieurs packages npm malveillants. Ils ont découvert que les attaquants utilisaient une technique de camouflage d’addon natif dans laquelle un .node compilé déchiffre une charge utile dissimulée à l’exécution. L’enquête a également lié l’activité à des scanners shellpanel ciblant les systèmes cPanel via CVE-2026-41940.

Atténuation

Les utilisateurs doivent supprimer les packages npm malveillants identifiés et reconstruire les systèmes affectés à partir de sources fiables. Les organisations doivent tourner tous les identifiants potentiellement compromis, y compris GitHub, npm et les tokens cloud. Il est également essentiel d’auditer les dépôts pour détecter les fichiers de configuration non autorisés tels que .github/init.js et les hooks d’exécution inattendus dans les fichiers package.json ou Makefiles.

Réponse

Lorsque une activité malveillante est détectée, révoquer immédiatement les secrets exposés et tourner les identifiants. Rechercher les mécanismes de persistance tels que net-health-checker or pkg-runtime. Examiner les journaux des actions GitHub pour les workflows non autorisés et surveiller les systèmes pour les charges utiles déchiffrées écrites dans les répertoires temporaires.

Flux d’attaque

Nous mettons encore à jour cette partie.

Détections

Fichier caché créé sur l’hôte Linux (via file_event)

Équipe SOC Prime
26 oct. 2026

Processus enfant NodeJS suspect [Windows] (via cmdline)

Équipe SOC Prime
26 oct. 2026

Téléchargement de fichiers GitHub possible initié par un processus inhabituel (via network_connection)

Équipe SOC Prime
26 oct. 2026

Utilisation de Nohup (via cmdline)

Équipe SOC Prime
26 oct. 2026

Processus enfant NodeJS suspect [Linux] (via cmdline)

Équipe SOC Prime
26 oct. 2026

Exécution chmod suspecte pointant vers des répertoires suspects (via cmdline)

Équipe SOC Prime
26 oct. 2026

Téléchargements vers des dossiers suspects (via cmdline)

Équipe SOC Prime
26 oct. 2026

IOCs (HashSha256) à détecter : Beyond testmetest : Camouflage Addon natif et 42 dépôts GitHub armés révèlent un éditeur npm caché

Règles AI de SOC Prime
26 oct. 2026

IOCs (SourceIP) à détecter : Beyond testmetest : Camouflage Addon natif et 42 dépôts GitHub armés révèlent un éditeur npm caché

Règles AI de SOC Prime
26 oct. 2026

IOCs (DestinationIP) à détecter : Beyond testmetest : Camouflage Addon natif et 42 dépôts GitHub armés révèlent un éditeur npm caché

Règles AI de SOC Prime
26 oct. 2026

Vérification de la présence d’un débogueur via IsDebuggerPresent ou CheckRemoteDebuggerPresent [Journal des événements de sécurité Windows]

Règles AI de SOC Prime
26 oct. 2026

Création de processus suspecte et exécution temporaire de fichiers JS [Création de processus Windows]

Règles AI de SOC Prime
26 oct. 2026

Détection de l’exécution des Addons natifs Node.js [Chargement de l’image Windows]

Règles AI de SOC Prime
26 oct. 2026

Exécution détectée de processus d’addon Node malveillants [Création de processus Linux]

Règles AI de SOC Prime
26 oct. 2026

Lectures suspectes de mappes de mémoire d’addons natifs [Plateforme Google Cloud]

Règles AI de SOC Prime
26 oct. 2026

Exécution de la simulation

  • Narrative d’attaque & Commandes : L’adversaire a réussi à déposer une charge utile JavaScript malveillante dans le répertoire temporaire de l’utilisateur, la nommant .nc pour potentiellement imiter un fichier lié à Netcat ou simplement pour obfusquer son but. Pour exécuter cela, l’adversaire utilise un chargeur qui invoque l’API CreateProcessA Win32 pour lancer l’Hôte de Script Windows (wscript.exe) avec le fichier temporaire comme argument. Cette séquence spécifique—utilisant la version ANSI de l’API de création de processus pour exécuter un script depuis %TEMP%—est le modèle exact que la règle de détection est conçue pour intercepter.

  • Script de test de régression :

     # Script de simulation : déclenchement de la 'Création de processus suspecte et exécution temporaire de fichiers JS'
    
      # 1. Définir les chemins
      $tempPath = $env:TEMP
      $targetFile = Join-Path $tempPath ".nc"
    
      # 2. Créer un fichier JS malveillant factice dans le répertoire %TEMP%
      # Remarque : Nous le nommons .nc selon les exigences de la logique de détection
      "WScript.Echo('Activité malveillante simulée ');" | Out-File -FilePath $targetFile -Encoding ascii
    
      Write-Host "[+] Fichier malveillant créé à : $targetFile"
    
      # 3. Simuler l'exécution via wscript.exe
      # Dans un scénario réel, le 'CallTrace' contenant 'CreateProcessA' est généré 
      # par l'appel d'API Windows sous-jacent utilisé par le chargeur de malware.
      # Exécuter cela via PowerShell/CMD générera l'événement de création de processus.
      Write-Host "[+] Commande de simulation envoyée."
    
    
  • Commandes de nettoyage :

     # Script de nettoyage : supprimer les artefacts de simulation
      $tempPath = $env:TEMP
      $targetFile = Join-Path $tempPath ".nc"
    
      if (Test-Path $targetFile) {
          Remove-Item -Path $targetFile -Force
          Write-Host "[+] Nettoyage réussi : $targetFile retiré."
      } else {
          Write-Host "[!] Échec du nettoyage : Fichier non trouvé."
      }