Prendre rendez-vous

Slopsquatting et agents de codage : sécuriser la chaîne d’approvisionnement logicielle IA

Les modèles d’IA suggèrent des paquets qui n’existent pas — et des attaquants peuvent enregistrer précisément ces noms. Les agents de codage dotés d’un accès au terminal installent ce qu’ils jugent bon. Ce dossier relie typosquatting et slopsquatting dans npm et PyPI à un modèle de sécurité pour les agents de codage et leur harness : chaîne d’attaque, cinq couches de protection, obligations au titre du CRA, de NIS2 et de DORA, autoévaluation et livre blanc CISO (en allemand).

Mise à jour: octobre 2026 · Valeri Milke, Lead Auditor ISO 27001 & ISO 42001

Vous recevez le lien de téléchargement immédiatement sur la page et par e-mail.

agent · ~/portail-clients — dependency gate actif

PromptTéléchargez le modèle depuis Hugging Face en ligne de commande.

AgentPour cela, j’installe le paquet CLI adéquat :

pip install huggingface-cli

Dependency gate · Politique
  • Doc. de l’éditeurInstallation officielle : huggingface_hub[cli] — le nom diffère
  • ConnuNom halluciné à plusieurs reprises — expérience de Bar Lanyado (Lasso Security)
  • Liste d’autorisationNon autorisé

BLOQUÉ · Écart par rapport à la doc. de l’éditeur — ticket d’approbation transmis à l’AppSec

Reconstitué d’après l’expérience documentée de Bar Lanyado (Lasso Security, 2024).

  • 19,7 % de références de paquets inventées par 16 modèles de code
  • 30 000+ téléchargements d’un paquet factice vide (selon Lasso)
  • 237+ dépôts contenant une commande npx hallucinée
19,7 %des références de paquets de 16 modèles de code étaient inventées — 440 445 sur 2,23 millions (USENIX Security 2025)
43 %des noms inventés revenaient à chacune de dix répétitions — prévisible signifie enregistrable
24 CVEdans des IDE IA et des agents de codage, issues d’une seule série de recherches (IDEsaster, décembre 2025)
11/09/2026Depuis cette date, les obligations de signalement du CRA s’appliquent — la diligence pour les composants incombe au fabricant intégrateur

En juin 2024, des chercheurs réunis autour de Joseph Spracklen (University of Texas at San Antonio) ont montré que 16 modèles de code avaient inventé, dans 576 000 exemples de code, 19,7 % de leurs références de paquets — 205 474 noms uniques qui n’existaient ni dans npm ni dans PyPI. 43 % d’entre eux réapparaissaient à chacune de dix répétitions. Qui enregistre de tels noms n’a plus besoin de fautes de frappe : depuis 2025, cela s’appelle le slopsquatting. Parallèlement, le paysage des outils a basculé — de l’assistant qui suggère à l’agent qui installe dans le terminal, appelle des serveurs MCP et charge des skills. HiddenLayer considère donc le harness, et non le modèle, comme la véritable surface d’attaque et organise la défense en cinq couches : visibilité, contrôle, validation, surveillance et gouvernance. ThreatLocker complète le volet paquets : vérifier les noms, piloter les dépendances au moyen de listes d’autorisation, désactiver les scripts d’installation, tenir les secrets à l’écart des chemins de build, Zero Trust à l’exécution. Un test pratique d’octobre 2026 le montre : les outils actuels inventent encore des paquets — rarement, mais de manière reproductible. Cette page en fait un programme : la chaîne d’attaque montre où vos contrôles agissent. La carte du harness situe dix relations de confiance d’un agent de codage, avec des cas documentés. La vérification du nom de paquet contrôle les suggestions localement dans le navigateur. La matrice des obligations établit la correspondance avec le CRA, NIS2, DORA, l’AI Act et la responsabilité du fait des produits. L’autoévaluation mesure votre niveau de maturité — et le livre blanc CISO fournit feuille de route, configuration de référence, modèle de politique et catalogue d’audit.

De la faute de frappe au paquet inventé

Jalons du typosquatting, des hallucinations de paquets et des attaques contre les agents de codage — jusqu’aux obligations qui s’appliquent aujourd’hui.

Neuf messages clés sur le slopsquatting et les agents de codage

Résumé de chaque message clé — dépliez pour les détails, chiffres et sources.

Interactif · Chaîne d’attaque

Où votre chaîne se rompt-elle ? Sept étapes, du nom de paquet inventé à la propagation

Une attaque par slopsquatting ou par typosquatting a besoin de chacune des étapes. Activez des contrôles et observez à quelle étape l’attaque s’arrête — et si vous ne disposez que d’un seul point de rupture ou d’une défense en profondeur. L’affectation des contrôles aux étapes est une appréciation de VamiSec fondée sur les sources citées.

Situation de départ
Obstacles seulementDes obstacles, oui ; un point de rupture, non

Vos contrôles compliquent certaines étapes, mais n’arrêtent pas l’attaque de manière sûre. La revue, les scans et les règles dans le prompt supposent qu’un humain ou un modèle remarque l’erreur.

Points de rupture
0 / 7
Premier point de rupture
—
Étapes avec obstacles seulement
3
Contrôles actifs
3 / 16
Activer des contrôles
Visibilité
Contrôle
Validation
Surveillance
Gouvernance

interrompt l’étape complique l’étape

Étape 01 / 07

Un modèle suggère un nom de paquet qui n’existe pas — ou un humain fait une faute de frappe

Les modèles de code ajoutent des dépendances qui semblent plausibles mais n’ont jamais été publiées. Le typosquatting, lui, mise sur les fautes de frappe et les confusions avec des noms connus. Dans les deux cas, tout commence avant même qu’un gestionnaire de paquets ne s’exécute.

PreuveDans l’étude de Spracklen et al. (USENIX Security 2025), 19,7 % des paquets suggérés par 16 modèles de code n’existaient pas.

Ce qui agit à cette étape — un clic active ou désactive
  • Les instructions dans AGENTS.md ou dans des fichiers de règles réduisent le taux d’erreur, mais ne constituent pas un contrôle : le modèle peut les ignorer, et des attaquants peuvent les manipuler.

    Guide OpenSSF pour les assistants de code (août 2025)
  • Mesure à quelle fréquence vos outils inventent des paquets ou suggèrent des commandes dangereuses dans votre stack — et si vos contrôles fonctionnent.

    HiddenLayer · Validation

Modèle simplifié. Les attaques réelles sautent des étapes : si un paquet légitime est compromis, comme chalk et debug en 2025, la chaîne commence à l’étape 4 — seuls les contrôles à partir de cette étape agissent alors.

Interactif · Carte du harness

Le harness est la surface d’attaque : dix composants auxquels un agent de codage fait confiance

Un agent de codage est plus qu’un modèle. Fichiers de règles, entrées, terminal, serveurs MCP, skills, gestionnaires de paquets, secrets, dépôt, réseau et fournisseur du modèle forment son harness — et chacun de ces composants est une relation de confiance qu’un attaquant peut exploiter. Choisissez un composant ou un chemin d’attaque documenté.

Chemin d’attaque

Fichiers de règles, fichiers de contexte et prompt système

AGENTS.md, CLAUDE.md, .cursor/rules, copilot-instructions.md, documentation du projet et tout ce qui aboutit dans la fenêtre de contexte.

ASI01ASI06LLM01
Menaces et cas documentés
  • Rules File Backdoor

    Des caractères Unicode invisibles (zero-width joiner, marqueurs bidi) cachent des instructions dans les fichiers de règles de Cursor et de GitHub Copilot. Les humains ne les voient pas lors de la revue, le modèle les suit — d’une session à l’autre et aussi dans les forks.

    Pillar Security, 18 mars 2025 — classé par Cursor et GitHub comme relevant de la responsabilité de l’utilisateur, pas de CVE
  • CopyPasta

    Une injection de prompt déguisée en mention de licence, placée dans un commentaire Markdown caché d’un README, amène l’agent à copier la charge utile dans chaque fichier qu’il modifie — l’injection se propage d’elle-même d’une base de code à l’autre.

    HiddenLayer, 4 septembre 2025 — démontré sur Cursor, également sur Windsurf, Kiro et Aider
Contrôles par couche
  • ValidationTraiter les fichiers de règles et de contexte comme du code : revue, CODEOWNERS, détection automatique des caractères invisibles.
  • ContrôleConsidérer le contenu du dépôt comme une entrée non fiable — ne pas laisser exécuter d’instructions provenant de commentaires ou de fichiers.
  • SurveillanceDéclencher une alerte en cas de modification des configurations d’agents et des fichiers de règles.

Les cas assortis d’un numéro CVE sont corrigés ; les versions correctives sont indiquées dans l’avis de sécurité correspondant. Les scores CVSS sont indiqués avec leur version (3.1 ou 4.0) et ne sont pas directement comparables. L’affectation des contrôles aux cinq couches suit le modèle de HiddenLayer (28 juillet 2026) et constitue une appréciation de VamiSec.

Interactif · Vérification du nom de paquet

Nom de paquet plausible ou piège ? Vérifiez une suggestion

Saisissez un nom de paquet qui vous a été suggéré par un assistant, un agent ou un README. La vérification compare localement avec des paquets npm et PyPI répandus, détecte les schémas typiques de typosquatting et de combosquatting et signale les noms fantaisistes à consonance plausible. Seul le registre peut montrer si un nom est inventé — la vérification fournit les commandes de contrôle adéquates.

Exemples

La vérification s’exécute entièrement dans votre navigateur : rien n’est envoyé ni enregistré, et aucune requête n’est adressée à npm ou à PyPI.

Aucun nom saisi pour l’instant

Saisissez un nom de paquet — par exemple issu d’une suggestion d’IA, d’un README ou d’un journal d’agent.

La vérification en 5 minutes avant chaque nouvelle dépendance
  1. Comparer avec la documentation de l’éditeurNon pas avec la réponse de l’IA, mais avec la documentation ou le dépôt du projet. Le nom correspond-il exactement ?
  2. Âge, mainteneurs, téléchargementsCréé récemment, peu de téléchargements, changement de mainteneur peu avant la release : s’arrêter et se renseigner.
  3. Examiner les scripts d’installationpreinstall, postinstall ou du code de build qui télécharge du contenu supplémentaire ou ouvre des connexions : c’est un signal d’alerte.
  4. Dépôt et provenanceUn dépôt est-il lié, le code correspond-il à la description, existe-t-il une provenance de build ?
  5. Approuver et épinglerN’intégrer que via la liste d’autorisation, épingler la version, vérifier le diff du lockfile dans la pull request.
Interactif · Matrice des obligations

Quelle règle s’applique où ? Huit domaines de contrôle, cinq textes réglementaires plus des guides

Il n’existe pas de loi spécifique pour les dépendances suggérées par l’IA et les agents de codage — mais le CRA, NIS2 avec le BSIG, DORA, l’AI Act et la responsabilité du fait des produits s’appliquent à des endroits précis. Choisissez votre rôle pour mettre en évidence les textes pertinents, et une cellule pour afficher la référence et l’appréciation. Seul le texte juridique fait foi ; les guides constituent une orientation non contraignante sur l’état de l’art.

Votre rôle
Domaine de contrôle × texteCRAart. 14 depuis le 11 septembre 2026, art. 13 et annexe I à partir du 11 décembre 20275NIS2 / BSIGapplicable8DORAapplicable depuis le 17 janvier 20257AI Actapplicable par étapes à partir de 20252Responsabilité produitspour les produits mis sur le marché après le 9 décembre 2026 ; via le droit national1GuidesOrientation7
Sélection et provenance des composants——
Inventaire et SBOM——
Développement sécurisé et tests, y compris pour le code IA——
Modifications et approbations———
Intégrité et protection contre les logiciels malveillants———
Vulnérabilités des composants et signalement——
Responsabilité de la direction et compétences——
Classification, responsabilité et sanctions——

Choisissez une cellule pour voir la référence et l’appréciation. Le filtre par rôle masque les textes qui ne sont pas pertinents pour votre profil.

Cyber Resilience Act, règlement (UE) 2024/2847art. 14 depuis le 11 septembre 2026, art. 13 et annexe I à partir du 11 décembre 2027

  • Sélection et provenance des composantsart. 13(5)

    Lorsqu’ils intègrent des composants de tiers, les fabricants doivent faire preuve de la diligence requise — expressément aussi pour les logiciels libres et open source ; l’étendue de cette diligence dépend du risque (considérant 34). L’obligation s’applique à partir du 11 décembre 2027. Selon les lignes directrices non contraignantes de la Commission C(2026) 5252 (exemple 34), ni les dépôts de paquets ni les développeurs individuels n’ont d’obligations au titre du CRA — la diligence incombe au fabricant intégrateur.

  • Inventaire et SBOMannexe I, partie II, point 1

    Identifier et documenter les composants, notamment au moyen d’une SBOM dans un format courant et lisible par machine, couvrant au minimum les dépendances de premier niveau. Le CRA n’impose actuellement aucun format ; la page de mise en œuvre de la Commission ne mentionne aucun acte d’exécution au titre de l’art. 13, par. 24 (disposition facultative) (état au 27 juillet 2026). S’applique à partir du 11 décembre 2027.

  • Développement sécurisé et tests, y compris pour le code IAannexe I, partie I, point 2 a), b), j) · partie II, point 3

    Sur la base de l’évaluation des risques et lorsque cela est applicable : mettre à disposition des produits sans vulnérabilités exploitables connues, avec une configuration sécurisée par défaut, limiter la surface d’attaque et tester la sécurité de manière efficace et régulière. S’applique à partir du 11 décembre 2027.

  • Vulnérabilités des composants et signalementart. 13(6) · art. 14

    À partir du 11 décembre 2027 : signaler les vulnérabilités des composants intégrés à leur fabricant ou à leur mainteneur (art. 13, par. 6). Depuis le 11 septembre 2026 : signaler simultanément les vulnérabilités activement exploitées au CSIRT coordinateur et à l’ENISA via la plateforme unique de signalement : alerte précoce sous 24 heures, notification sous 72 heures, rapport final au plus tard 14 jours après la mise à disposition d’une mesure corrective.

  • Classification, responsabilité et sanctionsart. 64(2) et (10)

    Les infractions à l’annexe I, à l’art. 13 et à l’art. 14 sont passibles d’amendes allant jusqu’à 15 millions d’euros ou 2,5 % du chiffre d’affaires annuel mondial, le montant le plus élevé étant retenu. Pas d’amendes à l’encontre des stewards de logiciels open source ; les micro et petites entreprises en sont exemptées en cas de non-respect du délai d’alerte précoce de 24 heures.

  • Obligation contraignante
  • Contraignant pour certains destinataires ou indirect
  • Guide, non contraignant

État au 8 octobre 2026. L’affectation aux domaines de contrôle est une appréciation de VamiSec et ne constitue pas un conseil juridique. Les citations d’actes juridiques de l’UE reposent sur les versions originales anglaises ; les lignes directrices de la Commission et les documents de l’ENISA, du BSI et de l’OWASP ne sont pas contraignants.

Texte intégral

Slopsquatting et agents de codage en détail : 13 chapitres, de l’état des lieux au plan à 90 jours

Les chapitres mènent de la situation actuelle à la mécanique des attaques, aux cinq couches de protection, à l’hygiène des dépendances, aux obligations découlant du CRA, de NIS2, de DORA et de l’AI Act, puis au plan de mise en œuvre. Chaque chiffre est sourcé ; obligation, pratique et recommandation VamiSec sont signalées séparément.

01État des lieux

De la suggestion à l’exécution

Les outils de codage IA font partie du quotidien des développeurs. Depuis que des agents installent eux-mêmes des paquets et appellent des outils, le risque se déplace de la suggestion erronée vers l’exécution sans supervision.

En peu de temps, les outils d’IA sont passés du stade de l’expérimentation à celui d’équipement de base du développement logiciel. Dans la Stack Overflow Developer Survey 2025, 84 % des répondants déclaraient utiliser des outils d’IA dans leur processus de développement ou prévoir de le faire (2024 : 76 %). Ils étaient effectivement utilisés par 78,5 % d’entre eux, quotidiennement par 47,1 %. En 2025, à peine un tiers utilisait des agents d’IA dans son travail (environ 31 %), et 37,9 % n’avaient aucun projet en ce sens.

84 %utilisent des outils d’IA ou prévoient de le faire (Stack Overflow 2025)
73 %utilisent quotidiennement des assistants et agents de codage (Stack Overflow 2026)
> 1 millionde pull requests du Copilot Coding Agent, de mai à septembre 2025 (Octoverse)
+178 %de hausse des dépôts publics utilisant un SDK de LLM, à plus de 1,1 million (Octoverse 2025)

Un an plus tard, le centre de gravité s’est déplacé. Dans l’enquête 2026 (30 903 réponses valides provenant de 169 pays), les assistants et agents de codage constituent, avec 66 %, le principal cas d’usage de l’IA, devant les chatbots généralistes (63 %). Stack Overflow résume que l’« écrasante majorité » utilise désormais quotidiennement des assistants et agents de codage (73 %) – ce chiffre couvre les deux ensemble, pas les agents seuls. L’Octoverse 2025 de GitHub va dans le même sens : plus de 180 millions de développeuses et développeurs, dont environ 36 millions de nouveaux, et près de 80 % des nouveaux utilisent Copilot dès leur première semaine. GitHub ne communique pas de taux d’acceptation des pull requests du Coding Agent.

Les assistants suggèrent, les agents exécutent

Pour la sécurité, ce qui compte est moins la quantité de code qu’écrit un modèle que ce qu’il est autorisé à faire lui-même. Un assistant formule une suggestion qu’un humain lit, adopte ou rejette. Un agent travaille dans le terminal, exécute npm install ou pip install, intègre des serveurs MCP (Model Context Protocol, l’interface vers des outils et sources de données externes) et des skills (paquets d’instructions réutilisables pour agents), et lit comme contexte le contenu des dépôts, les issues et la documentation. HiddenLayer souligne que les agents peuvent adopter des paquets typosquattés avec moins de contrôle humain et que des serveurs MCP distants peuvent changer sans que l’organisation s’en aperçoive (HiddenLayer, 16 juillet 2026).

DimensionAssistant (suggestion)Agent (exécution)
Nom de paquetapparaît dans le chat ou le code ; un humain décide de l’installationest installé directement dans le terminal
Contextele prompt de la développeuse ou du développeurREADME, issues, fichiers de règles, descriptions d’outils, pages web – chaque source est un point d’entrée possible pour une injection de prompt, c’est-à-dire des instructions cachées dans des données
Droitsaucun en propreceux de la session : système de fichiers, réseau, tokens, profils cloud
Extensionsquasiment aucuneserveurs MCP, skills, hooks, plugins
Point de contrôlerevue avant le commitboîte de dialogue d’approbation – sauf approbation automatique

Comparaison simplifiée ; appréciation de VamiSec.

Il est avéré que des agents exécutent des instructions d’installation sans vérifier à qui appartient la ressource : des chercheurs ont trouvé, sur 6 214 domaines, 8 265 fichiers llms.txt ou llms-full.txt ; 120 d’entre eux renvoyaient à des paquets ou domaines non enregistrés. Après qu’ils eurent occupé certains de ces noms avec des paquets balises (beacon), une entreprise du Fortune 500 s’est manifestée en moins d’une heure ; les chaînes de processus pointaient vers Claude, OpenAI Codex et Nous Research Hermes (selon Schneier, citant Ars Technica, septembre 2026). Il ne s’agit pas d’une hallucination – les noms provenaient de la documentation des éditeurs –, mais la logique est la même : celui qui occupe le premier un nom libre détermine ce que l’agent installe. Les versions ne sont pas plus sûres : sur environ 37 000 recommandations de mise à niveau générées par IA et analysées, GPT-5 a halluciné 27,8 % des versions de composants selon Sonatype.

Trois sources de départ et leur appréciation

ThreatLocker, 15 septembre 2026

Blog d’éditeur sur le typosquatting et le slopsquatting dans npm et PyPI. Cite Spracklen et al. et recommande la vérification des paquets, des listes de dépendances approuvées ou un registre ou proxy interne, l’épinglage (pinning) avec lockfiles, l’analyse de composition logicielle (SCA), la désactivation des scripts de cycle de vie et des builds isolés avec des identifiants à courte durée de vie. Appréciation : les deux incidents qui y sont cités (Microsoft 2026, Check Point 2024) relèvent du typosquatting classique.

HiddenLayer, 28 juillet 2026

Cadre pour les agents de codage et leur harness – l’environnement d’exécution constitué de prompts, d’outils, de skills et de serveurs MCP autour du modèle. Cinq couches : Visibilité, Contrôle, Validation, Surveillance, Gouvernance. Conceptuel, sans statistiques propres.

Harsh, dev.to, 6 octobre 2026

Autotest avec 30 prompts npm courants soumis à trois outils de codage ; chacun a suggéré au moins un nom de paquet inexistant. Un échantillon, pas une étude : chaque prompt n’a été exécuté qu’une fois, aucun taux ne peut être calculé. L’auteur qualifie lui-même le résultat de « signal, pas un verdict ».

L’idée directrice de ce dossier : la chaîne d’approvisionnement logicielle commence aujourd’hui dans le prompt. Un nom de paquet qu’un modèle suggère ou qu’un agent reprend d’un fichier de skill est le premier maillon d’une chaîne qui, via l’enregistrement, la résolution et l’exécution, va jusqu’aux tokens volés et à la propagation. Qui n’évalue que le modèle néglige les étapes auxquelles une attaque peut réellement être interrompue.

02Schéma connu

Typosquatting : ancien, mais industrialisé

Enregistrer des noms de paquets prêtant à confusion est un schéma ancien. Ce qui est nouveau, c’est la vitesse, l’automatisation et des cibles qui se trouvent désormais dans les outils d’IA eux-mêmes.

Dans le typosquatting, un attaquant enregistre un nom qui ressemble à s’y méprendre à celui d’un paquet populaire et mise sur les fautes de frappe, les copier-coller inattentifs ou les outils automatisés. Les registres publics attribuent les noms au premier arrivé ; un nouveau compte suffit. Les schémas sont peu nombreux :

SchémaPrincipeExemple documenté
OmissionDes caractères manquent« suport-color », manifestement calqué sur supports-color (SANDWORM_MODE, Socket 2026)
Insertion, substitution, permutationUn caractère est ajouté, remplacé ou interverti« reqjuests » (requests), « tensoflom » (tensorflow) – Check Point 2024
HomoglyphesCaractères visuellement similaires, par exemple rn au lieu de m ou un chiffre au lieu d’une lettre« jeIlyfish » avec un I majuscule au lieu d’un l (PyPI, signalé le 1er décembre 2019, en ligne depuis le 11 décembre 2018 ; volait des clés SSH et GPG)
SéparateursVariation du tiret, du tiret bas ou du point« crossenv » au lieu de cross-env (npm, 1er août 2017 ; transmettait des variables d’environnement, environ 40 paquets du compte hacktask supprimés)
Préfixe, suffixe, marqueNom connu plus un ajout comme -setup, -helper ou -utilityImitations d’outils OpenSearch et Elasticsearch, parfois avec une fausse URL de dépôt (Microsoft 2026) ; imitations de Claude Code (Socket 2026)
Confusion de scopeUn paquet avec scope (@name/…) en imite un sans scope – ou inversementpas documenté individuellement dans les cas analysés ; dans le cas Microsoft, des paquets avec et sans scope propre (@vpmdhaj) sont apparus

Noms d’exemple tirés de Check Point (28 mars 2024), Microsoft (28 mai 2026), Socket (20 février 2026) ainsi que des cas historiques crossenv (npm, 2017) et jeIlyfish (PyPI, 2019). Ne pas installer.

De l’acteur isolé au travail à la chaîne

Check Point, mars 2024 (PyPI)

Plus de 500 paquets malveillants en deux vagues (environ 200, puis plus de 300), chacun publié depuis un compte de mainteneur distinct : les comptes ont été créés le 26 mars, les téléversements ont suivi le lendemain. Sous Windows, setup.py chargeait une seconde étape qui volait des mots de passe et des fichiers et remplaçait des logiciels de portefeuille crypto. PyPI a supprimé les paquets peu après le signalement.

Microsoft, 28 mai 2026 (npm)

Un compte nouvellement créé a publié en quatre heures 14 paquets imitant des outils OpenSearch, Elasticsearch, DevOps et de configuration. Des hooks d’installation dérobaient des identifiants AWS (IMDSv2, rôles de tâches ECS, STS, Secrets Manager dans au moins 16 régions), des tokens HashiCorp Vault, des tokens GitHub Actions avec leur contexte et des tokens npm dotés de droits de publication.

21 764paquets open source malveillants au premier trimestre 2026 (Sonatype)
46 par journouveaux paquets npm malveillants en moyenne – 75 % de tous les nouveaux cas (Sonatype, T1 2026)
+73 %de hausse des détections de paquets open source malveillants en 2025 ; près de 90 % concernaient npm (ReversingLabs)

Ni Check Point ni Microsoft ne rattachent ces campagnes à l’IA ; il s’agit de typosquatting et d’usurpation de marque. La cible est révélatrice : sont visés les environnements de build, les rôles cloud et les tokens de publication – précisément les droits avec lesquels travaillent aussi les agents de codage. Sonatype désigne l’abus de la confiance accordée aux noms, outils et workflows de release connus comme le vecteur d’attaque le plus efficace du premier trimestre 2026.

SANDWORM_MODE : le typosquatting vise l’agent

La transition est marquée par une campagne décrite par Socket le 20 février 2026 : au moins 19 paquets npm typosquattés, dont trois imitant Claude Code, ont volé des identifiants npm, GitHub, CI et crypto ainsi que des clés d’API de LLM de neuf fournisseurs. Ils inscrivaient en outre leur propre serveur MCP dans la configuration de Claude Code, Claude Desktop, Cursor, VS Code Continue et Windsurf. Les outils de ce serveur, aux noms anodins comme index_project ou lint_check, contenaient une injection de prompt : l’assistant devait lire les clés SSH, les identifiants AWS, .npmrc et .env, et taire cette étape à l’utilisateur. Pour se propager, le logiciel malveillant utilisait des tokens npm volés, des workflows pull_request_target injectés et SSH comme voie de repli.

Appréciation de VamiSec : le paquet n’est ici que l’ouvre-porte. La véritable charge utile est une modification durable de l’environnement de l’agent, qui agit dans chaque session future avec les droits de la développeuse ou du développeur.

Ce que font les registres – et où cela s’arrête

  • Contrôle du typosquatting : selon ses propres déclarations, PyPI détecte et signale automatiquement un typosquatting potentiel lors de la création d’un projet ; PyPI ne communique ni seuils ni chiffres (rétrospective annuelle 2025).
  • Quarantaine : les administrateurs peuvent retirer des projets de l’index sans les supprimer. Depuis août 2024, cela a concerné environ 140 projets, dont un seul a été libéré (PyPI, 30 décembre 2024). En mars 2026, la quarantaine se déclenchait déjà automatiquement via des signaleurs de confiance.
  • Marqueurs de statut : via la PEP 792, les API de l’index signalent le statut « quarantined » ; les installateurs doivent alors afficher un avertissement.
  • Délai de réaction : en 2025, PyPI a traité plus de 2 000 signalements de logiciels malveillants, 66 % en moins de quatre heures et 92 % en moins de 24 heures.

Les limites sont structurelles. Toutes ces mesures interviennent après le téléversement ; la fenêtre de temps jusqu’à la suppression demeure. npm aussi a réagi à Shai-Hulud en bloquant les téléversements contenant des indicateurs connus – là encore de manière réactive. Et un contrôle de similarité ne détecte que ce qui ressemble à un nom existant. C’est précisément là qu’il échoue face aux noms qu’un modèle de langage invente de toutes pièces.

03Nouvelle classe d’attaques

Slopsquatting : quand le modèle invente le nom

Les modèles de langage inventent des noms de paquets – de manière reproductible et rarement identifiables comme fautes de frappe. Celui qui enregistre le premier un tel nom détermine ce qui est installé.

Le terme slopsquatting est attribué à Seth Larson (Python Software Foundation) ; Andrew Nesbitt l’a popularisé le 8 avril 2025. Il désigne la situation suivante : un modèle de langage hallucine un nom de paquet inexistant, un attaquant l’enregistre avec du code malveillant. La mesure de référence provient de Spracklen et al. (USENIX Security 2025, Distinguished Paper Award), qui n’emploient eux-mêmes pas ce terme.

19,7 %des 2,23 millions de références de paquets hallucinées (440 445)
205 474noms de paquets inventés uniques
43 %des hallucinations sont revenues dans les dix répétitions (échantillon : 500 prompts)
48,6 %des noms Python inventés : à six modifications de caractères ou plus des paquets réels

Les chercheurs ont fait générer par 16 modèles de code 576 000 échantillons de code en Python et JavaScript. Était considéré comme halluciné ce qui n’existait pas sur PyPI ou npm le 10 janvier 2024 – une borne inférieure. Les 19,7 % se rapportent aux références de paquets, non aux échantillons de code.

ConstatRésultat (Spracklen et al.)Conséquence pour la défense
Type de modèleModèles commerciaux : 5,2 % en moyenne, open source : 21,7 % (seulement trois modèles commerciaux, tous d’OpenAI)Le choix du modèle réduit le risque, sans l’éliminer
TempératureTempérature plus élevée, davantage d’hallucinations (maximum : GPT-4 8,9 %, GPT-3.5 31,8 %) ; d’autres paramètres de décodage n’ont pas aidéMême des réglages conservateurs produisent des paquets inventés
Reproductibilité500 prompts, dix fois chacun : 43 % dans toutes les exécutions, 58 % plus d’une fois, 39 % plus jamaisBeaucoup de noms inventés sont prévisibles – donc enregistrables
Spécificité du modèle81 % des noms provenaient d’un seul des 16 modèlesFaible recoupement ; le risque dépend du modèle
Distance des nomsSur 76 489 noms Python : 13,4 % à une distance de Levenshtein de 1–2, 37,9 % de 3–5, 48,6 % de 6 ou plusLe plus souvent pas des fautes de frappe – la détection classique du typosquatting ne fonctionne pas
Confusion de langage8,7 % des noms Python inventés sont de vrais paquets npmUn nom existant n’est pas automatiquement le bon
Contre-mesures au niveau du modèleRAG (Retrieval-Augmented Generation), auto-affinement (self-refinement) et fine-tuning aident ; le fine-tuning a réduit le taux de 83 % chez DeepSeek, mais aussi la performance HumanEval de 51,4 % à 25,3 %Corriger le modèle coûte en qualité – les contrôles ont aussi leur place hors du modèle

Spracklen et al., USENIX Security 2025 (arXiv:2406.10279 v3). Distance de Levenshtein = nombre de modifications de caractères individuels entre deux noms. La reproductibilité a été étudiée sur quatre modèles et en Python.

Éléments de preuve issus de la recherche et de la pratique, de 2023 à 2026

En 2023, chez Vulcan Cyber, Bar Lanyado a montré que ChatGPT 3.5 recommandait des paquets non publiés pour plus de 40 questions Node.js sur 201 et plus de 80 questions Python sur 227. Pour son étude de suivi publiée en 2024 chez Lasso Security, il a téléversé un paquet vide sous le nom huggingface-cli, halluciné de manière répétée (le vrai : huggingface_hub[cli]) – avec, selon Lasso, plus de 30 000 téléchargements authentiques en trois mois. Alibaba mentionnait pip install huggingface-cli dans le premier commit du README de son dépôt GraphTranslator (26 février 2024).

Modèles de pointe 2026 (prépublication)

Aleksandr Churilov a reproduit la méthodologie en 2026 avec cinq modèles actuels : taux de 4,62 % à 6,10 %. Les cinq ont inventé à l’identique 127 noms ; après un signalement coordonné, 53 restaient enregistrables (état : avril 2026). Non évalué par des pairs ; l’extraction par expressions régulières et les listes de référence de 2024 peuvent fausser les valeurs.

Agents (Trend Micro, 2025)

Les agents de codage dotés de raisonnement ont inventé environ moitié moins de noms de paquets que les modèles de base, mais pas zéro – pas même Cursor avec validation en direct via des serveurs MCP.

Échantillon dev.to (6 octobre 2026)

Dans l’autotest décrit en introduction, Claude Haiku 4.5 a inventé deux noms de paquets, GitHub Copilot un et ChatGPT/Codex trois ; deux sont apparus chez plusieurs outils, et ils n’ont délibérément pas été publiés. Pas une mesure, mais un indice que le problème persiste.

react-codeshift (Aikido, 21 janvier 2026)

Un nom npm jamais publié, mélange de jscodeshift et de react-codemod, figurait comme commande npx dans des Agent Skills générés par IA et s’est retrouvé dans au moins 237 dépôts. Aikido l’a enregistré comme espace réservé inoffensif et attribue les téléchargements qui ont suivi à des agents ayant suivi les skills.

HalluSquatting (Spira et al., 2026)

Des dépôts et des skills sont eux aussi hallucinés – jusqu’à 85 % et 100 % respectivement dans les scénarios de test. Des ressources enregistrées à l’avance ont fonctionné avec les six assistants de codage testés dans 20 à 65 % des essais. Avec une recherche web préalable, Cursor CLI a cloné correctement dans 93,4 % des cas, sans recherche dans 0,9 %. Prépublication, aucune infection réelle connue.

Aucune attaque documentée à ce jour

Au 8 octobre 2026, aucun cas publiquement documenté n’est connu dans lequel un attaquant aurait enregistré de manière malveillante un nom dont l’hallucination est prouvée et où des victimes l’auraient installé à la suite d’une suggestion d’IA. L’affirmation selon laquelle PhantomRaven (2025), par exemple, exploiterait le slopsquatting est une appréciation de Koi sans preuve publiée. Pour les 53 noms de Churilov non plus, Socket et InfoWorld ne constatent pas d’enregistrements malveillants.

Appréciation de VamiSec : il n’y a pas lieu de lever l’alerte. Les conditions préalables sont documentées : les hallucinations se répètent, un petit recoupement existe entre modèles, et des espaces réservés inoffensifs ont reçu de véritables installations, récemment apparemment par des agents. En même temps, un cas réel reste difficile à repérer : le nom ne ressemble généralement pas à une faute de frappe, et Seth Larson juge difficile, probablement impossible, de chiffrer les tentatives d’installation de paquets hallucinés (The Register, 12 avril 2025). L’absence de cas documentés ne prouve donc pas que le risque soit faible.

04Du nom au code

Le déclenchement : scripts d’installation, code d’import et tokens

Un faux nom de paquet ne devient dangereux que lorsque du code s’exécute. Les incidents de 2025-2026 montrent à quel point le chemin est court entre l’installation, les tokens volés et l’autopropagation.

Entre la suggestion d’un nom et le dommage, il y a l’exécution. Les gestionnaires de paquets offrent pour cela plusieurs points de déclenchement, et tous ne peuvent pas être désactivés d’un simple interrupteur. Le conseil répandu de désactiver les scripts de cycle de vie (ignore-scripts) est juste, mais incomplet.

Point de déclenchementQuand le code s’exécuteCas documenténpm ignore-scripts l’arrête-t-il ?
Scripts de cycle de vie npm (preinstall, install, postinstall)lors de l’installationCas Microsoft (mai 2026) ; Shai-Hulud (septembre et novembre 2025)oui
Paquet source Python (setup.py)lors de l’installation depuis le paquet sourceCheck Point 2024non applicable (pip)
Fichier .pthà chaque démarrage de l’interpréteur Python, sans importlitellm 1.82.8 (24 mars 2026) : le fichier figurait dans le RECORD, les contrôles de hachage n’ont rien signalénon – pas un script de cycle de vie
Code exécuté à l’importau premier import ou requirementionné par l’OWASP sous ASI05non
Dépendance Gitlors de l’installation : un .npmrc fourni peut remplacer le chemin vers le programme gitmotif de l’introduction de --allow-git=none (GitHub, 18 février 2026)non
Dépendance URLla charge utile est chargée depuis une adresse HTTP lors de l’installation, invisible dans le tarball du registrePhantomRaven (selon Koi, octobre 2025)pas le chargement ultérieur ; pour cela --allow-remote=none

Sources : Microsoft 28 mai 2026 ; Check Point 28 mars 2024 ; Snyk 24 mars 2026 ; GitHub Changelog 18 février 2026 ; The Register 30 octobre 2025 ; OWASP Top 10 for Agentic Applications 2026.

Six incidents, un même schéma

  1. Les CLI d’IA comme outil de l’attaquants1ngularity/Nx – 26 août 2025

    Via un workflow pull_request_target vulnérable à l’injection de commandes shell, des attaquants ont dérobé le token npm et publié des versions malveillantes de Nx pendant environ quatre heures. La charge utile recherchait les CLI d’IA installées localement et, selon Wiz, les lançait avec --dangerously-skip-permissions, --yolo ou --trust-all-tools afin d’inventorier les secrets. Selon GitGuardian, cela n’a réussi que sur 95 des 366 systèmes cibles (environ 26 %) ; au total, 2 349 secrets uniques ont été rendus publics.

  2. Hameçonnage, clipper cryptochalk/debug – 8 septembre 2025

    Un mainteneur s’est laissé piéger par un e-mail d’hameçonnage provenant de support@npmjs[.]help ; le domaine avait été enregistré le 5 septembre 2025. Des versions malveillantes de 18 paquets populaires (Aikido ; Socket compte 19 versions), totalisant selon Aikido plus de 2 milliards de téléchargements hebdomadaires, remplaçaient dans le navigateur des adresses de portefeuilles en interceptant fetch, XMLHttpRequest et window.ethereum.

  3. Ver se propageant via des tokens volésShai-Hulud – septembre 2025

    Un ver auto-réplicant injectait des scripts post-install, recherchait des secrets avec TruffleHog, dans les variables d’environnement et les métadonnées cloud, et publiait d’autres paquets à l’aide de tokens npm dérobés. GitHub a supprimé plus de 500 paquets compromis ; Wiz fait remonter la campagne à des identifiants issus de s1ngularity.

  4. preinstall et porte dérobée de runnerShai-Hulud 2.0 – à partir du 24 novembre 2025

    La deuxième vague se déclenchait dès la phase preinstall, déguisée en installateur Bun, enregistrait les hôtes infectés comme runners GitHub auto-hébergés et a créé, selon Wiz, plus de 25 000 dépôts malveillants. Lorsqu’elle ne parvenait ni à voler des identifiants ni à exfiltrer des données, elle tentait, selon Unit 42, de détruire le répertoire personnel.

  5. Poste du mainteneur compromisaxios – 31 mars 2026

    Après une ingénierie sociale et l’infection de son poste par un RAT (cheval de Troie d’accès à distance), axios 1.14.1 et 0.30.4 ont été publiés via le compte personnel du mainteneur principal, avec une dépendance supplémentaire qui chargeait en plusieurs étapes d’autres logiciels malveillants, RAT compris – pendant environ trois heures. Dans son alerte du 20 avril 2026, la CISA a expressément recommandé ignore-scripts=true et min-release-age=7 (jours) dans le .npmrc ainsi qu’une MFA résistante à l’hameçonnage.

  6. Provenance valide, l’agent comme lieu de persistanceTanStack / Mini Shai-Hulud – 11 mai 2026

    Via un workflow pull_request_target et un cache Actions empoisonné, des attaquants ont lu dans la mémoire du runner le token OIDC destiné au Trusted Publishing et publié 84 versions malveillantes de 42 paquets @tanstack – avec une provenance SLSA Build Level 3 valide (StepSecurity). Pour assurer sa persistance, le logiciel malveillant écrivait dans .claude/settings.json un hook SessionStart qui exécute node .vscode/setup.mjs à chaque démarrage de Claude Code, ainsi qu’une tâche VS Code avec runOn: folderOpen.

Deux leçons

Premièrement : la provenance – la preuve signée indiquant de quel dépôt et de quel build provient un paquet – atteste l’origine, pas l’innocuité. En substance, selon StepSecurity, la provenance SLSA confirme quel pipeline a produit un artefact – et non s’il s’est comporté comme prévu. Dans le cas Red Hat « Miasma », 32 paquets manipulés portaient eux aussi des signatures valides, car les attaquants avaient utilisé la voie de publication OIDC légitime (Microsoft, 2 juin 2026). La documentation de npm précise elle-même que la provenance ne garantit pas un contenu exempt de code malveillant.

Deuxièmement : les tokens sont la monnaie de la propagation. La plupart de ces charges utiles recherchaient des identifiants npm, GitHub, cloud ou d’API de LLM et utilisaient des droits de publication pour la vague suivante. Appréciation de VamiSec : chaque session d’agent dans laquelle des tokens en clair, des profils cloud ou des droits d’écriture sur un registre sont accessibles est un point de départ possible d’une telle vague. Mini Shai-Hulud montre en outre que la configuration de l’agent elle-même devient un lieu de persistance.

05Surface d’attaque

Le harness est la surface d’attaque

Les attaques contre des agents de codage documentées ici ne cassent aucun modèle. Elles exploitent la confiance – accordée aux fichiers de contexte, aux descriptions d’outils, aux configurations et à la logique d’approbation.

Dans son cadre du 28 juillet 2026, HiddenLayer place une thèse au centre : la surface d’attaque essentielle d’un agent de codage n’est pas le modèle, mais son harness – prompts, outils, skills, serveurs MCP et logique d’orchestration autour du modèle. HiddenLayer voit la racine des attaques dans une confiance mal placée. Dès le 16 juillet 2026, l’entreprise avait classé chaque source lue par un agent comme point d’entrée possible d’une injection de prompt indirecte.

> 30vulnérabilités dans des IDE d’IA, dont 24 avec CVE (IDEsaster, 6 décembre 2025)
13,4 %534 des 3 984 Agent Skills examinés présentent au moins une constatation critique (Snyk)
76skills ou charges utiles dont le caractère malveillant est confirmé (Snyk, 5 février 2026)

Classes d’attaques documentées

Attaque (source, date)Composant du harness exploitéRéférence OWASP
Injection de prompt cachée dans Cursor (HiddenLayer, 31 juillet 2025)Un commentaire HTML caché dans un README utilise les tokens de contrôle du prompt système pour passer pour une instruction de l’utilisateur ; contournement de la liste de refus via $(), exfiltration de clés SSH via des outils ne nécessitant pas d’autorisation. Corrigé dans Cursor 1.3LLM01, ASI01, ASI02
CopyPasta (HiddenLayer, 4 septembre 2025)Injection de prompt dans un commentaire caché du README, déguisée en licence ; l’agent la copie dans chaque fichier modifié (Cursor, mais aussi Windsurf, Kiro, Aider)LLM01, ASI01, ASI06
Rules File Backdoor (Pillar Security, 18 mars 2025)Fichiers de règles de Cursor et de GitHub Copilot contenant des caractères Unicode invisibles ; pas de CVE, les deux éditeurs considérant que cela relève de la responsabilité de l’utilisateurLLM01, ASI01, ASI06
Tool Poisoning, Rug Pull (Invariant Labs, avril 2025)Instructions cachées dans les descriptions d’outils MCP ; un rug pull modifie la description après l’approbation. Démo : l’agent a lu ~/.cursor/mcp.json et ~/.ssh/id_rsaASI02, ASI04
Toxic Agent Flow (Invariant Labs, 26 mai 2025)Une issue malveillante dans un dépôt public amène l’agent à écrire, via le serveur MCP officiel de GitHub, des contenus privés dans une PR publique – un défaut d’architecture, pas un bug du serveurASI01, ASI02 ; scénario OWASP sous ASI04
RCE par approbation automatique, CVE-2025-53773 (GitHub Copilot dans VS Code/Visual Studio ; CVSS 3.1 : 7,8)Une injection de prompt écrit chat.tools.autoApprove: true dans .vscode/settings.json ; les confirmations disparaissent, les commandes de terminal s’exécutentLLM01, ASI05
MCPoison, CVE-2025-54136 (Cursor ; CVSS 3.1 : 7,2)Les entrées MCP n’étaient approuvées que par leur nom de clé ; un commit remplace ensuite la commande. Corrigé dans Cursor 1.3ASI04, ASI05
CurXecute, CVE-2025-54135 (Cursor ; CVSS 3.1 : 8,6)Un message Slack lu via MCP amène l’agent à écrire une entrée mcp.json qui démarre sans approbation – même si la modification est refusée. Correctif en 1.3.9 selon l’entrée CVE, en 1.3 selon les découvreursLLM01, ASI01, ASI05
Fichiers de projet dans Claude Code et Codex CLI (2025-2026)CVE-2025-59536 : du code du projet s’exécutait avant la boîte de dialogue de confiance (CVSS 4.0 : 8,7). CVE-2026-21852 : un paramètre du dépôt pouvait, avant la boîte de dialogue, envoyer la clé d’API à un point de terminaison tiers (CVSS 4.0 : 5,3). CVE-2025-61260 : la configuration du projet lançait des commandes MCP sans approbation (CVSS 3.1 : 9,8, notation CISA-ADP)ASI04, ASI05
ToxicSkills (Snyk, 5 février 2026)Skills issus de ClawHub et de skills.sh : injection de prompt dans 91 % des 76 skills dont le caractère malveillant est confirmé, code malveillant dans tousASI01, ASI04
Amazon Q pour VS Code 1.84.0 (AWS-2025-015, CVE-2025-8217)Un token GitHub doté de droits trop étendus dans CodeBuild a permis d’injecter du code ; selon The Register, le prompt devait supprimer des fichiers et des ressources cloud. Selon AWS, il ne s’est pas exécuté en raison d’une erreur de syntaxe ; rien n’a été suppriméASI01, ASI02, ASI04

LLM01 Prompt Injection, LLM09 Misinformation (OWASP Top 10 for LLM Applications 2025) ; ASI01 Agent Goal Hijack, ASI02 Tool Misuse and Exploitation, ASI04 Agentic Supply Chain Vulnerabilities, ASI05 Unexpected Code Execution (RCE), ASI06 Memory & Context Poisoning (OWASP Top 10 for Agentic Applications 2026). Correspondance : appréciation de VamiSec ; Amazon Q et Toxic Agent Flow selon l’OWASP. CVSS 4.0 et 3.1 ne sont pas directement comparables.

L’OWASP classe les hallucinations de paquets elles-mêmes sous LLM09 Misinformation (« Unsafe Code Generation »), et non sous LLM03 Supply Chain. Dans la liste Agentic, ASI05 couvre le cas où des paquets installés sans vérification exécutent du code malveillant lors de l’installation ou de l’import ; ASI04 recommande entre autres de rechercher les typosquats.

IDEsaster (Ari Marzouk) décrit pour Copilot, Cursor, Windsurf, Claude Code et d’autres IDE d’IA une nouvelle chaîne : injection de prompt → outils → fonctions de base de l’IDE, comme les schémas JSON distants ou des paramètres d’espace de travail écrasés. S’y ajoutent des failles dans la logique d’approbation et de sandbox des CLI d’agents, par exemple une boîte de dialogue de confirmation contournable dans Claude Code (CVE-2025-54795, CVSS 4.0 : 8,7) ou une évasion de sandbox via un répertoire de travail imposé par le modèle dans Codex CLI (CVE-2025-59532, CVSS 4.0 : 8,6).

Idée directrice : la sécurité hors du modèle

La plupart des cas partagent une même structure : le modèle a fait ce que son contexte suggérait. Là où les éditeurs ont apporté des corrections, ce n’était pas au niveau du modèle, mais dans le harness – par une nouvelle approbation des configurations MCP modifiées, la boîte de dialogue de confiance avant toute exécution, la vérification canonique des chemins ou des listes d’autorisation plus restrictives. HiddenLayer intitule d’ailleurs sa couche de surveillance ainsi : la sécurité doit exister en dehors du modèle. Appréciation de VamiSec : traitez les fichiers de règles, les configurations MCP, les hooks et les skills comme du code exécutable – avec revue, gestion de versions et approbation – et toute source lue par l’agent comme une entrée non fiable.

06Couche 1 sur 5 · Visibilité

Visibilité : connaître chaque relation de confiance

On ne peut sécuriser que ce que l’on connaît. La première couche recense les agents, les modèles, les composants du harness, les droits et les dépendances – y compris les outils que personne n’a déclarés.

Ce que recommande HiddenLayer (pratique)

HiddenLayer intitule la première couche de son cadre du 28 juillet 2026 « Understand Every Trust Relationship » – comprendre chaque relation de confiance. Elle porte sur quatre objets :

  • Tous les agents, modèles, harnesses, outils, serveurs MCP et skills utilisés – y compris, expressément, l’IA fantôme (shadow AI).
  • Les autorisations de chaque agent et les systèmes qu’il peut atteindre.
  • L’origine et l’intégrité des outils, des skills et des services externes.
  • Les interactions à l’exécution entre agents, outils, dépôts et systèmes externes.

L’origine et l’intégrité ne sont pas une simple formalité : les serveurs MCP distants peuvent changer sans que l’organisation s’en aperçoive (HiddenLayer, 16 juillet 2026). Un inventaire qui ne contient que des noms devient donc obsolète sans que personne ne le remarque. Contre l’IA fantôme, le BSI et l’ANSSI recommandent des comptes d’entreprise contrôlés plutôt que des accès privés, ainsi que des règles claires sur les outils pouvant être utilisés avec quelles données. Dans sa recommandation juridiquement non contraignante sur les gestionnaires de paquets du 10 mars 2026, l’ENISA conseille en outre d’assurer la visibilité sur tous les paquets que sélectionnent les outils d’IA.

Mise en œuvre : nomenclature des agents et SBOM (recommandation VamiSec)

Nous recommandons de tenir l’inventaire sous la forme d’une nomenclature des agents (AI-BOM) : un répertoire lisible par machine qui consigne, pour chaque agent, l’outil et sa version, le modèle et le fournisseur, le mode de fonctionnement, les serveurs MCP et skills connectés avec leur version ou leur hachage, les fichiers de règles ainsi que l’identité utilisée. S’y ajoute la SBOM (Software Bill of Materials, nomenclature de tous les composants logiciels) de chaque release. En cas d’incident, les deux répondent à la même question : où se trouve le composant concerné ?

Quoi recenserSource des donnéesResponsable
Agents et harness : outil, version, modeDistribution logicielle, inventaire des terminaux, listes d’extensions des IDEÉquipe plateforme
Modèles et fournisseursContrats, achats, logs de la passerelle IA ou du proxyAchats avec l’AppSec
Serveurs MCP, skills, fichiers de règlesFichiers de configuration dans les dépôts et les répertoires personnels, p. ex. mcp.json, settings.json, AGENTS.mdResponsables des dépôts
Identités et droits des agentsFournisseur d’identité, gestion des tokens du registre, de la plateforme Git et du cloudIAM
DépendancesGénération de SBOM dans le pipeline CI, lockfilesÉquipe produit
IA fantômeLogs DNS et proxy comparés à la liste d’autorisationSécurité de l’information
Interactions à l’exécutionTélémétrie des hooks des agents, logs d’audit, EDRSOC

Recommandation VamiSec. Adaptez les rôles à votre organisation – l’essentiel est un responsable nommé pour chaque ligne.

La profondeur de la SBOM mérite de la précision. À l’annexe I, partie II, point 1, le CRA exige une SBOM dans un format courant et lisible par machine couvrant au minimum les dépendances de premier niveau – applicable à partir du 11 décembre 2027 ; il n’impose actuellement aucun format particulier. La BSI TR-03183-2 (version 2.1.0) exige en revanche, pour les SBOM conformes à la TR, une résolution récursive et cite CycloneDX à partir de 1.6 ou SPDX à partir de 3.0.1. Du code malveillant peut arriver par des dépendances transitives : la version malveillante axios 1.14.1 ajoutait la dépendance plain-crypto-js, qui chargeait d’autres étapes malveillantes (CISA, 20 avril 2026). Nous recommandons donc la SBOM récursive comme standard de travail – en tant que bonne pratique, et non comme obligation du CRA. Selon l’ENISA (SBOM Adoption State of Play, juin 2026), 24 % des répondants ont besoin d’une analyse en profondeur complète, mais seuls 14 % l’obtiennent.

Lien avec la chaîne d’attaque

La visibilité n’est pas un point de rupture, mais la condition de tous les autres. Elle complique l’étape 03 (Adoption), car les nouveaux paquets, serveurs MCP et skills sont repérés. Sans inventaire, les listes d’autorisation, l’isolation et la surveillance ne peuvent pas être appliquées de manière exhaustive. Après un incident, elle limite l’étape 07 (Propagation) : les dépôts, hôtes et tokens concernés peuvent être nommés immédiatement, au lieu de devoir d’abord être recherchés.

Preuve : nomenclature des agents

Inventaire versionné avec date de mise à jour, personne responsable pour chaque entrée et rapprochement régulier avec l’usage réel.

Preuve : configuration de référence

Serveurs MCP et skills approuvés pour chaque agent, avec version ou hachage ; les écarts sont documentés.

Preuve : SBOM par release

Format, profondeur et moment de génération traçables, archivés avec la documentation technique.

Preuve : rapprochement de l’IA fantôme

Analyse périodique des données proxy ou DNS par rapport à la liste d’autorisation, avec les mesures prises.

Ancrage réglementaire : les entités financières soumises au cadre DORA complet doivent, en vertu de l’art. 10(2)(d) du règlement délégué (UE) 2024/1774 (RTS sur la gestion du risque lié aux TIC), suivre quelles bibliothèques tierces et open source utilisent les services TIC soutenant des fonctions critiques ou importantes – y compris leurs versions et mises à jour. Le Grundschutz++ du BSI prévoit, en tant qu’exigence SOLLTE (« devrait »), de documenter les composants par une SBOM avant la release (DEV.4.3, avec renvoi à la TR-03183-2).

07Couche 2 sur 5 · Contrôle

Contrôle : limiter les dommages d’une compromission

Tôt ou tard, un agent lit une instruction manipulée ou suggère un mauvais paquet. La deuxième couche fait en sorte qu’il ait alors peu de droits, atteigne peu de choses et ne trouve rien de précieux.

Ce que recommande HiddenLayer (pratique)

Sous « Limit the Impact of Compromise », HiddenLayer cite cinq mesures : le moindre privilège par défaut, l’approbation humaine pour les actions lourdes de conséquences, l’accès aux seuls outils, serveurs MCP et skills approuvés, la limitation des connexions réseau sortantes inutiles ainsi que l’examen des prompts système et des configurations par défaut avant le déploiement. L’OWASP Top 10 for Agentic Applications 2026 étend le moindre privilège à la « Least Agency » : pas d’autonomie là où elle n’est pas nécessaire. La ligne directrice publiée le 1er mai 2026 par la CISA, la NSA et des autorités partenaires des Five Eyes recommande elle aussi de ne pas accorder aux agents un large accès aux données sensibles et aux systèmes critiques.

Des vulnérabilités documentées montrent que les valeurs par défaut ne sont pas automatiquement sûres : avant la version 1.0.4, Claude Code contenait une liste trop large de commandes « sûres », par laquelle des contenus de fichiers pouvaient être exfiltrés sans confirmation (CVE-2025-55284, CVSS 4.0 : 7,1). Chez GitHub Copilot (VS Code/Visual Studio), l’obligation de confirmation pouvait être entièrement désactivée par injection de prompt (CVE-2025-53773, voir chapitre 5).

Mise en œuvre en six étapes (recommandation VamiSec)

  1. Environnement d’exécutionIsoler

    Les agents disposant d’un accès au terminal et les builds s’exécutent dans des conteneurs, des devcontainers ou des VM – sans identifiants de l’hôte montés, sans agent SSH ni profils cloud. Si du code malveillant s’exécute, il trouve aussi peu que possible qui vaille la peine d’être volé.

  2. IdentitéAttribuer une identité propre

    L’agent ne travaille pas avec les tokens personnels de la développeuse, mais avec une identité propre aux droits étroitement définis : uniquement les dépôts et scopes dont la tâche a besoin, aucun droit de publication.

  3. TokensIdentifiants à courte durée de vie

    Publier ses propres paquets via Trusted Publishing (OIDC) plutôt qu’avec des tokens enregistrés – disponible pour tous sur npm depuis le 31 juillet 2025, à partir de npm CLI 11.5.1. Là où des tokens subsistent, choisir la durée de validité la plus courte possible en pratique.

  4. Outils, MCP, skillsImposer des listes d’autorisation

    Seuls les outils, serveurs MCP et skills approuvés peuvent être chargés ; les paquets passent exclusivement par le proxy interne (voir Hygiène des dépendances).

  5. RéseauLimiter l’egress

    Trafic sortant uniquement vers des destinations approuvées. Même des outils anodins transportent des données : HiddenLayer a montré en 2025 comment une clé SSH a été exfiltrée via l’URL d’image d’un diagramme.

  6. ConfigurationImposer les paramètres de manière centralisée

    Approbation automatique désactivée ; approbation requise pour les installations, les commandes réseau et les accès en écriture à la configuration de l’agent. Bloquer les options comme --dangerously-skip-permissions, --yolo ou --trust-all-tools – selon Wiz, le logiciel malveillant s1ngularity appelait les CLI d’IA locales précisément avec celles-ci. Là où l’outil prend en charge des politiques gérées de manière centralisée, celles-ci devraient primer sur les paramètres issus du dépôt.

7 joursExpiration par défaut des nouveaux tokens npm granulaires avec droit d’écriture (depuis mi-octobre 2025)
90 joursDurée de validité maximale de ces tokens
2 hDurée de validité des tokens de session après npm login
9 déc. 2025Tokens npm classiques définitivement révoqués

L’approbation humaine n’est efficace que si la personne voit ce qu’elle approuve. Dans la démo de tool poisoning d’Invariant Labs, la boîte de dialogue de confirmation n’affichait pas les entrées complètes. Le BSI recommande expressément une confirmation par l’utilisateur avant qu’un LLM n’exécute des fonctions (Evasion Attacks on LLMs, 6 novembre 2025). Nous recommandons des boîtes de dialogue qui affichent intégralement la commande, le nom du paquet et la destination – et des approbations peu nombreuses mais prises au sérieux plutôt que des confirmations permanentes.

Lien avec la chaîne d’attaque

Cette couche fournit le plus grand nombre de points de rupture : l’isolation sans secrets de l’hôte interrompt l’étape 06 (Accès), le contrôle de l’egress l’étape 07 (Propagation), la liste d’autorisation dans le proxy l’étape 04 (Résolution). L’approbation humaine complique l’étape 03 (Adoption). Des tokens à courte durée de vie et aux droits étroits limitent la portée d’identifiants volés.

Preuves pour les auditeurs

  • Configuration imposée de manière centralisée pour chaque agent (approbation automatique, obligations d’approbation, options bloquées) avec historique des modifications.
  • Définition de l’image ou du devcontainer sans identifiants montés, accompagnée des règles d’egress.
  • Inventaire des tokens avec identité, scope et date d’expiration ; Trusted Publishing pour les paquets propres.
  • Échantillons tirés des journaux d’approbation.

Ancrage réglementaire : pour les entités essentielles et importantes, l’art. 21(2)(e) NIS2 et le § 30, al. 2, phrase 2, n° 5 du BSIG (loi allemande sur le BSI) exigent des mesures de sécurité dans l’acquisition, le développement et la maintenance. Le règlement d’exécution (UE) 2024/2690 impose, pour les types d’entités qui y sont mentionnés, par exemple les fournisseurs de services cloud et de services gérés, des exigences de sécurité applicables aux environnements de développement (annexe, point 6.2). Les entités financières soumises au cadre DORA complet doivent séparer l’approbation des modifications de leur demande et de leur mise en œuvre (art. 17(1) RTS 2024/1774 relatif à l’art. 9(4)(e) DORA) – un agent qui approuve ses propres modifications n’est guère compatible avec cette exigence (appréciation de VamiSec).

08Couche 3 sur 5 · Validation

Validation : vérifier les composants au lieu de se fier à des suppositions

Ce qu’un agent charge, exécute ou écrit doit être vérifié avant de produire un effet – les serveurs MCP et les skills tout autant que les paquets et le code généré.

Ce que recommande HiddenLayer (pratique)

  • Tester les agents avant le déploiement avec des entrées adverses (red teaming).
  • Vérifier les actions proposées avant leur exécution.
  • Examiner les outils et skills de tiers – y compris les métadonnées cachées.
  • Approuver des versions précises au lieu de faire durablement confiance à « latest ».

Le dernier point vise le rug pull : un serveur MCP modifie la description de ses outils après avoir été approuvé (Invariant Labs, 1er avril 2025). MCPoison a montré le même schéma au niveau de la configuration : après la première approbation, un commit suffisait pour remplacer la commande d’une entrée MCP sans nouvelle demande de confirmation (CVE-2025-54136, voir chapitre 5). Selon The Register, le paquet npm non officiel postmark-mcp a livré 15 versions anodines avant que la version 1.0.16 n’envoie chaque e-mail sortant en copie cachée à une adresse tierce.

Les métadonnées cachées constituent le deuxième axe. Les instructions figurant dans les descriptions d’outils sont invisibles pour les utilisateurs, mais le modèle les lit (Invariant Labs) ; les fichiers de règles peuvent contenir des instructions sous forme de caractères Unicode invisibles (Pillar Security, 18 mars 2025). Parmi 3 984 Agent Skills examinés par Snyk, 76 étaient avérés malveillants (5 février 2026, détails au chapitre 5).

Mise en œuvre : approbation par composant (recommandation VamiSec)

ComposantQuoi vérifierArtefact d’approbation
Serveurs MCPOrigine, code source ou image, descriptions d’outils complètes, droits et destinations réseau demandésEntrée dans la liste d’autorisation avec version et hachage ; toute modification impose une nouvelle approbation
Skills et fichiers de règlesTexte en clair des instructions, caractères invisibles, commandes d’installation intégrées, références externesRevue comme pour du code, CODEOWNERS, commit épinglé
PaquetsExistence, ancienneté, diffusion, mainteneurs, scripts d’installationRevue des dépendances dans la pull request, entrée dans le proxy
Configuration de l’agentApprobation automatique, hooks, entrées MCP, point de terminaison du modèleRapprochement avec la configuration centrale avant le déploiement
Code généré par IALes mêmes contrôles que pour le code humain : revue, SAST, DAST, testsContrôles obligatoires dans le pipeline, aucune exception pour les PR d’agents

L’OWASP Top 10 for Agentic Applications 2026 (ASI04) recommande également l’épinglage par hachage et par ID de commit.

Le code généré par IA ne bénéficie d’aucun régime particulier. Le BSI et l’ANSSI constatent que les assistants de codage IA ne remplacent pas les développeurs expérimentés et que les gains de productivité doivent être compensés par davantage d’assurance qualité (4 octobre 2024). Les fichiers d’instructions comme AGENTS.md aident, mais ne constituent pas un contrôle. Le guide de l’OpenSSF pour les assistants de code (1er août 2025) recommande l’instruction de n’ajouter aucune dépendance susceptible d’être malveillante ou hallucinée. Cela peut réduire le risque – mais le modèle peut ignorer la règle, et des instructions de skill d’apparence anodine peuvent même renforcer les hallucinations de paquets (Hsu et al., accepté pour EMNLP 2026).

Red teaming avant le déploiement

  1. Définir les scénarios

    Des tâches qui provoquent des suggestions de paquets ; des README, issues et descriptions d’outils préparés avec des instructions cachées ; des tentatives de modifier les paramètres de l’agent ou de lire des fichiers d’identifiants.

  2. Exécuter dans la configuration cible

    Avec exactement le modèle, le harness, les serveurs MCP et les skills qui doivent être déployés – dans un environnement isolé.

  3. Mesurer

    À quelle fréquence l’agent invente-t-il des paquets ? Suit-il des instructions injectées ? L’approbation, le proxy et l’isolation de la couche 2 sont-ils efficaces ?

  4. Répéter

    À chaque changement de modèle, de version d’outil ou d’intégration, et comme test de non-régression après des incidents.

Lien avec la chaîne d’attaque : la validation complique les étapes 01 (Invention) et 03 (Adoption), car les noms inventés sont repérés lors des tests et des revues. L’approbation des versions empêche qu’un composant modifié en silence soit chargé à l’étape 04 (Résolution). Preuves pour les auditeurs : rapport de red team pour chaque configuration d’agent, liste d’autorisation avec versions et hachages, comptes rendus de revue des nouvelles dépendances, preuves de test pour le code généré par IA.

Ancrage réglementaire : pour les entités financières soumises au cadre DORA complet, l’art. 16 du RTS 2024/1774 exige des revues de code source avec tests statiques et dynamiques (par. 3), des tests de sécurité des progiciels au plus tard lors de la phase d’intégration (par. 4) et – dans la mesure du possible – l’analyse et le test du code source open source avant la mise en production (par. 8). Le CRA exige des fabricants, à partir du 11 décembre 2027, des tests et examens de sécurité efficaces et réguliers (annexe I, partie II, point 3).

09Couche 4 sur 5 · Surveillance

Surveillance : la sécurité n’a pas sa place dans le modèle

Un modèle n’applique aucune politique de sécurité. La quatrième couche observe donc de l’extérieur ce que font réellement les agents, les gestionnaires de paquets et les builds.

HiddenLayer justifie la quatrième couche en quelques mots : les modèles de langage sont conçus pour suivre des instructions – pas pour faire respecter des politiques de sécurité (en substance). Un contrôle qui ne figure que dans le prompt tombe à la première injection de prompt réussie. La surveillance s’appuie donc sur le système d’exploitation, le réseau, le pipeline et le harness. L’OWASP Top 10 for Agentic Applications qualifie une forte observabilité de « non négociable ».

Ce que HiddenLayer veut observer (pratique)

  • Mouvements de données sensibles
  • Utilisation des outils et opérations sur les fichiers
  • Tentatives d’élévation de privilèges
  • Activité d’IA fantôme
  • Utilisation des API et consommation de calcul anormale

Pistes de détection tirées d’incidents réels (recommandation VamiSec)

Les campagnes des derniers mois fournissent des schémas concrets. Selon StepSecurity, la vague Mini Shai-Hulud autour de TanStack s’est ancrée via un hook SessionStart de Claude Code et une tâche VS Code (détails au chapitre 4). Selon Socket, SANDWORM_MODE inscrivait son propre serveur MCP dans la configuration de Claude Code, de Cursor et d’autres outils. Selon Microsoft, Miasma maintenait un canal d’exfiltration dormant via api.anthropic.com ; selon Snyk, le domaine d’exfiltration des releases de litellm avait été enregistré la veille. Plusieurs vagues lançaient Bun comme environnement d’exécution – un moyen de contourner une surveillance centrée sur Node.

SignalSourceRéaction
node, python ou bun lit, pendant une installation, des fichiers d’identifiants comme ~/.npmrc, ~/.aws/credentials, ~/.ssh/, ~/.claude.json ou .envEDR, audit des accès aux fichiers sur les postes de travail et les runnersArrêter le processus, isoler l’hôte, effectuer la rotation des tokens accessibles
Hooks, entrées MCP, valeurs d’approbation automatique ou tâches avec runOn: folderOpen nouveaux ou modifiésSurveillance de l’intégrité des fichiers, diff dans la pull request, télémétrie des hooksAnnuler la modification, en clarifier l’origine, examiner l’hôte
Connexions depuis le build ou l’agent vers des domaines nouvellement enregistrés ou inconnusLogs DNS et proxyBloquer et évaluer la destination, examiner la session
Élévation de privilèges : nouvelle règle sudo, /etc/hosts modifié, runner auto-hébergé nouvellement enregistréEDR, journal d’audit de la plateforme GitIsoler l’hôte, supprimer le runner, examiner les workflows
Environnement d’exécution inattendu comme Bun dans le pipeline ou nouveaux fichiers .pth dans site-packagesTélémétrie des processus, logs CI, surveillance de l’intégrité des fichiersInterrompre le job, identifier le paquet déclencheur
Hausse brutale de la consommation d’une clé d’API de modèle ou accès à des services d’IA non approuvésFacturation, passerelle IA, proxyBloquer la clé, clarifier l’usage

Schémas tirés de StepSecurity (11 mai 2026), Socket (20 février 2026), Microsoft (2 juin 2026), Snyk (24 mars 2026) et Wiz (24 novembre 2025, runners auto-hébergés lors de Shai-Hulud 2.0). Correspondance et réactions : recommandation VamiSec.

Télémétrie via les hooks des agents

Plusieurs agents de codage proposent des interfaces de hooks qui lancent des programmes propres lors des appels d’outils. Nous recommandons de les utiliser pour journaliser de manière centralisée les appels d’outils, les commandes shell et les accès aux fichiers, et pour examiner les appels risqués avant leur exécution. Mais cette même interface est une voie de persistance, comme le montre la vague TanStack ; dans Claude Code, des hooks issus de fichiers de projet se sont un temps exécutés sans consentement (Check Point, corrigé le 26 août 2025). Les hooks relèvent donc de la configuration gérée de manière centralisée – toute modification les concernant est en soi un signal d’alerte.

Lien avec la chaîne d’attaque : la surveillance n’interrompt de manière fiable aucune étape, mais elle réduit la durée pendant laquelle les étapes 05 (Exécution), 06 (Accès) et 07 (Propagation) passent inaperçues. Les incidents montrent à quel point les fenêtres sont courtes : les versions malveillantes de TanStack ont été marquées comme obsolètes au bout d’environ 1,7 heure, les versions d’axios supprimées au bout d’environ trois heures. Nous en concluons que la détection propre doit réagir en heures, pas en jours.

Ancrage réglementaire : le règlement d’exécution (UE) 2024/2690 exige, pour les types d’entités qui y sont mentionnés, une protection contre les logiciels malveillants et non autorisés, y compris des mesures de détection (annexe, point 6.9) ; pour les autres entités NIS2, il sert de référence. La ligne directrice des Five Eyes sur l’IA agentique (1er mai 2026) mentionne expressément la surveillance continue.

Preuve : concept de journalisation

Quelles données des agents, des builds et des terminaux sont collectées, avec durée de conservation et règles d’accès.

Preuve : règles de détection

Règles documentées avec preuve de test, par exemple un accès simulé à un fichier d’identifiants leurre.

Preuve : journaux d’alertes

Échantillons avec délai de réaction, évaluation et résultat.

10Couche 5 sur 5 · Gouvernance

Gouvernance : la sécurité a besoin de responsables

Les contrôles techniques se dégradent lorsque personne n’en est responsable. La cinquième couche ancre les agents de codage dans des responsabilités, des politiques et des processus de gestion des incidents.

Ce que recommande HiddenLayer (pratique)

Sous « Security Requires Ownership », HiddenLayer cite quatre points : une personne responsable (owner) pour chaque agent utilisé en production, l’intégration des agents de codage dans les modèles de menaces et les programmes de gouvernance de l’IA existants, des procédures de réponse aux incidents propres à l’IA agentique et le réexamen régulier des autorisations et des intégrations de confiance. La ligne directrice des Five Eyes du 1er mai 2026 recommande elle aussi d’intégrer les risques de l’IA agentique dans les cadres existants et de pratiquer la modélisation des menaces.

Pour les entités NIS2, c’est une tâche de direction. Les organes de direction doivent approuver les mesures de gestion des risques, superviser leur mise en œuvre et peuvent être tenus responsables (art. 20(1) et (2) NIS2). En Allemagne, le § 38 BSIG oblige les organes de direction des entités essentielles et importantes à assurer la mise en œuvre, la supervision et des formations régulières ; la responsabilité est régie par le droit des sociétés. Une politique relative aux outils de codage IA devrait donc être approuvée par la direction.

Composants d’une politique relative aux outils de codage IA (recommandation VamiSec)

  • Outils, modèles et modes de fonctionnement autorisés ; utilisation uniquement via des comptes d’entreprise.
  • Classes de données : quelles informations peuvent être saisies dans quel outil.
  • Niveaux d’autonomie : ce qu’un agent peut faire seul, ce qui nécessite une approbation, ce qui est interdit.
  • Règles relatives aux paquets : approvisionnement uniquement via le proxy interne, délai de carence, aucun script d’installation sans approbation.
  • Processus d’approbation des serveurs MCP, skills et fichiers de règles, lié à une version ou à un hachage.
  • Principe des quatre yeux pour les merges – y compris pour les pull requests d’agents.
  • Journalisation, procédure d’exception et recertification des droits et des intégrations, par exemple tous les six mois.
  • Formation : depuis le Digital Omnibus (règlement (UE) 2026/1744, en vigueur depuis le 27 juillet 2026), l’art. 4 de l’AI Act exige des fournisseurs et des déployeurs des mesures de soutien à la maîtrise de l’IA, mais pas un niveau garanti.

Dans le modèle de menaces, l’agent apparaît comme un acteur à part entière, doté de droits ; les fichiers de règles, les skills, les serveurs MCP et les sources de paquets sont des frontières de confiance. Le projet de l’ENISA sur le développement logiciel assisté par l’IA (v0.4, septembre 2026) décrit à cet effet des menaces STRIDE comme l’introduction subreptice de paquets, de skills ou de fichiers d’instructions malveillants.

Playbook de réponse aux incidents : paquet malveillant installé ou agent compromis

  1. EndiguerIsoler

    Déconnecter du réseau les hôtes, conteneurs et runners concernés, mettre fin aux sessions d’agents en cours, suspendre les pipelines utilisant le paquet. Préserver les traces avant toute réinstallation.

  2. EndiguerRenouveler les identifiants

    Tous les secrets accessibles : tokens de registre, tokens de la plateforme Git, accès cloud et Vault, clés d’API de modèles. Après Shai-Hulud, la CISA a expressément conseillé leur rotation. Sans l’inventaire des tokens des couches 1 et 2, cette étape reste lacunaire.

  3. AssainirVérifier les lockfiles et les caches

    Quels dépôts, lockfiles, caches de paquets et de CI contiennent les versions concernées ? Chez TanStack, l’attaque est passée par un cache GitHub Actions empoisonné – les caches font partie de l’assainissement.

  4. AssainirRechercher la persistance dans la configuration de l’agent

    Hooks et entrées MCP dans les configurations utilisateur et projet, tâches VS Code avec runOn: folderOpen, nouveaux runners auto-hébergés et workflows, fichiers .pth. En cas de doute, réinstaller plutôt que nettoyer.

  5. NotifierVérifier les obligations de notification

    Depuis le 11 septembre 2026, les fabricants soumis au CRA notifient les vulnérabilités activement exploitées de leurs produits via la plateforme unique de signalement (Single Reporting Platform), simultanément au CSIRT coordinateur et à l’ENISA : alerte précoce sous 24 heures, notification sous 72 heures, rapport final au plus tard 14 jours après la mise à disposition d’une mesure corrective. Pertinent si du code malveillant a pu se retrouver dans un produit livré (appréciation de VamiSec, à vérifier juridiquement au cas par cas). Les entités NIS2 et DORA vérifient parallèlement leurs propres circuits de notification.

  6. ApprendreRetour d’expérience

    Documenter la cause, l’étape atteinte et les points de rupture manquants, recertifier les droits et les intégrations, informer les opérateurs de registre et les mainteneurs.

Lien avec la chaîne d’attaque : la gouvernance complique l’étape 07 (Propagation), car il est clarifié à l’avance qui renouvelle quels tokens, qui bloque quoi et qui notifie qui. Elle maintient en même temps les autres couches à jour – sans recertification, les droits et les intégrations s’étendent insidieusement.

Preuve : registre des responsables

Chaque agent en production avec personne responsable, finalité, droits et prochaine date de réexamen.

Preuve : politique approuvée

Décision de la direction avec version et champ d’application, accompagnée des attestations de formation.

Preuve : recertification

Comptes rendus du réexamen des droits et des intégrations, y compris les accès retirés.

Preuve : playbook exercé

Exercice sur table ou technique avec date, participants et améliorations qui en découlent.

11Hygiène des dépendances · Gestionnaires de paquets

Hygiène des dépendances : ce que npm, pnpm, Yarn, Bun, pip et uv savent faire aujourd’hui

Les gestionnaires de paquets se sont nettement renforcés en 2025 et 2026 : délais d’attente pour les nouvelles versions et scripts d’installation bloqués. Mais une grande partie de ces fonctions n’est pas activée par défaut – c’est à vous de les activer.

Pour l’approvisionnement en paquets, le délai de carence – un âge minimal des nouvelles versions avant leur installation – et le blocage des scripts d’installation portent l’essentiel de la charge. Faites attention aux unités.

OutilDélai de carence (à partir de la version)Par défaut (octobre 2026)Scripts d’installation
npmmin-release-age en jours (11.10.0)aucunà partir de v12 (8 juillet 2026), allowScripts désactivé : scripts des dépendances uniquement après approbation via npm approve-scripts ; --allow-git=none et --allow-remote=none par défaut
pnpmminimumReleaseAge en minutes (10.16)1 jour (1440) à partir de pnpm 11à partir de v10, aucun script des dépendances ; pnpm 11 : strictDepBuilds, approbation via allowBuilds
YarnnpmMinimalAgeGate (4.10), aujourd’hui sous forme de durée comme 1d1d à partir de 4.15 selon le changelog ; la documentation indique 1wà partir de 4.14, enableScripts: false
BunminimumReleaseAge en secondes (1.3)aucununiquement une liste par défaut sélectionnée et trustedDependencies
uvexclude-newer sous forme de durée relative (0.9.17)aucuncode d’installation et d’import possible – prévoir l’isolation
pip--uploaded-prior-to : date (26.0), durée en jours (26.1)aucuncode d’installation et d’import possible – prévoir l’isolation
RenovatePresets security:minimumReleaseAgeNpm et …Pypi3 jours si le preset est actif–
Dependabotcooldown en jours dans dependabot.yml (GA le 1er juillet 2025)3 jours depuis le 14 juillet 2026, uniquement pour les mises à jour de version–

État : notes de version et documentation, vérifiées le 8 octobre 2026. En Python, du code peut s’exécuter dans setup.py lors de l’installation (Check Point, 2024) et dans des fichiers .pth à chaque démarrage de l’interpréteur (litellm 1.82.8).

Deux limites s’y ajoutent. Premièrement, un délai de carence intercepte les versions malveillantes qui, selon pnpm, sont le plus souvent détectées et supprimées en moins d’une heure – mais pas un nom halluciné qu’un attaquant occupe tôt avant d’attendre. Deuxièmement, ignore-scripts est incomplet : les dépendances Git peuvent exécuter du code via leur propre .npmrc (contre-mesure : --allow-git=none à partir de npm 11.10.0), les dépendances URL comme dans le cas PhantomRaven nécessitent --allow-remote=none (à partir de 11.15.0), et aucun blocage de scripts ne couvre le code exécuté à l’import.

Configuration pour les builds et les agents (recommandation VamiSec)

.npmrc
# Builds CI et agents : uniquement via le proxy interne (espace réservé)
registry=https://registry.intern.example/
# aucun script de cycle de vie
ignore-scripts=true
# uniquement des versions de plus de 7 jours (à partir de npm 11.10.0)
min-release-age=7

La CISA a recommandé ces deux valeurs dans son alerte axios du 20 avril 2026 ; dans son alerte Nx Console du 28 mai 2026, elle indiquait au moins trois heures. Avec ignore-scripts, vos propres scripts pre et post sont également supprimés ; npm test et les autres commandes lancées explicitement continuent de fonctionner.

uv (pyproject.toml) et pip
# pyproject.toml : uniquement des versions de plus de 7 jours (à partir de uv 0.9.17)
[tool.uv]
exclude-newer = "7 days"
# Exceptions par paquet : exclude-newer-package

# pip à partir de 26.1 : durée en jours, plus hachages obligatoires
pip install --require-hashes --uploaded-prior-to P7D -r requirements.txt

uv accepte des valeurs comme « 7 days » ou des durées ISO 8601, mais ni mois ni années. pip 26.0 ne connaît que des dates absolues ; l’option n’a d’effet que si l’index fournit les dates de téléversement.

Exempter les mises à jour de sécurité : un délai de carence ne doit pas retarder les correctifs. Dependabot et Renovate le contournent par défaut pour les mises à jour de sécurité, et les gestionnaires de paquets connaissent des listes d’exceptions (min-release-age-exclude, minimumReleaseAgeExclude, minimumReleaseAgeExcludes, exclude-newer-package). PyPI conseille de coupler les délais de carence à des analyses de vulnérabilités.

Lockfiles, revue, proxy, provenance

Dans la CI et les environnements d’agents, n’installer que de manière reproductible : npm ci, pnpm install --frozen-lockfile, pip avec --require-hashes. Dans le cas LiteLLM, selon PyPI, environ 40 à 50 % des installations effectuées pendant la fenêtre d’attaque n’étaient pas épinglées. L’OWASP décrit le cas d’un agent qui régénère un lockfile à partir de spécifications non épinglées et récupère une version mineure compromise – toute nouvelle dépendance et toute modification du lockfile nécessitent donc une approbation nominative lors de la revue des dépendances. Techniquement, un proxy de registre interne doté d’une liste d’autorisation permet de l’imposer ; le BSI et l’ANSSI recommandent une liste d’autorisation des paquets permis. Une simple vérification d’existence ne suffit pas : l’attaquant peut avoir enregistré le nom au préalable (Spracklen et al.).

npm audit signatures vérifie les signatures du registre et les attestations de provenance (à partir de npm 9.5.0) ; depuis le 14 novembre 2024, PyPI prend en charge les attestations selon la PEP 740, que pip et uv ne vérifient pas automatiquement selon Trail of Bits. Les deux attestent l’origine, pas l’innocuité : les paquets malveillants de TanStack et de Miasma portaient eux aussi une provenance ou des signatures valides (voir chapitre 4). C’est utile comme contrôle supplémentaire, mais inadapté comme unique critère d’approbation.

Ancrage réglementaire : la recommandation juridiquement non contraignante de l’ENISA sur les gestionnaires de paquets (10 mars 2026) préconise des registres officiels et vérifiables, des lockfiles et des contrôles d’intégrité dans la CI/CD. Le Grundschutz++ prévoit, en tant qu’exigences SOLLTE, d’interdire les artefacts externes provenant de sources inconnues, de tester leur intégrité et de vérifier les mises à jour de sécurité (DEV.4.2, DEV.4.4, DEV.4.5) ; le Kompendium 2023 exige des sources fiables et l’examen des composants inconnus (CON.8.A6, CON.8.A20). L’art. 21(2)(d) NIS2 et le § 30, al. 2, phrase 2, n° 4 BSIG exigent la sécurité de la chaîne d’approvisionnement ; à partir du 11 décembre 2027, les fabricants soumis au CRA sont tenus à l’obligation de diligence pour les composants tiers en vertu de l’art. 13(5) – expressément aussi pour l’open source.

12Réglementation

Ce qu’exigent le CRA, NIS2, DORA et l’AI Act

Qui est responsable lorsqu’un agent d’IA installe un paquet malveillant ? En premier lieu l’entreprise qui intègre ou exploite le composant, pas le registre. Ce qui relève aujourd’hui d’une obligation, ce qui ne s’applique qu’à partir du 11 décembre 2027 et ce qui n’est qu’une ligne directrice.

Le CRA, NIS2 et DORA adoptent une approche similaire : est responsable celui qui intègre le composant ou exploite le système (appréciation de VamiSec). Pour le Cyber Resilience Act (CRA), l’exemple 34 des lignes directrices de la Commission C(2026) 5252 du 27 juillet 2026 l’illustre : un développeur individuel qui publie une bibliothèque open source libre dans un dépôt public de paquets, ainsi que le dépôt lui-même, n’ont aucune obligation au titre du CRA. À partir du 11 décembre 2027, l’obligation de diligence prévue à l’art. 13(5) incombe au fabricant intégrateur, selon une approche fondée sur les risques conformément au considérant 34. Les lignes directrices ne sont pas contraignantes. Que ce soit un humain ou un agent qui a choisi le paquet n’y change rien (appréciation de VamiSec).

Cyber Resilience Act : obligation de notification depuis 2026, obligation de diligence à partir de 2027

  • Obligation depuis le 11 septembre 2026 (art. 14(1)–(2)) : notifier les vulnérabilités activement exploitées via la Single Reporting Platform (SRP) au CSIRT et à l’ENISA — alerte précoce sous 24 h, notification sous 72 h, rapport final au plus tard 14 jours après la mise à disposition d’une mesure corrective ; y compris pour les produits déjà sur le marché.
  • Obligation à partir du 11 décembre 2027 : diligence à l’égard des composants tiers, y compris les logiciels libres et open source (art. 13(5)), signalement des vulnérabilités des composants à leur fabricant ou mainteneur (par. 6), aucune livraison de produits présentant des vulnérabilités exploitables connues (annexe I, partie I, point 2, a)).
  • SBOM : l’annexe I, partie II, point 1, exige au minimum les dépendances de premier niveau ; seule la BSI TR-03183-2 v2.1.0 exige une résolution récursive — bonne pratique, pas une obligation du CRA. Le CRA n’impose aucun format tel que CycloneDX ou SPDX ; aucun acte d’exécution à ce sujet (art. 13(24), disposition facultative) ne figure dans la liste de la Commission (état : 27 juillet 2026).
  • Amendes (art. 64(2)) : en cas d’infraction à l’annexe I, à l’art. 13 ou 14, jusqu’à 15 millions d’euros ou 2,5 % du chiffre d’affaires annuel mondial, le montant le plus élevé étant retenu.

NIS2 et BSIG : chaîne d’approvisionnement et développement comme mesures minimales

NIS2 exige la sécurité de la chaîne d’approvisionnement (art. 21(2)(d)) ainsi que la sécurité dans l’acquisition, le développement et la maintenance (point e)). L’art. 21(3), selon lequel les entités tiennent également compte, dans le choix des mesures relatives à la chaîne d’approvisionnement, des procédures de développement sécurisé de leurs fournisseurs directs, ne figure pas littéralement dans le BSIG ; il peut être mobilisé par le biais d’une interprétation conforme à la directive. En Allemagne, le § 30, al. 2, phrase 2, n° 4 et 5 BSIG s’applique depuis le 6 décembre 2025 ; l’organe de direction met en œuvre, supervise et engage sa responsabilité en cas de manquement fautif selon le droit des sociétés (§ 38 BSIG, art. 20 NIS2). Pour des mesures manquantes ou non documentées, le § 65 prévoit jusqu’à 10 millions d’euros (entités essentielles) ou 7 millions d’euros (entités importantes) et, pour un chiffre d’affaires total supérieur à 500 millions d’euros, jusqu’à 2 % ou 1,4 % du chiffre d’affaires total. Le règlement d’exécution (UE) 2024/2690 n’est contraignant que pour les types d’entités énumérés à son art. 1, comme les fournisseurs de services cloud, de centres de données et de services gérés ; pour toutes les autres, il sert de référence.

DORA : les ancrages précis se trouvent dans le RTS

Depuis le 17 janvier 2025, DORA exige que les modifications des systèmes de TIC soient enregistrées, testées, évaluées, approuvées, mises en œuvre et vérifiées (art. 9(4)(e)), et laisse aux entités financières l’entière responsabilité en matière de services TIC (art. 28(1)). Pour les bibliothèques obtenues librement, le RTS 2024/1774 est plus précis (cadre complet, titre II) : suivre les bibliothèques utilisées pour des fonctions critiques ou importantes (art. 10(2)(d)), revues de code avec tests statiques et dynamiques (art. 16(3)), tester les progiciels au plus tard lors de l’intégration (par. 4), protéger l’intégrité du code source (par. 7), examiner le code open source avant la mise en production, dans la mesure du possible (par. 8), séparer l’approbation et la mise en œuvre des modifications (art. 17(1)). Un agent qui fusionne ses propres pull requests ne cadre pas avec ces exigences (appréciation de VamiSec).

AI Act et responsabilité du fait des produits

Au sens de l’AI Act, un assistant de codage n’est généralement pas un système à haut risque, car le développement logiciel ne figure pas à l’annexe III. Pour les entreprises déployeuses, l’art. 4 demeure : depuis le Digital Omnibus (règlement (UE) 2026/1744, en vigueur depuis le 27 juillet 2026), elles doivent prendre des mesures de soutien à la maîtrise de l’IA, sans devoir garantir un niveau. Les obligations relatives aux modèles d’IA à usage général (GPAI) incombent aux fournisseurs de modèles, pas aux utilisateurs. En vertu de la directive sur la responsabilité du fait des produits (UE) 2024/2853, un logiciel est un produit ; pour les produits mis sur le marché après le 9 décembre 2026, le fabricant est responsable envers les personnes physiques y compris des composants défectueux intégrés sous son contrôle, et l’absence de mises à jour de sécurité ne l’exonère pas. La directive produit ses effets via le droit national ; au 8 octobre 2026, la promulgation du projet de loi du gouvernement allemand (BT-Drs. 21/4297) n’a pas pu être vérifiée.

TexteRéférenceCe que cela signifie pour les dépendances choisies par l’IADate d’application
CRA · obligationart. 14(1)–(2)Notifier dans les délais les vulnérabilités activement exploitées via la SRP11 septembre 2026
CRA · obligationart. 13(5) ; annexe I, partie II, point 1Diligence fondée sur les risques pour chaque composant tiers intégré ; SBOM au minimum de premier niveau11 décembre 2027
NIS2 / BSIG · obligationart. 21(2)(d), (e) ; § 30, al. 2, phrase 2, n° 4, 5 BSIGChaîne d’approvisionnement et développement comme mesures minimales documentées6 décembre 2025
Règlement d’exécution 2024/2690 · obligation pour les entités énuméréesannexe, points 5.1.2 a), 6.1.2 c), 6.2, 6.6.1 c), 6.9Environnement de développement sécurisé, contrôle d’intégrité, protection contre les logiciels malveillantsen vigueur depuis 2024
DORA · obligationart. 9(4)(e), art. 28(1) ; RTS 2024/1774 art. 10(2)(d), art. 16, art. 17(1) (titre II)Une nouvelle dépendance en tant que modification testée et approuvée séparément17 janvier 2025
AI Act · obligationart. 4 tel que modifié par le règlement (UE) 2026/1744Promouvoir la maîtrise de l’IA, sans garantie de niveau2 février 2025 ; nouvelle version depuis le 27 juillet 2026
Responsabilité du fait des produits · après transpositiondirective (UE) 2024/2853, art. 8(1), art. 11(2)Responsabilité envers les personnes physiques, y compris pour les composants intégrésproduits mis sur le marché après le 9 décembre 2026

Colonne 3 : appréciation de VamiSec. Seuls les textes juridiques sont contraignants ; les lignes directrices de la Commission et les documents de l’ENISA et du BSI ne le sont pas. État : 8 octobre 2026.

Lignes directrices : une orientation non contraignante

  • ENISA, Secure Use of Package Managers (10 mars 2026) : mentionne expressément le slopsquatting et recommande de rendre visibles les paquets choisis par l’IA et de les vérifier automatiquement dans la CI/CD.
  • ENISA, AI-assisted software development (projet v0.4, septembre 2026) : paquets hallucinés, skills et fichiers d’instructions introduits subrepticement — pas encore définitif.
  • BSI et ANSSI, AI Coding Assistants (4 octobre 2024) : les hallucinations de paquets comme voie vers la « package confusion » ; contrôle de plausibilité, liste d’autorisation, sandboxing.
  • BSI Grundschutz++ DEV.4.2 à DEV.4.5 (exigences SOLLTE) : interdire les artefacts provenant de sources peu fiables ou inconnues, y compris les paquets et les modèles ; SBOM, tests d’intégrité. Kompendium 2023 : CON.8.A6, CON.8.A20.
13Mise en œuvre

Le plan à 90 jours et les indicateurs

Trois phases de 30 jours : d’abord voir, puis mettre en place des points de rupture, enfin imposer et mesurer. S’y ajoutent dix indicateurs avec des valeurs cibles recommandées par VamiSec, ainsi que des preuves que vous pouvez présenter aux auditeurs.

Le plan est une recommandation VamiSec et suit la chaîne d’attaque : vous commencez par créer de la visibilité et combler les lacunes évidentes, puis vous mettez en place des points de rupture aux étapes 04 Résolution et 05 Exécution, et enfin vous rendez les règles contraignantes et mesurables. Le point de départ est un état des lieux honnête, par exemple avec l’autoévaluation proposée sur cette page. Les entreprises réglementées commencent par ce qui s’applique déjà : obligations de notification du CRA depuis le 11 septembre 2026, mesures du BSIG depuis le 6 décembre 2025, DORA depuis le 17 janvier 2025.

PhaseMesuresResponsableRésultat
Jours 1–30 : visibilité et mesures immédiatesInventaire de tous les outils de codage IA, agents, serveurs MCP et skills avec leurs droits ; désactiver de manière centralisée les modes d’approbation automatique ; désactiver les scripts d’installation dans la CI et les environnements d’agents (npm : ignore-scripts, --allow-git=none, --allow-remote=none) ; configurer un délai de carence dans les gestionnaires de paquets et les bots de mise à jour ; recenser les tokens à longue durée de vie et en effectuer la rotationRSSI avec le responsable AppSec ; équipe plateformeInventaire avec responsables, valeurs de départ des indicateurs, configuration immédiate versionnée
Jours 31–60 : mettre en place les points de ruptureProxy de registre avec liste d’autorisation, accès direct au registre bloqué depuis les builds et les agents ; installation uniquement à partir du lockfile ; revue des dépendances avec approbation nominative des nouveaux paquets ; agents dans des environnements isolés avec liste d’autorisation pour l’egress ; serveurs MCP et skills uniquement approuvés et épinglés ; publication via Trusted PublishingÉquipes plateforme et DevOps ; responsable AppSecPoints de rupture à la résolution et à l’exécution, architecture de référence du sandbox des agents
Jours 61–90 : imposer et mesurerAdopter la politique relative aux outils de codage IA ; contrôles rendus obligatoires dans la protection des branches ; journaliser de manière centralisée les actions des agents ; red teaming avec injection de prompt et fichiers de règles piégés ; exercice d’incident avec rotation des tokens et circuit de notification CRA ; premier rapport d’indicateursHead of Engineering avec le RSSI ; approbation par l’organe de directionPolitique approuvée, compte rendu d’exercice, rapport d’indicateurs à l’organe de direction

Les phases, les responsables et l’ordre constituent une recommandation VamiSec. npm : --allow-git à partir de 11.10.0, --allow-remote à partir de 11.15.0 ; dans npm v12 (8 juillet 2026), les deux sont réglés sur none par défaut, et les scripts d’installation des dépendances ne s’exécutent qu’après approbation.

Dix indicateurs avec valeurs cibles

Mesurez ce qui interrompt réellement la chaîne, et non le nombre de formations. Les valeurs cibles sont des recommandations VamiSec, pas des seuils réglementaires ; la plupart peuvent être collectées automatiquement à partir des logs du proxy, de la configuration CI et de la configuration centrale des agents. s1ngularity montre à quel point les modes sans confirmation sont risqués : selon Wiz, le logiciel malveillant appelait les CLI d’IA installées localement avec des options comme --dangerously-skip-permissions et --yolo afin d’inventorier les secrets. Faites un rapport trimestriel à l’organe de direction ; dans les entités NIS2, celui-ci doit de toute façon superviser la mise en œuvre des mesures en vertu du § 38 BSIG.

IndicateurSource de mesureValeur cible (recommandation VamiSec)
Part des builds qui obtiennent les paquets uniquement via le proxy de registreLogs du proxy et du pare-feuJour 90 : ≥ 95 %, ensuite 100 %
Part des dépôts avec délai de carence actifAnalyse de la configuration des gestionnaires de paquets et des bots de mise à jour≥ 90 %, âge minimal ≥ 3 jours, mises à jour de sécurité exceptées
Part des jobs CI qui installent uniquement à partir du lockfileConfiguration CI (npm ci, --frozen-lockfile, --require-hashes)100 %
Part des builds et environnements d’agents dans lesquels les scripts d’installation ne s’exécutent qu’après approbationConfiguration des gestionnaires de paquets, liste d’autorisation100 %
Part des nouvelles dépendances avec approbation documentéeHistorique des pull requests, revue des dépendances100 %
Agents en mode d’approbation automatique ou YOLOConfiguration centrale des agents, analyse des terminaux0
Part des agents dans un environnement isolé avec liste d’autorisation pour l’egressInventaire, politiques réseau100 % en CI, ≥ 80 % sur les postes de travail
Part des extensions d’agents épinglées et approuvées (serveurs MCP, skills, plugins)AI-BOM, liste d’autorisation100 %
Délai médian jusqu’à la rotation des tokens concernés après un signalement de compromissionTickets d’incident, gestionnaire de secrets≤ 24 h
Tokens de publication et de CI à longue durée de vieInventaire des tokens pour npm, PyPI et la CI0, publication uniquement via Trusted Publishing

Sur l’âge minimal : après l’incident axios, la CISA a recommandé min-release-age=7 (jours), après l’incident Nx Console au moins trois heures ; depuis le 14 juillet 2026, Dependabot attend par défaut 3 jours pour les mises à jour de version, pnpm 11 un jour par défaut — recommandations et valeurs par défaut ne sont pas harmonisées. Trusted Publishing remplace les tokens à longue durée de vie, mais ne prouve pas que le code est bénin (TanStack et Miasma 2026).

Preuves pour les auditeurs

  • Inventaire des outils de codage IA, agents, serveurs MCP et skills avec responsable, version et droits (AI-BOM)
  • Politique relative aux outils de codage IA, approuvée par l’organe de direction (art. 20(1) NIS2 ; mise en œuvre et supervision selon le § 38 BSIG)
  • Configuration versionnée du proxy, des gestionnaires de paquets, des bots de mise à jour et des règles d’egress — le § 30, al. 1 BSIG exige de documenter le respect des mesures
  • Journaux d’approbation des nouvelles dépendances et extensions d’agents issus de l’historique des pull requests, avec approbation humaine des modifications effectuées par les agents (pour les entités financières soumises à DORA : séparation des fonctions selon l’art. 17(1) RTS 2024/1774)
  • SBOM par release : au minimum les dépendances de premier niveau (CRA, annexe I, partie II, point 1, à partir du 11 décembre 2027), de préférence récursive selon la BSI TR-03183-2 v2.1.0
  • Preuves de test des progiciels au plus tard lors de la phase d’intégration (art. 16(4) RTS 2024/1774) et rapport de red teaming des agents
  • Playbook d’incident avec liste de rotation des tokens et circuits de notification selon l’art. 14 CRA (24 h / 72 h / 14 jours), accompagné du compte rendu d’exercice
  • Rapport trimestriel d’indicateurs à l’organe de direction
Autoévaluation · env. 10 minutes

Agents de codage et chaîne d’approvisionnement : évaluation de maturité

29 questions réparties en six dimensions : les cinq couches pour les agents de codage plus l’hygiène des dépendances. Votre profil détermine le niveau cible et les textes réglementaires pertinents. Le résultat montre à quelle étape vos contrôles interrompent la chaîne d’attaque, vos principales lacunes avec une feuille de route et les preuves attendues par les auditeurs.

0 / 29 questions traitées

00 / 06Profil

Trois questions sur votre contexte. Elles déterminent le niveau cible, masquent les questions non pertinentes et affichent dans l’évaluation les textes réglementaires qui s’appliquent à vous.

  1. Quel rôle s’applique à votre entreprise ?

    Choix multiple. Le rôle détermine le niveau cible et les textes réglementaires pris en compte dans l’évaluation.

  2. Quels outils de codage IA utilisez-vous ?

    Les questions sur l’accès au terminal et sur les approbations ne sont posées que si des agents sont utilisés.

  3. Quels écosystèmes de paquets utilisez-vous ?

Niveau cible3 — Imposé et mesuré

En tant que fabricant CRA, entité NIS2 ou entité financière, vos contrôles devraient être imposés et mesurés — votre objectif est le niveau 3. Sans indication, le niveau 3 s’applique également.

Livre blanc gratuit

« Slopsquatting & Coding-Agenten für CISOs » — sécuriser la chaîne d’approvisionnement logicielle IA

Le livre blanc (en allemand) traduit la situation du typosquatting et du slopsquatting ainsi que le modèle à cinq couches pour les agents de codage en un programme pour les RSSI, l’AppSec et les équipes plateforme : de l’état des lieux aux obligations, à la feuille de route et au catalogue d’audit, en passant par les contrôles du harness et la configuration de référence.

Couverture du livre blanc VamiSec « Slopsquatting & Coding-Agenten für CISOs » (en allemand)
48 pagesPDF, gratuitAllemandMise à jour : 10/2026
  • Synthèse managériale, page pour le comité de direction et dix messages clés — obligation, pratique et recommandation clairement séparées
  • Chaîne d’attaque en sept étapes, carte du harness avec cas documentés et CVE, cinq couches avec preuves
  • Configuration de référence pour npm, pnpm, Yarn, Bun, pip et uv ainsi que matrice des obligations CRA, NIS2/BSIG, DORA et AI Act
  • Plan à 90 jours, ensemble de KPI, RACI, modèle de politique pour les agents de codage, bloc de sécurité AGENTS.md et 30 questions d’audit
Téléchargement gratuit

Demander un livre blanc

Slopsquatting et agents de codage pour les RSSI — sécuriser la chaîne d’approvisionnement logicielle IA

Ce que contient le livre blanc « Slopsquatting & Coding-Agenten für CISOs » (en allemand)

État des lieux et chaîne d’attaque

Synthèse managériale en dix messages clés, état de la recherche sur les hallucinations de paquets présenté avec honnêteté, dossiers de cas de crossenv à Mini Shai-Hulud et chaîne d’attaque en sept étapes avec tous les points de rupture.

Cinq couches pour le harness

Visibilité, contrôle, validation, surveillance et gouvernance, chacune avec objectifs de contrôle, étapes de mise en œuvre, preuves et lien avec l’OWASP Agentic Top 10, le LLM Top 10 et les CVE documentées.

Configuration de référence

Délai de carence, scripts d’installation, lockfile et proxy pour npm, pnpm, Yarn, Bun, pip et uv — avec les valeurs par défaut en vigueur en octobre 2026 et des exemples de configuration prêts à l’emploi.

Obligations, plan et modèles

Matrice des obligations CRA, NIS2/BSIG, DORA, AI Act et responsabilité du fait des produits, plan à 90 jours, ensemble de KPI, RACI, modèle de politique pour les agents de codage, bloc de sécurité pour AGENTS.md et 30 questions d’audit pour la révision interne et l’audit.

Pour aller plus loin

Contrôle à l’exécution : comment l’Agent Control Standard vérifie les appels d’outils avant leur exécution

La surveillance en dehors du modèle est au cœur de la quatrième couche — et c’est précisément là qu’intervient l’OWASP Agent Control Standard : chaque étape d’un agent est soumise via des hooks à un Guardian Agent avant d’être exécutée, et celui-ci tranche avec l’une de cinq dispositions. Une liste d’autorisation de paquets devient ainsi une règle que même un agent ne peut pas contourner. Notre dossier ACS explique les hooks, les dispositions et la failure posture ; le framework de HiddenLayer renvoie à la source primaire des cinq couches.

19 hooks16 hooks de cycle de vie et 3 hooks de skills dans l’ACS
5 dispositionsallow, deny, modify, ask, defer
5 couchesDe la visibilité à la gouvernance, selon HiddenLayer
  • Les installations de paquets par un agent peuvent être interceptées comme appels d’outils et vérifiées au regard de la liste d’autorisation.
  • Si la décision du Guardian fait défaut, la failure posture détermine si l’agent est bloqué ou poursuit.
  • Chaque décision est journalisée — preuve pour les auditeurs et base de la surveillance.

L’Agent Control Standard est un projet OWASP à un stade précoce (spécification v0.1.0, release 0.1.2) ; l’implémentation de référence est une preuve de concept.

Glossaire

Les termes clés du slopsquatting et des agents de codage

24 termes, d’Agent Harness à Typosquatting, expliqués brièvement et au plus près des sources.

Slopsquatting
Enregistrement d’un nom de paquet inventé par des modèles d’IA, afin de capter des installations effectuées par des développeurs ou des agents de codage. Le terme est attribué à Seth Larson (Python Software Foundation) et a été popularisé en avril 2025 par Andrew Nesbitt.
Typosquatting
Enregistrement de noms de paquets qui ne se distinguent de paquets populaires que par des fautes de frappe ou des confusions, comme reqjuests ou tensoflom, issus d’une campagne PyPI de plus de 500 paquets (Check Point 2024).
Combosquatting
Technique apparentée au typosquatting : un nom connu est combiné, sans faute de frappe, avec des ajouts comme « setup », « helper » ou « utils », afin que le paquet ressemble à un outil complémentaire officiel. Des noms comme opensearch-setup ou elastic-opensearch-helper, issus du cas décrit par Microsoft en mai 2026, suivent ce schéma ; Microsoft parle lui-même de typosquatting.
Package Hallucinationhallucination de paquet
Un modèle de langage suggère une dépendance qui n’existe pas dans le registre. Chez Spracklen et al., cela concernait 19,7 % de 2,23 millions de références de paquets ; l’OWASP classe ce risque sous LLM09 Misinformation.
Package Confusion
Terme générique désignant les attaques qui incitent à installer un mauvais paquet, par exemple au moyen de noms similaires comme dans le typosquatting. À la suite de Spracklen et al., le BSI et l’ANSSI (2024) décrivent comment des hallucinations de paquets peuvent conduire à de telles attaques lorsque des attaquants enregistrent des paquets sous des noms hallucinés. Cette variante est aujourd’hui le plus souvent appelée slopsquatting.
Dependency Confusion
Un gestionnaire de paquets charge, à la place d’un paquet interne, un paquet public homonyme publié par un attaquant. Les contre-mesures sont des associations fixes de registre pour les espaces de noms internes et un proxy de registre.
Agent HarnessHarness
La couche d’exécution autour du modèle : prompt système, fichiers de règles, outils, skills, serveurs MCP et logique d’orchestration. Selon HiddenLayer, elle constitue la véritable surface d’attaque des agents de codage.
Agent de codageAI Coding Agent
Outil d’IA qui ne se contente pas de suggérer du code, mais modifie de manière autonome des fichiers, exécute des commandes de terminal, installe des paquets et crée des pull requests, comme Claude Code, Cursor ou GitHub Copilot en mode agent.
Serveur MCPModel Context Protocol
Service qui met à la disposition d’un agent des outils et des sources de données via le Model Context Protocol. Chaque serveur MCP est un composant de la chaîne d’approvisionnement : selon Koi Security (rapporté par The Register), à partir de la version 1.0.16, le paquet npm non officiel postmark-mcp ajoutait une adresse de l’attaquant en copie cachée de chaque e-mail sortant.
Tool Poisoning
Instructions cachées dans la description d’un outil MCP, invisibles pour les utilisateurs mais suivies par le modèle. Invariant Labs a montré en 2025 comment un outil d’apparence anodine amenait l’agent à lire et à transmettre des clés SSH et des fichiers de configuration.
Rug Pull
Un serveur MCP ou une configuration déjà approuvés changent après coup, par exemple la description de l’outil ou la commande lancée. Contre-mesure : épingler les versions et soumettre chaque modification à une nouvelle approbation, comme Cursor l’a mis en œuvre après la CVE-2025-54136 (MCPoison).
Agent SkillSkill
Ensemble d’instructions et, le cas échéant, de scripts qui ajoute une capacité à un agent et provient de places de marché ou de dépôts. En 2026, Snyk a relevé au moins un problème critique dans 534 des 3 984 skills examinés (13,4 %).
Rules File Backdoor
Technique décrite par Pillar Security en 2025, dans laquelle des caractères Unicode invisibles dissimulent des instructions dans les fichiers de règles de Cursor ou de GitHub Copilot. Les humains ne les voient pas lors de la revue, le modèle les suit.
Injection de promptLLM01
Instructions introduites qu’un modèle traite comme une commande plutôt que comme des données. Chez les agents de codage, elle est souvent indirecte : via des fichiers README, des issues, des sorties d’outils ou des pages web que l’agent lit.
Script de cycle de viepreinstall, install, postinstall
Script du package.json que npm exécute automatiquement lors de l’installation. De nombreux paquets npm malveillants l’utilisent, par exemple Shai-Hulud 2.0 avec un hook preinstall ; npm v12 n’exécute par défaut de tels scripts des dépendances qu’après approbation.
Lockfile
Fichier qui consigne les versions exactes résolues et les sommes de contrôle de toutes les dépendances, comme package-lock.json, pnpm-lock.yaml ou pylock.toml. Si la CI installe uniquement à partir de celui-ci, aucun nouveau nom de paquet n’entre dans le build sans modification visible du lockfile.
Dependency Cooldowndélai de carence, âge minimal des versions
Âge minimal d’une version de paquet avant qu’elle ne soit installée ou proposée comme mise à jour. Intercepte les versions malveillantes fraîchement publiées, mais pas les noms qu’un attaquant a enregistrés tôt.
Proxy de registredépôt d’artefacts interne
Cache interne entre les développeurs, les builds et les registres publics, qui réplique les paquets et, exploité avec une liste d’autorisation, ne délivre que les paquets approuvés. Du point de vue de VamiSec, un point de rupture central contre le slopsquatting, car un nom inventé ne figure pas sur la liste d’autorisation.
Trusted Publishingpublication OIDC
Publication de paquets depuis la CI au moyen d’identités OIDC à courte durée de vie au lieu de tokens d’API à longue durée de vie, disponible notamment sur PyPI (depuis 2023) et npm (depuis juillet 2025). Elle remplace des tokens à longue durée de vie susceptibles d’être volés, mais ne protège pas contre un pipeline compromis, comme chez TanStack en mai 2026.
Provenancepreuve d’origine, attestation
Preuve signée indiquant de quel dépôt et de quel build provient un paquet. Elle atteste l’origine, pas l’innocuité : chez TanStack et Miasma en 2026, des paquets malveillants portaient une provenance valide.
SBOMSoftware Bill of Materials
Nomenclature lisible par machine de tous les composants d’un logiciel, par exemple au format CycloneDX ou SPDX. À partir du 11 décembre 2027, le CRA exige au minimum les dépendances de premier niveau, sans imposer de format ; la BSI TR-03183-2 exige une résolution récursive.
AI-BOMAIBOM
Nomenclature des composants d’IA : modèles, agents, serveurs MCP, skills, plugins et prompts, avec leur origine et leur version. Sous ASI04, l’OWASP cite la SBOM et l’AIBOM comme contre-mesures aux risques de la chaîne d’approvisionnement des systèmes agentiques.
Least Agency
Principe issu de l’OWASP Top 10 for Agentic Applications 2026 : n’accorder aux agents que l’autonomie qu’exige la tâche. Il étend le moindre privilège à la question de ce qu’un agent peut décider de manière autonome.
Contrôle de l’egressEgress Filtering
Limitation du trafic réseau sortant aux destinations approuvées selon le principe du refus par défaut (deny by default). Pour les agents et les builds, il rend plus difficile l’exfiltration de données par du code malveillant vers des destinations tierces ou le chargement de paquets en contournant la liste d’autorisation ; des canaux passant par des destinations approuvées comme GitHub restent possibles.
FAQ

Questions fréquentes sur le slopsquatting et les agents de codage

Des réponses courtes et fiables, avec leurs sources — état au 8 octobre 2026.

Le slopsquatting est une attaque de la chaîne d’approvisionnement dans laquelle un attaquant enregistre un nom de paquet inventé par des modèles d’IA, afin que des développeurs ou des agents de codage installent le paquet malveillant. Le terme est attribué à Seth Larson, de la Python Software Foundation, et a été popularisé le 8 avril 2025 par Andrew Nesbitt, en substance comme la variante IA du typosquatting. Le fondement est l’étude de Spracklen et al. (USENIX Security 2025) : sur 2,23 millions de références de paquets figurant dans 576 000 échantillons de code issus de 16 modèles, 19,7 % étaient hallucinées. Point important pour la mise en perspective : aucun cas publiquement documenté n’est connu à ce jour dans lequel un attaquant aurait enregistré de manière malveillante un nom dont l’hallucination est prouvée et où des victimes l’auraient installé à la suite d’une suggestion d’IA.

Le typosquatting mise sur les fautes de frappe humaines et la confusion avec des noms connus, le slopsquatting sur des noms qu’un modèle d’IA invente. En 2024, Check Point a documenté plus de 500 paquets PyPI malveillants portant des noms comme reqjuests ou tensoflom ; le 28 mai 2026, Microsoft a décrit 14 paquets npm apparus en quatre heures. Dans les deux cas, il s’agit de typosquatting, pas de slopsquatting. Les noms hallucinés, en revanche, ne sont souvent pas des fautes de frappe : chez Spracklen et al., seuls 13,4 % des noms Python inventés se trouvaient à deux modifications au plus d’un paquet réel, 48,6 % à six ou plus. Une détection fondée sur la similarité des noms est donc insuffisante. De nombreuses contre-mesures sont efficaces contre les deux attaques : proxy de registre avec liste d’autorisation, délai de carence, lockfiles et scripts d’installation désactivés.

Selon le modèle et l’étude, pour quelques pour cent à plus d’un cinquième des paquets suggérés. Spracklen et al. (USENIX Security 2025) ont mesuré au total 19,7 % de références de paquets hallucinées, en moyenne 5,2 % pour les trois modèles commerciaux d’OpenAI testés et 21,7 % pour les modèles open source. Beaucoup d’erreurs sont reproductibles : lors de tests répétés, 43 % des noms inventés sont réapparus dans les dix exécutions, 39 % jamais. Une prépublication de Churilov (2026), non évaluée par des pairs, obtient 4,62 à 6,10 % pour cinq modèles actuels. Un test rapide publié sur dev.to le 6 octobre 2026 avec 30 prompts npm a relevé deux noms inventés chez Claude Haiku 4.5, un chez Copilot et trois chez ChatGPT/Codex — selon l’auteur, un signal, pas un verdict.

Aucun cas malveillant publiquement documenté n’est connu à ce jour (état au 8 octobre 2026). Il est toutefois établi que des noms inventés sont réellement installés : pour une expérience publiée en 2024, Bar Lanyado a téléversé sur PyPI un paquet vide sous le nom huggingface-cli, halluciné de manière répétée ; selon Lasso Security, il a été téléchargé plus de 30 000 fois en trois mois. En 2026, Aikido a trouvé dans des Agent Skills générés par IA l’appel npx react-codeshift, qui renvoyait à un paquet npm jamais publié et était diffusé dans au moins 237 dépôts, et a enregistré le nom à titre défensif. Les deux paquets étaient des espaces réservés inoffensifs. Koi Security a rattaché des campagnes comme PhantomRaven au slopsquatting, sans publier de preuves qu’une IA ait suggéré les noms. Le risque est réel, mais aucun dommage n’est publiquement documenté à ce jour.

Par plusieurs contrôles dont le cœur est, du point de vue de VamiSec, un proxy de registre interne avec liste d’autorisation : un nom inventé ou mal orthographié n’y figure pas et ne peut pas être installé. Complétez par un âge minimal pour les nouvelles versions (npm min-release-age en jours à partir de la version 11.10.0, pnpm minimumReleaseAge en minutes, uv exclude-newer, pip --uploaded-prior-to), des installations uniquement à partir du lockfile, des scripts d’installation désactivés et une revue des dépendances dans la pull request. Depuis le 8 juillet 2026, npm v12 n’exécute par défaut les scripts d’installation des dépendances qu’après approbation. Pour vos propres paquets : publication via Trusted Publishing plutôt qu’avec un token ; les tokens npm en écriture expirent par défaut au bout de 7 jours, au plus tard au bout de 90 jours. La provenance atteste l’origine d’un paquet, pas son innocuité.

Le harness englobe tout ce qui constitue un agent de codage autour du modèle de langage : prompt système, fichiers de règles, outils, skills, serveurs MCP et la logique d’orchestration qui coordonne les appels au modèle, les appels d’outils et les flux de travail. Dans son cadre du 28 juillet 2026, HiddenLayer soutient que c’est ce harness, et non le modèle, qui constitue la véritable surface d’attaque ; la cause des attaques serait une confiance mal placée. Des cas documentés le confirment : instructions cachées dans des fichiers de règles (Rules File Backdoor, Pillar Security 2025), descriptions d’outils de serveurs MCP manipulées (Invariant Labs 2025) ou une injection de prompt qui désactivait la demande de confirmation dans GitHub Copilot (CVE-2025-53773, CVSS 3.1 : 7,8).

Les cinq couches proviennent du cadre de HiddenLayer (28 juillet 2026) : Visibilité, Contrôle, Validation, Surveillance et Gouvernance. La visibilité consiste à connaître chaque agent, modèle, outil, serveur MCP et skill ainsi que leurs droits, y compris l’IA fantôme. Le contrôle limite les dommages : droits minimaux, approbation humaine pour les actions lourdes de conséquences, uniquement des outils approuvés, trafic réseau sortant restreint. La validation vérifie avant d’accorder la confiance : red teaming, examen des outils tiers y compris de leurs métadonnées cachées, approbation de versions précises plutôt que « latest ». La surveillance s’exerce en dehors du modèle. La gouvernance ancre les responsables, les modèles de menaces et la réponse aux incidents. Dans l’autoévaluation, VamiSec ajoute l’hygiène des dépendances comme sixième dimension.

Non. ignore-scripts empêche npm d’exécuter les scripts de cycle de vie des paquets lors de l’installation et ferme ainsi une voie d’exécution fréquente, par exemple les hooks d’installation dans le cas décrit par Microsoft le 28 mai 2026. Trois lacunes subsistent : les dépendances Git peuvent apporter leur propre .npmrc, qui remplace le chemin vers le programme Git et exécute du code malgré ignore-scripts (contre-mesure : --allow-git=none à partir de npm 11.10.0) ; les dépendances URL chargent du code depuis des serveurs arbitraires (--allow-remote=none à partir de npm 11.15.0) ; et le code malveillant qui ne s’exécute qu’à l’import ou au démarrage de l’interpréteur n’est pas un script de cycle de vie, comme le fichier .pth de litellm 1.82.8. Combinez donc cette option avec un proxy de registre, un délai de carence et des environnements de build et d’agents isolés.

À partir du 11 décembre 2027, le CRA exige que les fabricants fassent preuve de la diligence requise lors de l’intégration de composants tiers, expressément aussi pour les logiciels libres et open source (art. 13(5)). L’étendue de cette diligence dépend du risque ; le considérant 34 cite par exemple l’examen de l’historique des mises à jour, la vérification dans la base de données européenne des vulnérabilités et des tests de sécurité supplémentaires. Selon les lignes directrices non contraignantes de la Commission C(2026) 5252 (exemple 34), le dépôt de paquets et un développeur individuel qui y publie des logiciels libres n’ont aucune obligation au titre du CRA ; la diligence incombe au fabricant intégrateur. S’y ajoutent une SBOM couvrant au minimum les dépendances de premier niveau (annexe I, partie II, point 1) et le signalement des vulnérabilités découvertes au fabricant ou au mainteneur du composant (art. 13(6)). Les obligations de notification de l’art. 14 s’appliquent déjà depuis le 11 septembre 2026.

En règle générale, non. Les systèmes à haut risque au sens de l’art. 6(2) se limitent aux domaines d’utilisation énumérés à l’annexe III, et le développement logiciel n’en fait pas partie. Il pourrait en aller autrement si un outil était utilisé, par exemple, pour évaluer les performances de salariés (annexe III, point 4, b)). Les obligations relatives aux systèmes à haut risque de l’annexe III ne s’appliquent de toute façon qu’à partir du 2 décembre 2027. Pour les entreprises qui utilisent des assistants de codage, c’est surtout l’art. 4 qui demeure : depuis le Digital Omnibus (règlement (UE) 2026/1744, en vigueur depuis le 27 juillet 2026), elles doivent prendre des mesures de soutien à la maîtrise de l’IA, sans devoir garantir un niveau déterminé. Les obligations relatives aux modèles à usage général incombent aux fournisseurs de modèles, pas aux utilisateurs.

Un délai de carence pour les dépendances (dependency cooldown) est un âge minimal qu’une nouvelle version de paquet doit avoir atteint avant d’être installée ou proposée comme mise à jour. L’idée : les versions malveillantes sont souvent découvertes et supprimées rapidement ; pnpm justifie cette fonction par le fait que cela se produit généralement en moins d’une heure. Les unités diffèrent : npm min-release-age en jours, pnpm minimumReleaseAge en minutes (par défaut 1 440, soit un jour, depuis pnpm 11), Bun en secondes, Yarn npmMinimalAgeGate sous forme de durée comme 1d, uv exclude-newer sous forme de durée, pip --uploaded-prior-to sous forme de date ou, à partir de la version 26.1, sous la forme P3D. Depuis le 14 juillet 2026, Dependabot attend par défaut trois jours pour les mises à jour de version, mises à jour de sécurité exceptées. Limite : les noms enregistrés tôt franchissent n’importe quel délai de carence.

Vous mesurez le niveau de maturité par une autoévaluation selon les cinq couches plus l’hygiène des dépendances, et au moyen de quelques indicateurs objectifs. Le VamiSec Readiness Check proposé sur cette page évalue 29 questions réparties en six dimensions sur quatre niveaux, de « inexistant » à « imposé et mesuré », et montre à quelle étape de la chaîne d’attaque vos contrôles agissent. Comme indicateurs, nous recommandons entre autres la part des builds passant par le proxy de registre, la part des dépôts avec délai de carence, le nombre d’agents en approbation automatique (objectif : zéro), le délai médian jusqu’à la rotation des tokens et la part des extensions d’agents épinglées. Communiquez les valeurs chaque trimestre à l’organe de direction.

Normes & sources

Le contenu de cette page s'appuie sur les guides et études suivants, accessibles publiquement.

ThreatLocker · 2026

How to mitigate typosquatting and slopsquatting attacks in npm and PyPI

Source de départ : contre-mesures pour npm et PyPI du 15 septembre 2026 ; blog d’éditeur.

Harsh, DEV Community · 2026

I Tested 3 AI Coding Tools for Slopsquatting. Here’s How Many Fake Packages They Invented.

Source de départ : test rapide avec 30 prompts npm du 6 octobre 2026, anecdotique et présenté par l’auteur lui-même comme un signal.

HiddenLayer · 2026

A Security Framework for Coding Agents and their Harnesses

Source de départ : cinq couches Visibilité, Contrôle, Validation, Surveillance et Gouvernance (28 juillet 2026).

Spracklen et al., USENIX Security · 2025

We Have a Package for You! A Comprehensive Analysis of Package Hallucinations by Code Generating LLMs

Étude primaire : 19,7 % (440 445 sur 2,23 millions) des références de paquets issues de 576 000 échantillons de code de 16 modèles étaient hallucinées.

Lasso Security · 2024

Diving Deeper into AI Package Hallucinations

Expérience de Bar Lanyado avec l’espace réservé huggingface-cli et plus de 30 000 téléchargements en trois mois.

Aikido Security · 2026

Agent Skills Are Spreading Hallucinated npx Commands

react-codeshift : commande npx hallucinée dans des Agent Skills générés par IA, enregistrée à titre défensif.

Churilov, arXiv · 2026

The Range Shrinks, the Threat Remains: Re-evaluating LLM Package Hallucinations on the 2026 Frontier-Model Cohort

Prépublication non évaluée par des pairs : taux d’hallucination de cinq modèles actuels et noms communs.

Microsoft Security · 2026

Typosquatted npm packages used to steal cloud and CI/CD secrets

14 paquets npm typosquattés en quatre heures le 28 mai 2026 ; typosquatting, pas slopsquatting.

Check Point · 2024

PyPI Inundated by Malicious Typosquatting Campaign

Plus de 500 paquets PyPI malveillants en mars 2024 ; typosquatting classique sans lien avec l’IA.

Wiz · 2025

s1ngularity: supply chain attack leaks secrets on GitHub: everything you need to know

Le logiciel malveillant a détourné des CLI d’IA installées localement avec des options qui contournent les confirmations.

GitHub Changelog · 2025

Strengthening npm security: Important changes to authentication and token management

Nouveaux tokens npm granulaires en écriture : durée de validité par défaut de 7 jours, maximum de 90 jours.

GitHub Changelog · 2026

npm install-time security and GAT bypass2fa deprecation

npm v12 (8 juillet 2026) : scripts d’installation des dépendances uniquement après approbation, dépendances Git et URL bloquées par défaut.

pnpm · 2026

pnpm 11.0

Nouvelles valeurs par défaut : minimumReleaseAge de 1 440 minutes (un jour), aucune sous-dépendance Git ou tarball, scripts de build uniquement après approbation (allowBuilds).

Pillar Security · 2025

New Vulnerability in GitHub Copilot and Cursor: How Hackers Can Weaponize Code Agents

Rules File Backdoor : instructions Unicode invisibles dans des fichiers de règles.

Invariant Labs · 2025

MCP Security Notification: Tool Poisoning Attacks

Définition du tool poisoning, du rug pull et du tool shadowing pour les serveurs MCP.

OWASP GenAI Security Project · 2025

OWASP Top 10 for Agentic Applications for 2026

ASI04 Agentic Supply Chain Vulnerabilities, ASI05 Unexpected Code Execution et le principe de Least Agency.

OWASP GenAI Security Project · 2024

LLM09:2025 Misinformation

Classe les bibliothèques inexistantes suggérées par les modèles parmi les risques de génération de code non sûr.

OpenSSF · 2025

Security-Focused Guide for AI Code Assistant Instructions

Guide pour des instructions d’agents sûres ; mentionne les dépendances hallucinées et le slopsquatting.

BSI et ANSSI · 2024

AI Coding Assistants

Document des autorités du 4 octobre 2024 : les hallucinations de paquets comme porte d’entrée de la package confusion, contre-mesures.

ENISA · 2026

ENISA Technical Advisory for Secure Use of Package Managers

Recommandation non contraignante du 10 mars 2026, qui désigne expressément le slopsquatting comme vecteur d’attaque.

Union européenne · 2024

Règlement (UE) 2024/2847 (Cyber Resilience Act)

Obligation de diligence pour les composants tiers (art. 13(5), à partir du 11 décembre 2027), obligations de notification (art. 14, depuis le 11 septembre 2026), SBOM (annexe I, partie II, point 1).

Commission européenne · 2026

Lignes directrices relatives à la mise en œuvre du Cyber Resilience Act, C(2026) 5252 final

Lignes directrices non contraignantes du 27 juillet 2026 ; l’exemple 34 attribue l’obligation de diligence au fabricant intégrateur.

gesetze-im-internet.de · 2025

BSIG (loi allemande sur le BSI) dans sa version issue de la NIS2UmsuCG, § 30

Mesures de gestion des risques, y compris la chaîne d’approvisionnement (al. 2, phrase 2, n° 4) ainsi que l’acquisition, le développement et la maintenance (n° 5) ; nouveau BSIG en vigueur depuis le 6 décembre 2025 (BGBl. 2025 I n° 301).

Union européenne · 2024

Règlement délégué (UE) 2024/1774 (RTS sur la gestion du risque lié aux TIC)

Précise DORA pour le cadre complet (titre II) : suivi des bibliothèques open source, tests des progiciels, gestion des modifications.

Introduire des agents de codage sans ouvrir la chaîne d’approvisionnement ?

VamiSec vous accompagne pour l’inventaire et la politique des outils de codage IA, le proxy de registre, le délai de carence et le durcissement des scripts d’installation, le sandboxing et la surveillance des agents ainsi que le red teaming d’agents de codage — en cohérence avec le CRA, NIS2 et DORA.