Tema 18

18. Supply chain security: dependencias, SBOM, firma y verificación de artefactos

La seguridad de una arquitectura no depende solo del código propio. También depende de las librerías, imágenes base, herramientas de build, pipelines y artefactos que se incorporan al sistema. Si esa cadena de suministro no es confiable, el riesgo entra antes de que la aplicación llegue a producción.

Objetivo Confiar menos en la cadena de construcción por defecto
Enfoque Dependencias, trazabilidad y verificación
Resultado Reducir riesgo antes del despliegue

18.1 Introducción

En software moderno rara vez construimos todo desde cero. Un microservicio puede depender de docenas o cientos de paquetes, frameworks, imágenes base, plugins, acciones de CI, registros de artefactos y herramientas externas. Cada una de esas piezas forma parte de la cadena de suministro del software.

Eso significa que el riesgo puede entrar mucho antes del runtime: una dependencia comprometida, una imagen adulterada, una herramienta de build maliciosa o un pipeline alterado pueden terminar produciendo artefactos inseguros aunque el código propio parezca correcto.

La supply chain security busca precisamente eso: aumentar la confianza en lo que se construye, se empaqueta y se despliega, y reducir la posibilidad de introducir componentes no confiables sin detectarlo.

18.2 Qué abarca la cadena de suministro de software

Cuando se habla de supply chain no se habla solo de librerías open source. Se habla de todo el recorrido desde el código fuente hasta el artefacto desplegado.

  • Repositorios de código y control de versiones.
  • Dependencias directas e indirectas.
  • Herramientas de compilación y empaquetado.
  • Imágenes base de contenedores.
  • CI/CD, runners y scripts de pipeline.
  • Registros de paquetes e imágenes.
  • Artefactos finales y su despliegue.
Un sistema puede fallar en supply chain aunque el código propio no tenga una sola línea maliciosa. Basta con confiar de más en un eslabón externo.

18.3 Dependencias: directas e indirectas

Las dependencias directas son las que el equipo elige explícitamente. Las indirectas o transitivas son las que esas dependencias arrastran. En la práctica, una parte importante del riesgo aparece en esta segunda categoría, porque suele ser menos visible para el equipo de desarrollo.

Los principales problemas aquí son:

  • Paquetes vulnerables o abandonados.
  • Cambios inesperados en versiones nuevas.
  • Dependencias retiradas, reemplazadas o comprometidas.
  • Falta de visibilidad sobre qué está entrando realmente al build.

18.4 Riesgos frecuentes en supply chain

Riesgo Cómo aparece Impacto posible
Dependencia vulnerable Uso de librerías con fallas conocidas Explotación remota o local en producción
Paquete malicioso Ingreso de código deliberadamente dañino Exfiltración, backdoors, sabotaje
Pipeline comprometido Scripts o runners alterados Artefactos manipulados antes del despliegue
Imagen base no confiable Uso de imágenes sin procedencia clara Riesgo heredado desde el sistema base
Registro inseguro Artefactos publicados o descargados sin verificación suficiente Confusión de origen o sustitución de binarios

18.5 Qué es un SBOM

SBOM, o Software Bill of Materials, es un inventario estructurado de los componentes que forman parte de un artefacto de software. Ayuda a responder una pregunta básica pero crítica: qué contiene realmente esto que voy a ejecutar o distribuir.

Un SBOM bien generado puede incluir:

  • Dependencias directas e indirectas.
  • Versiones y proveedores.
  • Relaciones entre componentes.
  • Metadatos útiles para rastrear vulnerabilidades o cumplimiento.

18.6 Para qué sirve un SBOM

El SBOM no elimina riesgo por sí solo, pero mejora mucho la capacidad de reacción y análisis. Si aparece una vulnerabilidad relevante, un inventario confiable permite saber rápidamente qué artefactos están afectados.

También ayuda a:

  • Auditar dependencias de forma más sistemática.
  • Mejorar trazabilidad sobre builds y versiones.
  • Identificar componentes obsoletos o no aprobados.
  • Apoyar procesos de compliance técnico.

18.7 Firma de artefactos

Firmar artefactos permite demostrar que un binario, imagen o paquete fue producido por una entidad confiable y no fue alterado desde su publicación. Esto es especialmente valioso cuando existen múltiples etapas, registros intermedios o promoción entre entornos.

La firma busca responder:

  • Quién produjo este artefacto.
  • Si fue modificado después de emitido.
  • Si proviene de un proceso autorizado.

18.8 Verificación antes de desplegar

Firmar sin verificar no alcanza. La cadena de confianza solo sirve si el entorno de despliegue o promoción comprueba realmente la firma, el origen y las políticas esperadas antes de aceptar el artefacto.

Esto puede traducirse en reglas como:

  • Solo desplegar imágenes firmadas por identidades aprobadas.
  • Rechazar artefactos sin metadatos mínimos o sin procedencia clara.
  • No promover binarios si no cumplen controles del pipeline.

18.9 Integridad del pipeline

El pipeline de CI/CD es parte de la cadena de confianza. Si alguien puede modificar scripts, variables, runners o etapas críticas sin control suficiente, entonces también puede alterar el artefacto final o desactivar validaciones relevantes.

Por eso conviene cuidar:

  • Permisos de modificación sobre pipelines.
  • Aislamiento y confianza de los runners.
  • Uso de secretos en build y despliegue.
  • Trazabilidad sobre quién ejecutó o aprobó cambios.

18.10 Inmutabilidad y promoción controlada

Una práctica madura consiste en construir una vez y promover el mismo artefacto entre entornos, en lugar de recompilar en cada etapa. Esto mejora trazabilidad y reduce ambigüedad sobre qué versión exacta llegó a producción.

Si se reconstruye de forma distinta en cada entorno, la confianza en el artefacto final se vuelve más débil y más difícil de auditar.

18.11 Aprobación de fuentes y registros

No todas las fuentes deberían considerarse confiables por defecto. Parte de la seguridad de la supply chain consiste en definir de qué registros, repositorios o imágenes base se acepta consumir contenido y bajo qué criterios.

Esto ayuda a reducir:

  • Uso accidental de fuentes no aprobadas.
  • Confusión de nombres o paquetes falsos.
  • Ingreso de artefactos con procedencia dudosa.

18.12 Errores comunes

  • Actualizar dependencias sin trazabilidad ni evaluación mínima.
  • No distinguir entre dependencia directa y transitiva.
  • Confiar ciegamente en imágenes base populares sin verificar procedencia.
  • Generar SBOMs pero no usarlos en decisiones reales.
  • Firmar artefactos sin exigir verificación en despliegue.
La cadena de suministro segura no se logra solo "escaneando paquetes". Se logra sabiendo qué entra, de dónde viene, cómo se construyó y qué evidencias acompañan al artefacto final.

18.13 Qué debes recordar de este tema

  • La cadena de suministro incluye dependencias, herramientas, pipelines, imágenes y artefactos.
  • El riesgo puede ingresar mucho antes del runtime.
  • Un SBOM mejora visibilidad y capacidad de respuesta sobre componentes.
  • La firma de artefactos debe complementarse con verificación efectiva antes del despliegue.
  • La confianza en el software requiere trazabilidad, procedencia y gobierno de fuentes.

18.14 Conclusión

La arquitectura segura no termina en el clúster ni en la red. También depende de la confianza que podemos depositar en lo que construimos y promovemos hacia producción. Supply chain security obliga a mirar dependencias, herramientas y artefactos con el mismo rigor con que observamos el runtime, porque muchas veces el problema ya está sembrado antes del primer despliegue.

En el próximo tema estudiaremos DevSecOps, SAST, DAST, escaneo de imágenes y automatización de controles para integrar estas verificaciones de forma continua dentro del ciclo de entrega.