Ataques a la cadena de suministro: lecciones de 2023
Índice de contenidos
- Puntos clave
- Los patrones de ataque
- Explotación de vulnerabilidades 0-day en productos empresariales
- Compromiso de pipelines de build/release
- Typosquatting y dependency confusion
- Defensas prácticas: cuatro capas
- SBOM (Software Bill of Materials)
- Firma de artefactos con Sigstore
- SLSA para integridad del pipeline
- Scanning continuo
- Qué es más difícil
- Conclusión
Actualizado: 2026-05-03
2023 ha sido un año particularmente ilustrativo en ataques a la cadena de suministro de software. MOVEit[1] en mayo-junio afectó a cientos de organizaciones. 3CX[2] en abril expuso a millones de usuarios a un binario comprometido. Incidentes en npm[3], PyPI[4] y registries similares siguen siendo constantes. Los patrones son ya suficientemente claros para definir prácticas defensivas efectivas.
Puntos clave
- Tres patrones dominan los incidentes: explotación de vulnerabilidades 0-day en productos de confianza, compromiso de pipelines de build/release, y typosquatting/dependency confusion en registries públicos.
- Las cuatro capas defensivas más efectivas son SBOM, firma de artefactos con Sigstore, SLSA para integridad del pipeline y scanning continuo.
- La verificación de que el código fuente corresponde al binario (SLSA L3) es el área más difícil: pocos proyectos abiertos lo cumplen.
- Los escaners automatizados son necesarios pero no suficientes: no detectan malware 0-day ni compromisos del propio pipeline.
- Esperar “hasta que pase algo” para invertir siempre cuesta más — en reputación y legalmente — que prevenirlo.
Los patrones de ataque
De los incidentes públicos de 2023 emergen tres patrones dominantes:
Explotación de vulnerabilidades 0-day en productos empresariales
MOVEit Transfer[5] es el caso canónico: el atacante (grupo de ransomware Cl0p) explotó una vulnerabilidad de SQL injection 0-day, accediendo a datos de cientos de organizaciones que usaban este producto para intercambio seguro de ficheros. No fue malware inyectado; fue una vulnerabilidad crítica en un producto de confianza.
Lección: depender de terceros requiere tratar su seguridad como parte de la propia. Auditoría, monitoreo y capacidad de respuesta independientes del proveedor.
Compromiso de pipelines de build/release
3CX (abril) fue víctima de otro ataque a cadena: uno de sus proveedores (Trading Technologies) tenía un instalador malicioso; ese binario se usó en el entorno de desarrollo de 3CX, comprometiendo sus propios builds. Los clientes de 3CX recibieron actualizaciones oficiales con malware firmado correctamente.
Este es el ataque más temido: el atacante no compromete tu código ni tus servidores, sino a tu proveedor de herramientas de desarrollo.
Typosquatting y dependency confusion
Paquetes maliciosos en npm, PyPI y registries similares con nombres parecidos a paquetes populares (p. ej., python-sqlite3 vs sqlite3-python). Durante 2023, equipos de investigación de seguridad reportan decenas de paquetes nuevos maliciosos por semana.
Una variante sofisticada: dependency confusion — un atacante sube un paquete a un registry público con el mismo nombre que uno interno privado, y ciertas configuraciones de gestores de paquetes prefieren la versión más reciente del registry público.
Defensas prácticas: cuatro capas
Estas cuatro capas se complementan y cubren la mayoría de casos prácticos con coste razonable:
SBOM (Software Bill of Materials)
Inventario completo de componentes en el software, incluyendo versiones, fuentes y hashes. Formatos estándar: SPDX[6] y CycloneDX[7]. Se genera automáticamente en el pipeline de build con herramientas como Syft[8].
Valor: cuando se anuncia una vulnerabilidad en una librería, se sabe inmediatamente qué productos la contienen.
Firma de artefactos con Sigstore
Sigstore[9] es infraestructura open-source para firma de artefactos software. Con cosign[10], firmar una imagen de contenedor es un comando. La firma se ancla en Rekor[11], un log transparente público.
Valor: los consumidores del software pueden verificar que el binario procede de ti, no de un atacante que suplantó tu CI.
SLSA para integridad del pipeline
SLSA[12] (Supply-chain Levels for Software Artifacts) define cuatro niveles de madurez, del L1 (build con procedencia básica) al L4 (build hermético y reproducible en hardware aislado). Apuntar al L2 o L3 es factible para la mayoría de equipos con inversión moderada.
Para JavaScript/Node: npm provenance[13] desde abril permite publicar paquetes con procedencia verificable vinculada a GitHub Actions.
Scanning continuo
Herramientas como Trivy[14], Grype[15] y Snyk[16] escanean continuamente dependencias e imágenes. Integradas en CI + runtime de producción, capturan vulnerabilidades conocidas.
No son silver bullet: no detectan malware 0-day ni compromisos del propio pipeline, pero cubren el grueso de riesgos con bajo coste operativo.

Qué es más difícil
Tres áreas donde las defensas siguen siendo inmaduras:
- Verificación de que el código fuente corresponde al binario. SLSA L3 lo requiere pero pocos proyectos abiertos lo cumplen.
- Auditoría de dependencias transitivas. Con decenas de miles de paquetes transitivos, auditar cada uno manualmente es imposible. Los scanners automatizados ayudan pero no son exhaustivos.
- Confianza en desarrolladores individuales de open-source. Faker.js y varios casos similares han mostrado el riesgo de mantenedores únicos que sabotean sus propios paquetes.

Ver también la directiva NIS2 — que incluye seguridad de cadena de suministro como obligación explícita en sus 10 categorías mínimas — y la gestión de secretos con Vault, donde las credenciales comprometidas en la cadena de suministro son un vector de entrada frecuente.
Conclusión
Los ataques a cadena de suministro no van a desaparecer: son una superficie demasiado atractiva con demasiados puntos de entrada débiles. La combinación de SBOM + firma de artefactos + SLSA + scanning cubre la mayoría de casos prácticos con coste razonable. Los equipos que esperan a “cuando pase algo” acaban pagando el precio reputacional y legal cuando efectivamente pasa.