Aikido

La guía práctica para defenderse de ataques a la cadena de suministro

Escrito por
Nicholas Thomson

ataques a la cadena de suministro en auge. Las detecciones de malware de código abierto se dispararon un 73 % en 2025. Durante el último año, los paquetes «debug» y «chalk» fueron infectados con puertas traseras; la acción de GitHub «tj-actions» se vio comprometida e introdujo código malicioso en miles de pipelines; y la cuenta del mantenedor de «axios» fue secuestrada y utilizada para distribuir un RAT. Las versiones maliciosas también afectaron a Zapier, ENS Domains, PostHog y Bitwarden CLI.

Todos y cada uno de estos ataques se podían haber evitado con los controles disponibles en aquel momento. Las técnicas de los atacantes funcionaron porque la mayoría de los equipos no contaban con las defensas adecuadas en la capa de instalación, en sus procesos de desarrollo ni en los equipos de los desarrolladores. 

Esta lista de comprobación explica cómo son esas medidas de defensa. Para los equipos de ingeniería que quieran adelantarse a ataques a la cadena de suministro, esto es para vosotros.

TL;DR

La lista de comprobación de seguridad de la cadena de suministro es un conjunto práctico y priorizado de tareas para reforzar tu pila frente a la actual generación de ataques a la cadena de suministro, clasificadas como críticas, altas o medias para que sepas en qué centrarte primero. Abarca la gestión de dependencias, los controles de acceso e identidad, el refuerzo de CI/CD, seguridad de contenedores, el bloqueo del entorno de desarrollo, tu cadena de herramientas basada en agentes, y la supervisión y la respuesta.

Qué hay dentro

La lista de comprobación se basa en las mismas superficies de ataque que se aprovecharon en los incidentes mencionados anteriormente. Cada punto especifica el tipo de ataque contra el que protege, indica un cambio de configuración concreto o una herramienta, y se ciñe a lo que un ingeniero en activo tiene realmente autoridad para modificar. Aunque está dirigida a equipos de ingeniería, los responsables de seguridad, los ingenieros de plataformas y cualquier persona a cargo de una parte del ciclo de vida del desarrollo de software (SDLC) encontrarán secciones directamente relevantes para lo que lanzan al mercado.

A continuación, hemos extraído algunos elementos para que te hagas una idea de su contenido.

Aplicar una política de antigüedad de los paquetes antes de instalar nada

La tónica común en muchos de los grandes ataques recientes, como los de Axios, Chalk, Debug y Mastra, es que las versiones maliciosas de paquetes de confianza comenzaron a ejecutarse a las pocas horas de su publicación. Los controles en el momento de la instalación son los que proporcionan a tu equipo el margen de tiempo necesario para detectarlas.

Comprobar la antigüedad y la integridad del paquete antes de instalar nada

Asignar las dependencias del pipeline a los SHA de las confirmaciones

Las acciones de terceros son código en el que tu pipeline confía de forma predeterminada. Cuando las referencias mediante una etiqueta, esa confianza se extiende a quienquiera que controle la etiqueta, y las etiquetas pueden trasladarse.

Asignar las dependencias del pipeline a los SHA de las confirmaciones

Tratar los servidores MCP como dependencias de terceros

Las herramientas de tipo «agent» están a la vanguardia de la experimentación de los atacantes. Los servidores MCP ocupan un punto de la pila con un nivel de confianza especialmente elevado, con amplios permisos y acceso directo a los datos que los agentes gestionan en tu nombre.

Tratar los servidores MCP como dependencias de terceros

Prevenir las inyecciones repentinas en los flujos de trabajo basados en IA

La incorporación de un agente de IA a un proceso de integración continua amplía el alcance de lo que se considera una entrada de riesgo. El contenido que antes circulaba sin problemas por un flujo de trabajo —como el título de una incidencia o la descripción de una solicitud de incorporación de cambios— se convierte en una instrucción ejecutable en el momento en que el agente lo lee en una solicitud de entrada. Se trata de un ámbito más amplio del que la mayoría de los equipos han tenido en cuenta.

Prevenir las inyecciones repentinas en los flujos de trabajo basados en IA

Recopilar registros de auditoría de las actualizaciones del Registro, las ejecuciones de CI y el uso de tokens

Varias intrusiones ocurridas este año no quedaron reflejadas en absoluto en los registros de autenticación habituales. Los atacantes actuaron desde sesiones activas con credenciales válidas, y la única señal significativa procedía de los registros de auditoría sobre las acciones que realmente se llevaron a cabo en dichas sesiones.

Registrar los registros de auditoría de todas las actualizaciones del Registro, las ejecuciones de CI y el uso de tokens

Descarga la ataques a la cadena de suministro

Esos son cinco de los treinta puntos. La lista de comprobación completa abarca la fijación de pines y la aplicación de archivos de bloqueo, los tokens con ámbito limitado y la autenticación multifactorial (MFA) resistente al phishing, el refuerzo de la seguridad de las imágenes de contenedores, los controles de extensiones de IDE y complementos de navegador, la delimitación de permisos de los agentes y los manuales de respuesta ante incidentes para cuando algo consiga colarse.

Lista de comprobación práctica para defenderse de ataques a la cadena de suministro

Rellena el breve formulario que aparece a continuación para descargar la ataques a la cadena de suministro y empieza a revisarla antes de que aparezca el próximo paquete en tu gráfico de dependencias.

Compartir:

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>

Suscríbete para recibir noticias

4.7/5
¿Cansado de los falsos positivos?

Prueba Aikido como otros 100k.
Empiece ahora
Obtenga un recorrido personalizado

Con la confianza de más de 100k equipos

Reservar ahora
Escanee su aplicación en busca de IDORs y rutas de ataque reales

Con la confianza de más de 100k equipos

Empezar a escanear
Vea cómo el pentesting de IA prueba su aplicación

Con la confianza de más de 100k equipos

Empezar a probar

Asegura tu plataforma ahora

Protege tu código, la nube y el entorno de ejecución en un único sistema central.
Encuentra y corrije vulnerabilidades de forma rápida y automática.

No se requiere tarjeta de crédito | Resultados del escaneo en 32 segundos.