Aikido

La liste de contrôle pratique pour se prémunir contre attaques de la chaîne d’approvisionnement

Écrit par
Nicholas Thomson

attaques de la chaîne d’approvisionnement le vent en poupe. Les détections de logiciels malveillants open source ont bondi de 73 % en 2025. Au cours de l’année écoulée, les paquets « debug » et « chalk » ont été infectés par une porte dérobée, l’action GitHub « tj-actions » a été compromise et a introduit du code malveillant dans des milliers de pipelines, et le compte du responsable de maintenance d’axios a été piraté et utilisé pour diffuser un RAT. Des versions malveillantes ont également touché Zapier, ENS Domains, PostHog et Bitwarden CLI.

Chacune de ces attaques aurait pu être évitée grâce aux mesures de sécurité disponibles à l'époque. Les techniques utilisées par les attaquants ont fonctionné parce que la plupart des équipes n'avaient pas mis en place les mesures de défense adéquates au niveau de l'installation, dans leurs pipelines ou sur les machines de leurs développeurs. 

Cette liste de contrôle présente en détail ces mesures de protection. Elle s'adresse aux équipes d'ingénieurs qui souhaitent anticiper attaques de la chaîne d’approvisionnement.

TL;DR

La liste de contrôle de sécurité de la chaîne d’approvisionnement est un ensemble pratique de tâches classées par ordre de priorité, destinées à renforcer votre infrastructure face à la génération actuelle attaques de la chaîne d’approvisionnement. Ces tâches sont classées par niveau de gravité (critique, élevé ou moyen) afin que vous sachiez sur quoi vous concentrer en priorité. Elle couvre la gestion des dépendances, les contrôles d’accès et d’identité, le renforcement des processus CI/CD, sécurité des conteneurs, le verrouillage des environnements de développement, votre chaîne d’outils basés sur des agents, ainsi que la surveillance et la réponse aux incidents.

Contenu

Cette liste de contrôle reprend les mêmes surfaces d'attaque que celles exploitées lors des incidents mentionnés ci-dessus. Chaque élément identifie l'attaque contre laquelle il protège, indique une modification de configuration ou un outil concret, et reste ancré dans ce qu'un ingénieur en poste est réellement habilité à modifier. Bien qu'elle s'adresse aux équipes d'ingénierie, les responsables de la sécurité, les ingénieurs de plateforme et toute personne en charge d'une partie du cycle de développement logiciel (SDLC) y trouveront des sections directement pertinentes pour ce qu'ils déploient.

Nous avons extrait quelques éléments ci-dessous pour vous donner un aperçu de son contenu.

Appliquer une politique relative à l'ancienneté des paquets avant toute installation

La plupart des récentes attaques de grande envergure, telles que celles visant Axios, Chalk, Debug et Mastra, ont en commun le fait que des versions malveillantes de paquets de confiance ont commencé à s'exécuter quelques heures seulement après leur publication. Ce sont les contrôles effectués au moment de l'installation qui permettent à votre équipe de gagner le temps nécessaire pour détecter ces menaces.

Vérifier l'ancienneté et l'intégrité des paquets avant toute installation

Associer les dépendances du pipeline aux SHA des commits

Les actions tierces sont des codes auxquels votre pipeline accorde sa confiance par défaut. Lorsque vous les référencez par balise, cette confiance s’étend à toute personne contrôlant la balise, et les balises peuvent être déplacées.

Associer les dépendances du pipeline aux SHA des commits

Considérer les serveurs MCP comme des dépendances tierces

Les outils d'agent occupent une place de premier plan dans les expérimentations menées par les pirates. Les serveurs MCP occupent une position particulièrement privilégiée dans la pile, bénéficiant de droits étendus et d'un accès direct aux données que les agents traitent en votre nom.

Considérer les serveurs MCP comme des dépendances tierces

Prendre des précautions contre les injections spontanées dans les pipelines basés sur l'IA

L'ajout d'un agent IA à un pipeline de CI élargit la définition de ce qui est considéré comme une entrée à risque. Un contenu qui, auparavant, circulait sans danger dans un workflow — comme le titre d'un ticket ou PR — devient une instruction exécutable dès l'instant où un agent le lit dans une invite. Cela représente une surface d'attaque plus vaste que celle pour laquelle la plupart des équipes ont prévu des mesures de sécurité.

Prendre des précautions contre les injections spontanées dans les pipelines basés sur l'IA

Enregistrer les journaux d'audit relatifs aux mises à jour du registre, aux exécutions de CI et à l'utilisation des jetons

Cette année, de nombreuses intrusions n'ont pas été détectées du tout dans les journaux d'authentification standard. Les attaquants agissaient à partir de sessions actives avec des identifiants valides, et le seul indice significatif provenait des journaux d'audit détaillant les actions réelles effectuées au cours de ces sessions.

Enregistrer les journaux d'audit pour toutes les mises à jour du registre, toutes les exécutions CI et toutes les utilisations de jetons

Téléchargez attaques de la chaîne d’approvisionnement

Ce sont là cinq points parmi les trente que compte la liste. La liste de contrôle complète aborde la mise en place de la fixation et de l'application des fichiers de verrouillage, les jetons à portée limitée et l'authentification multifactorielle (MFA) résistante au phishing, le renforcement de la sécurité des images de conteneurs, les contrôles des extensions IDE et des plugins de navigateur, la limitation des autorisations des agents, ainsi que les procédures d'intervention en cas d'incident pour les cas où une faille serait détectée.

Guide pratique pour se prémunir contre attaques de la chaîne d’approvisionnement

Remplissez le court formulaire ci-dessous pour télécharger la attaques de la chaîne d’approvisionnement et commencez à la passer en revue avant que le prochain élément n’apparaisse dans votre graphe de dépendances.

Partager :

https://www.aikido.dev/blog/supply-chain-attacks-checklist

<script type="application/ld+json">
{
 "@context": "https://schema.org",
 "@graph": [
   {
     "@type": "TechArticle",
     "@id": "https://www.aikido.dev/blog/supply-chain-attacks-checklist#article",
     "headline": "The practical checklist for defending against supply chain attacks",
     "description": "A practical checklist for engineering teams to defend against maintainer takeovers, poisoned actions, and malicious releases. Thirty prioritized practices graded by criticality.",
     "url": "https://www.aikido.dev/blog/supply-chain-attacks-checklist",
     "datePublished": "2026-07-14",
     "dateModified": "2026-07-14",
     "inLanguage": "en-US",
     "mainEntityOfPage": {
       "@type": "WebPage",
       "@id": "https://www.aikido.dev/blog/supply-chain-attacks-checklist"
     },
     "author": {
       "@id": "https://www.aikido.dev/authors/nicholas-thomson#person"
     },
     "publisher": {
       "@id": "https://www.aikido.dev#organization"
     },
     "image": {
       "@type": "ImageObject",
       "url": "https://www.aikido.dev/blog/supply-chain-attacks-checklist/og-image.png",
       "width": 1200,
       "height": 630
     },
     "keywords": [
       "supply chain attacks",
       "software supply chain security",
       "npm supply chain attack",
       "maintainer account takeover",
       "package age policy",
       "commit SHA pinning",
       "GitHub Actions security",
       "CI/CD security",
       "MCP server security",
       "prompt injection",
       "phishing-resistant MFA",
       "FIDO2",
       "audit logging",
       "malicious npm packages",
       "postinstall hooks",
       "dependency confusion",
       "typosquatting",
       "Aikido Intel",
       "Aikido Safe Chain",
       "developer machine security"
     ],
     "about": [
       {"@type": "Thing", "name": "Software Supply Chain Security"},
       {"@type": "Thing", "name": "Open Source Security"},
       {"@type": "Thing", "name": "CI/CD Pipeline Security"},
       {"@type": "Thing", "name": "npm Security"},
       {"@type": "Thing", "name": "Agentic AI Security"}
     ],
     "mentions": [
       {"@type": "SoftwareApplication", "name": "axios", "applicationCategory": "npm package"},
       {"@type": "SoftwareApplication", "name": "chalk", "applicationCategory": "npm package"},
       {"@type": "SoftwareApplication", "name": "debug", "applicationCategory": "npm package"},
       {"@type": "SoftwareApplication", "name": "tj-actions/changed-files", "applicationCategory": "GitHub Action"},
       {"@type": "SoftwareApplication", "name": "Mastra", "applicationCategory": "npm package"},
       {"@type": "SoftwareApplication", "name": "postmark-mcp", "applicationCategory": "MCP server"},
       {"@type": "SoftwareApplication", "name": "Bitwarden CLI", "applicationCategory": "CLI tool"},
       {"@type": "SoftwareApplication", "name": "Aikido Intel", "url": "https://intel.aikido.dev/"},
       {"@type": "SoftwareApplication", "name": "Aikido Safe Chain", "url": "https://www.aikido.dev/protect/safe-chain"},
       {"@type": "SoftwareApplication", "name": "Aikido Device Protection", "url": "https://www.aikido.dev/protect/device-protection"},
       {"@type": "SoftwareApplication", "name": "Aikido Libraries", "url": "https://help.aikido.dev/autofix-and-remediation/aikido-libraries-overview"},
       {"@type": "SoftwareApplication", "name": "Aikido Images", "url": "https://www.aikido.dev/cloud/hardened-images"},
       {"@type": "Thing", "name": "Shai-Hulud campaign"},
       {"@type": "Thing", "name": "PromptPwnd"},
       {"@type": "Thing", "name": "Model Context Protocol (MCP)"},
       {"@type": "Thing", "name": "FIDO2"},
       {"@type": "Thing", "name": "Passkeys"},
       {"@type": "Thing", "name": "OIDC"},
       {"@type": "Thing", "name": "SBOM"},
       {"@type": "Thing", "name": "CVE-2025-30066"}
     ],
     "articleSection": [
       "Dependency management",
       "Access and identity controls",
       "CI/CD hardening",
       "Container security",
       "Developer environments",
       "Agentic toolchain",
       "Monitoring and response"
     ],
     "speakable": {
       "@type": "SpeakableSpecification",
       "cssSelector": ["h1", "h2", ".tldr"]
     },
     "timeRequired": "PT8M",
     "isAccessibleForFree": true,
     "citation": [
       {
         "@type": "CreativeWork",
         "name": "ReversingLabs Software Supply Chain Security Report 2026",
         "url": "https://www.reversinglabs.com/blog/sscs-report-2026-guidance-timeline"
       },
       {
         "@type": "CreativeWork",
         "name": "npm debug and chalk packages compromised",
         "url": "https://www.aikido.dev/blog/npm-debug-and-chalk-packages-compromised"
       },
       {
         "@type": "CreativeWork",
         "name": "tj-actions/changed-files supply chain attack",
         "url": "https://www.aikido.dev/blog/get-the-tl-dr-tj-actions-changed-files-supply-chain-attack"
       },
       {
         "@type": "CreativeWork",
         "name": "axios npm compromised: maintainer hijacked with RAT",
         "url": "https://www.aikido.dev/blog/axios-npm-compromised-maintainer-hijacked-rat"
       },
       {
         "@type": "CreativeWork",
         "name": "Shai-Hulud strikes again: hitting Zapier, ENS Domains, PostHog",
         "url": "https://www.aikido.dev/blog/shai-hulud-strikes-again-hitting-zapier-ensdomains"
       },
       {
         "@type": "CreativeWork",
         "name": "Shai-Hulud npm Bitwarden CLI compromise",
         "url": "https://www.aikido.dev/blog/shai-hulud-npm-bitwarden-cli-compromise"
       }
     ]
   },
   {
     "@type": "WebPage",
     "@id": "https://www.aikido.dev/blog/supply-chain-attacks-checklist",
     "url": "https://www.aikido.dev/blog/supply-chain-attacks-checklist",
     "name": "The practical checklist for defending against supply chain attacks",
     "description": "A practical checklist for engineering teams to defend against maintainer takeovers, poisoned actions, and malicious releases.",
     "inLanguage": "en-US",
     "isPartOf": {
       "@id": "https://www.aikido.dev#website"
     },
     "primaryImageOfPage": {
       "@type": "ImageObject",
       "url": "https://www.aikido.dev/blog/supply-chain-attacks-checklist/og-image.png"
     },
     "breadcrumb": {
       "@id": "https://www.aikido.dev/blog/supply-chain-attacks-checklist#breadcrumb"
     },
     "about": {"@id": "https://www.aikido.dev/blog/supply-chain-attacks-checklist#article"}
   },
   {
     "@type": "BreadcrumbList",
     "@id": "https://www.aikido.dev/blog/supply-chain-attacks-checklist#breadcrumb",
     "itemListElement": [
       {
         "@type": "ListItem",
         "position": 1,
         "name": "Home",
         "item": "https://www.aikido.dev"
       },
       {
         "@type": "ListItem",
         "position": 2,
         "name": "Blog",
         "item": "https://www.aikido.dev/blog"
       },
       {
         "@type": "ListItem",
         "position": 3,
         "name": "Guides & Best Practices",
         "item": "https://www.aikido.dev/category/guides-best-practices"
       },
       {
         "@type": "ListItem",
         "position": 4,
         "name": "The practical checklist for defending against supply chain attacks",
         "item": "https://www.aikido.dev/blog/supply-chain-attacks-checklist"
       }
     ]
   },
   {
     "@type": "ItemList",
     "@id": "https://www.aikido.dev/blog/supply-chain-attacks-checklist#itemlist",
     "name": "Featured checklist items",
     "itemListOrder": "https://schema.org/ItemListOrderAscending",
     "numberOfItems": 5,
     "itemListElement": [
       {
         "@type": "ListItem",
         "position": 1,
         "name": "Enforce a package age policy before anything installs",
         "description": "A 48-hour minimum age policy blocks same-day typosquatting and fast-moving malware campaigns before they reach your developers."
       },
       {
         "@type": "ListItem",
         "position": 2,
         "name": "Pin pipeline dependencies to commit SHAs",
         "description": "Third-party actions are code your pipeline trusts by default. Pin every action to an immutable commit SHA rather than a mutable tag."
       },
       {
         "@type": "ListItem",
         "position": 3,
         "name": "Treat MCP servers as third-party dependencies",
         "description": "MCP servers carry the same supply chain risks as any other dependency. Pin them, verify the publisher, and scope their permissions."
       },
       {
         "@type": "ListItem",
         "position": 4,
         "name": "Guard against prompt injection in AI-powered pipelines",
         "description": "As AI agents gain elevated access to CI pipelines, prompt injection becomes a live attack surface for anyone who can open a PR."
       },
       {
         "@type": "ListItem",
         "position": 5,
         "name": "Capture audit logs for registry pushes, CI runs, and token usage",
         "description": "Audit logs give you the timeline to reconstruct what happened, confirm the blast radius, and decide what to rotate."
       }
     ]
   },
   {
     "@type": "Person",
     "@id": "https://www.aikido.dev/authors/nicholas-thomson#person",
     "name": "Nicholas Thomson",
     "jobTitle": "Senior SEO & Growth Lead",
     "url": "https://www.aikido.dev/authors/nicholas-thomson",
     "worksFor": {
       "@id": "https://www.aikido.dev#organization"
     },
     "sameAs": [
       "https://www.linkedin.com/",
       "https://x.com/"
     ]
   },
   {
     "@type": "Organization",
     "@id": "https://www.aikido.dev#organization",
     "name": "Aikido Security",
     "url": "https://www.aikido.dev",
     "logo": {
       "@type": "ImageObject",
       "url": "https://www.aikido.dev/logo.png"
     },
     "sameAs": [
       "https://www.linkedin.com/company/aikido-security/",
       "https://x.com/AikidoSecurity",
       "https://www.youtube.com/@aikidosecurity"
     ]
   },
   {
     "@type": "WebSite",
     "@id": "https://www.aikido.dev#website",
     "url": "https://www.aikido.dev",
     "name": "Aikido Security",
     "publisher": {
       "@id": "https://www.aikido.dev#organization"
     },
     "inLanguage": "en-US"
   }
 ]
}
</script>

S'abonner aux actualités

4,7/5
Fatigué des faux positifs ?
Essayez Aikido, comme 100 000 autres.
Commencez maintenant
Obtenez une démonstration personnalisée

Approuvé par plus de 100 000 équipes

Réserver maintenant
Analysez votre application à la recherche d'IDORs et de chemins d'attaque réels

Approuvé par plus de 100 000 équipes

Démarrer l'analyse
Découvrez comment le pentest IA teste votre application

Approuvé par plus de 100 000 équipes

Démarrer les tests

Sécurisez votre environnement dès maintenant.

Sécurisez votre code, votre cloud et votre environnement d’exécution dans un système centralisé unique.
Détectez et corrigez les vulnérabilités rapidement et automatiquement.

Aucune carte de crédit requise | Résultats en 32 secondes.