
Attaque de la chaîne d'approvisionnement SAP NPM. Les outils de détection et de réponse hérités laissent vos portes grandes ouvertes
AccuKnox Proactive Runtime offre une sécurité Zero Trust Le 29 avril 2026, des chercheurs d'Aikido Security ont découvert que quatre packages SAP npm — @cap-js/sqlite, @cap-js/postgres, @cap-js/db-service et mbt — avaient été empoisonnés avec une charge utile qui récoltait des jetons npm, des informations d'identification GitHub, des clés SSH, des secrets AWS/Azure/GCP et des configurations Kubernetes à partir de chaque machine exécutant npm install. Non […]
Temps de lecture : 7 minutes
TL;DR
- L'attaque “Mini Shai-Hulud” a compromis quatre packages SAP npm pour voler les informations d'identification des développeurs, les secrets cloud et les jetons CI/CD via la collecte d'informations d'identification via des variables d'environnement dans le système de fichiers proc lors de l'exécution d'un script de préinstallation malveillant.
- L’ensemble de la chaîne de récolte et d’exfiltration des informations d’identification s’exécute en quelques secondes — beaucoup trop rapidement pour que les outils de détection et de réponse puissent intervenir.
- L'application de l'exécution en ligne au niveau du noyau bloque l'accès aux fichiers d'informations d'identification, l'exécution non autorisée des processus et l'exfiltration des données avant leur fin.
- La liste blanche des processus garantit que les scripts abandonnés par l'attaquant et les environnements d'exécution téléchargés (comme Bun) ne s'exécutent jamais en premier lieu.
- Les organisations qui exécutent des charges de travail sans contrôles d’exécution préventifs volent à l’aveugle face aux menaces de la chaîne d’approvisionnement qui instrumentalisent des flux de travail d’installation fiables.
AccuKnox Proactive Runtime offre une sécurité Zero Trust
Le 29 avril 2026, chercheurs d'Aikido Security j'ai découvert que quatre packages SAP npm — @cap-js/sqlite, @cap-js/postgres, @cap-js/db-service, et mbt
Surnommé “Mini Shai-Hulud” par le groupe menaçant Équipe PCP, l'attaque a chevauché celle de npm préinstaller hook pour télécharger le runtime JavaScript Bun et exécuter un voleur d'informations d'identification obscurci de 11 Mo. Les données volées ont été cryptées et exfiltrées dans des dépôts GitHub créés sous le compte de la victime — puis les jetons npm volés ont été utilisés pour empoisonner davantage de packages, transformant chaque développeur compromis en prochain vecteur d'attaque.
La plupart des outils de sécurité auraient pu observer tout cela se produire.

Le problème avec “Détecter et répondre”
La plupart des outils de sécurité des points de terminaison et de la charge de travail suivent le même manuel : observez les comportements suspects, générez une alerte, déclenchez une réponse. Tuez le processus. Mettre le fichier en quarantaine. Page le SOC.
Face à cette attaque, ce manuel s’effondre. Voici pourquoi.
Le voleur d'informations d'identification lit à partir de chemins bien connus (~/.ssh/, ~/.aws/informations d'identification, ~/.npmrc) et effectue la collecte des informations d'identification via les variables d'environnement dans le système de fichiers proc via/proc/self/environ, ciblant également les jetons de compte de service Kubernetes dans/run/secrets/kubernetes.io/serviceaccount/ — crypte les données et les envoie vers un référentiel distant. La chaîne entière se termine en quelques secondes. Au moment où un outil basé sur la détection signale l’anomalie et lance une réponse, les informations d’identification ont déjà disparu. L'attaquant possède votre jeton npm. Le ver publie des paquets empoisonnés sous votre nom.
La détection après exfiltration est une autopsie et non une défense.
Trois points d’application qui comptent réellement
L'arrêt de cette attaque nécessite des contrôles qui fonctionnent avant l'exécution se termine — pas après. Cela signifie une application au niveau du noyau, où les appels système sont interceptés et les décisions politiques sont prises en ligne, avant que l'opération ne renvoie un résultat. Voici comment Sécurité d'exécution d'AccuKnox, propulsé par Armure de Kube et appliqué via eBPF et Linux Security Modules, aborde chaque étape de la chaîne de destruction.

1. Récolte des informations d'identification : bloquée lors de l'accès aux fichiers
Le premier objectif de la charge utile est de lire les fichiers d'informations d'identification et d'effectuer la collecte d'informations d'identification via des variables d'environnement dans le système de fichiers proc. Clés SSH. Configurations du fournisseur de cloud. Jetons de compte de service Kubernetes. Jetons d'authentification npm et GitHub stockés sur le disque ou exposés dans des variables d'environnement.
AccuKnox applique politiques d'accès aux fichiers au niveau du noyau en utilisant des hooks LSM. Les politiques définissent exactement quels processus sont autorisés à lire des chemins sensibles comme :/etc/shadow, /run/secrets/kubernetes.io/serviceaccount/, ~/.ssh/, et les fichiers de configuration des informations d'identification. AccuKnox bloque également l'accès non autorisé à/proc/self/environ et aux chemins de système de fichiers proc similaires où la collecte d'informations d'identification via des variables d'environnement se produirait. Tout processus non autorisé — y compris un runtime Bun fraîchement téléchargé exécutant une charge utile JavaScript obscurcie — obtient un déni ferme au niveau SYS_OUVRIR appel système. La lecture ne se termine jamais. Les informations d’identification restent là où elles sont.
Il ne s’agit pas simplement d’une entrée de journal ; il s’agit d’une action d’application qui se produit avant que le contenu du fichier n’atteigne le code de l’attaquant.
2. Exécution de processus non autorisée : bloquée lors de l'apparition
Le mécanisme de livraison de l'attaque télécharge le runtime Bun et l'utilise pour exécuter exécution.js. Dans un environnement d’autorisation par défaut, cela fonctionne car rien n’empêche l’exécution d’un binaire inconnu.
AccuKnox politiques de liste blanche des processus retourner le modèle. Dans une charge de travail forcée, seuls les processus explicitement autorisés — le serveur d'applications, ses dépendances connues, les utilitaires système spécifiques— sont autorisés à s'exécuter. Tout le reste est nié au SYS_EXECVE appel système.
Le binaire Bun téléchargé ? Bloqué. Le configuration.mjs chargeur essayant de le faire apparaître ? Bloqué. L'ensemble de la chaîne d'exécution de l'attaquant meurt lors du premier processus non autorisé, avant qu'un seul fichier d'informations d'identification ne soit touché.
3. Atténuation préventive : pourquoi les secondes comptent
La distinction entre l’atténuation en ligne et la détection et la réponse n’est pas académique lorsque l’exfiltration se produit en quelques secondes.
AccuKnox applique des politiques au niveau de la couche noyau
La correction post-attaque (tuer un processus après son exécution) donne à l'attaquant une fenêtre pour désactiver la journalisation, crypter les données ou exfiltrer les secrets. L’atténuation en ligne ferme entièrement cette fenêtre.

Ce que cela signifie pour vos pipelines CI/CD et la sécurité de votre chaîne d'approvisionnement
- L’attaque SAP npm ciblait spécifiquement les environnements CI/CD, car c’est là que la densité d’informations d’identification est la plus élevée et que la surveillance est la plus limitée. Les exécuteurs de build contiennent des jetons npm, des informations d'identification du fournisseur de cloud, des secrets GitHub Actions et des configurations Kubernetes —, le tout en mémoire ou sur disque, le tout accessible à tout processus exécuté dans cet environnement.
- Si vos exécuteurs CI/CD fonctionnent dans Kubernetes, les politiques AccuKnox peuvent y appliquer la même posture de confiance zéro : processus de construction sur liste blanche uniquement, accès aux fichiers d'informations d'identification limité aux outils autorisés et politiques réseau qui empêchent l'exfiltration vers des points de terminaison non autorisés.
- Si vos coureurs sont des machines virtuelles ou du métal nu, KubeArmor prend en charge les environnements non Kubernetes avec le même modèle d’application eBPF et LSM.
- Le principe reste constant : exécution par défaut refusée, accès aux fichiers avec le moins de privilèges et application qui fonctionne à la vitesse du noyau.
L'essentiel
Les attaques contre la chaîne d’approvisionnement qui instrumentalisent les gestionnaires de colis de confiance ne vont pas disparaître. Le Groupe TeamPCP derrière cette campagne a frappé Bitwarden, Checkmarx et maintenant SAP
Les outils de détection vous diront ce qui s'est passé. L'application du temps d'exécution empêche que cela se produise. Lorsque l’exfiltration des informations d’identification se termine en quelques secondes, cette distinction est tout le jeu. Réservez une démo si vous souhaitez voir l'application du temps d'exécution en action.
FAQ
Qu'est-ce que l'attaque de la chaîne d'approvisionnement SAP npm (“Mini Shai-Hulud”) ?
Une attaque de la chaîne d'approvisionnement découverte en avril 2026 au cours de laquelle quatre packages npm liés à SAP ont été compromis par des scripts de préinstallation malveillants qui ont volé les informations d'identification des développeurs, les secrets du cloud et les jetons CI/CD. L'attaque a utilisé le runtime JavaScript Bun pour exécuter un voleur d'informations d'identification obscurci et s'est auto-propagée en utilisant des jetons npm volés pour compromettre des packages supplémentaires.
Pourquoi les outils de sécurité traditionnels ne peuvent-ils pas arrêter cette attaque ?
La chaîne de récolte et d'exfiltration des informations d'identification s'exécute en quelques secondes au cours d'une routine installation de npm. Les outils de détection et de réponse identifient les activités suspectes après l’exécution, mais à ce stade, les informations d’identification ont déjà été exfiltrées. La fenêtre d’opération de l’attaquant est plus courte que le cycle de détection-réponse.
En quoi l’application de l’exécution diffère-t-elle de la détection des points de terminaison ?
L'application de l'exécution (atténuation en ligne) intercepte les appels système au niveau du noyau et applique les décisions politiques avant la fin de l'opération. Si une politique bloque l’accès au fichier d’informations d’identification, la lecture du fichier n’a jamais lieu. La détection des points finaux observe le comportement, l'enregistre et déclenche une réponse après coup.
Quelles informations d’identification ont été ciblées dans cette attaque ?
Le logiciel malveillant a récolté des jetons d'authentification npm, des jetons d'accès personnel GitHub, des clés privées SSH, des informations d'identification cloud AWS/Azure/GCP et des configurations Kubernetes (kubeconfig) via l'accès aux fichiers et la récolte d'informations d'identification via des variables d'environnement dans le système de fichiers proc. Il a également extrait les secrets GitHub Actions et les variables d'environnement du pipeline CI/CD exposées dans la mémoire du processus et/proc/self/environ.
AccuKnox peut-il protéger spécifiquement les pipelines CI/CD ?
Oui. Le moteur KubeArmor d'AccuKnox applique des politiques d'exécution sur les runners CI/CD basés sur Kubernetes, les VM et les serveurs de build bare-metal. Les politiques restreignent les processus qui peuvent s'exécuter, les fichiers qui peuvent être consultés et les connexions réseau autorisées — appliquant les principes de confiance zéro aux environnements de build où la densité des identifiants est la plus élevée.
Obtenez une visite en direct
Prêt pour une évaluation de sécurité personnalisée ?
“Le choix d'AccuKnox a été motivé par l'utilisation innovante des technologies eBPF et LSM par KubeArmor open source, offrant une sécurité d'exécution”

Golan Ben-Oni
Directeur de l'information
“Chez Prudent, nous plaidons pour une méthodologie complète de bout en bout en matière de sécurité des applications et du cloud. AccuKnox a excellé dans tous les domaines lors de notre évaluation approfondie.”

Manoj Kern
DSI
“Tible s'engage à assurer une sécurité, une conformité et une gouvernance complètes pour toutes ses parties prenantes.”

Boom de Merijn
Directeur général




