Supply chain
¿Qué es supply chain?
Supply chain en software es la cadena de suministro tecnológica que interviene en la creación, construcción y entrega de una aplicación.
No incluye solo tu código. También abarca las dependencias, los registros de paquetes, los repositorios, los tokens, los pipelines de CI/CD, los servicios de build y los sistemas de despliegue que participan hasta que el software llega a producción.
¿Para qué sirve entenderla?
Entender la supply chain sirve para ver que un proyecto no depende únicamente de lo que programa un equipo, sino también de todo lo que instala, automatiza y publica.
Eso es importante porque muchos incidentes de seguridad no entran por una vulnerabilidad en tu lógica de negocio, sino por:
- un paquete comprometido
- un token robado
- un pipeline mal configurado
- una dependencia maliciosa
- un proceso de publicación inseguro
Ejemplo básico
Una supply chain típica en un proyecto JavaScript puede verse así:
desarrollador -> GitHub -> npm -> dependencias -> CI/CD -> build -> despliegue
Si uno de esos puntos se compromete, el ataque puede propagarse al resto del flujo. Por ejemplo, un paquete malicioso publicado en npm puede ejecutarse durante npm install y acabar robando secretos del entorno de CI.
¿Por qué importa tanto en seguridad?
La supply chain se ha convertido en un objetivo crítico porque permite atacar muchos proyectos a la vez desde un único punto de confianza.
En lugar de entrar repositorio por repositorio, un atacante puede intentar comprometer:
- una librería popular
- la cuenta de un maintainer
- un registro de paquetes
- una acción de automatización
- un sistema de publicación
Por eso hoy se habla tanto de medidas como MFA, firma de paquetes, bloqueo de versiones, npm ci, revisión de scripts postinstall y control de secretos en pipelines.
Conceptos relacionados
npm CI/CD Pipeline TokenConclusión
La supply chain no es solo una idea de seguridad avanzada: es el recorrido real que hace tu software desde el editor hasta producción. Entenderla es clave para detectar riesgos que no están en tu código, pero sí en todo lo que tu proyecto decide confiar.