El pipeline de compilación de software, la infraestructura de CI/CD que transforma el código fuente en artefactos de software desplegables, es el puente de confianza crítico de la cadena de suministro de software. Un atacante que puede modificar código o inyectar comandos en el pipeline de compilación produce artefactos de software que contienen su código, compilados a partir del repositorio de código fuente del proveedor, firmados con las credenciales del proveedor e indistinguibles de las compilaciones legítimas para cualquier consumidor posterior que confíe en la clave de firma. El compromiso del pipeline de compilación es el vector de ataque que produjo la brecha de SolarWinds, el ataque a la cadena de suministro de 3CX y numerosos incidentes de menor escala en la cadena de suministro. También es el vector de ataque que la mayoría de las evaluaciones de seguridad de proveedores no evalúa.
La superficie de ataque del pipeline de compilación es sustancialmente mayor y está peor gobernada que la seguridad de las aplicaciones en producción. Un pipeline típico de CI/CD incluye: el repositorio de código fuente y sus reglas de protección de ramas, la plataforma de CI/CD y sus archivos de configuración, la infraestructura de agentes de compilación y las credenciales que utiliza, las integraciones de terceros (linters, marcos de pruebas, escáneres de seguridad, herramientas de despliegue) que se ejecutan dentro del pipeline, el registro de artefactos donde se almacena el software compilado y los mecanismos de despliegue que trasladan los artefactos del registro a producción. Cada uno de estos elementos es una posible superficie de ataque. Muchas empresas aplican controles de seguridad sólidos a las aplicaciones en producción y dejan los componentes del pipeline de compilación significativamente menos gobernados.
El problema de la exposición de credenciales es la vulnerabilidad del pipeline más inmediatamente explotable. Los pipelines de CI/CD necesitan credenciales para funcionar: tokens de repositorio, claves de acceso del proveedor de nube, autenticación del registro de artefactos y credenciales del sistema de despliegue. Estas credenciales suelen almacenarse como variables de entorno o secretos del pipeline. Cuando las integraciones del pipeline se ejecutan con permisos excesivos (credenciales de nivel de producción en lugar del mínimo necesario para su función), comprometer cualquier integración otorga al atacante todo el alcance de las credenciales que esa integración utilizaba. Una herramienta de cobertura de código que se ejecuta con credenciales de despliegue en producción es un posible vector de movimiento lateral desde el entorno de compilación hacia producción.
Por qué es importante
La integridad de la canalización de compilación es importante para TPRM porque el proveedor de software cuya canalización está comprometida produce software comprometido, por sólidos que sean sus controles de seguridad en producción. La empresa que evalúa la seguridad del entorno de producción de un proveedor sin evaluar la seguridad de su canalización de compilación ha evaluado el objetivo que el atacante esquivará, en lugar de la vía que el atacante usará.
- Canalización de compilación fuera del alcance de la evaluación: seguridad de producción evaluada sin la seguridad de la compilación
- Integraciones de terceros del pipeline no evaluadas en cuanto a su postura de seguridad
- Credenciales del pipeline no evaluadas conforme al mínimo privilegio
- Aislamiento del pipeline respecto del entorno de producción no evaluado
- Verificación de la integridad de la compilación ausente del proceso de entrega de software
Cómo se ve una buena práctica
Los programas maduros de seguridad del pipeline de compilación aplican una minimización de credenciales específica del pipeline, auditan las integraciones de terceros del pipeline en cuanto a su postura de seguridad y el alcance de su acceso con credenciales, implantan el aislamiento del entorno de compilación, generan y verifican la procedencia SLSA de los resultados de compilación e incluyen la seguridad del pipeline de compilación en las evaluaciones de proveedores junto con la seguridad del entorno de producción.
- Credenciales del pipeline con mínimo privilegio: las integraciones utilizan solo los permisos necesarios
- Auditoría de las integraciones de terceros: postura de seguridad y alcance de las credenciales de cada una
- Aislamiento del entorno de compilación: acceso restringido a la red y al sistema de archivos durante las compilaciones
- Generación de procedencia SLSA: atestación verificable de la integridad de la compilación
- Configuración de la canalización como código con requisitos de revisión: sin modificaciones improvisadas de la canalización
Herramientas
Seguridad de la canalización: Palo Alto Prisma Cloud para la seguridad de CI/CD; Legit Security y Ox Security para la gestión de la postura de la canalización
Las plataformas de gestión de la postura de seguridad de CI/CD evalúan la configuración de la canalización de compilación, la exposición de credenciales, la seguridad de las integraciones de terceros y el aislamiento entre la canalización y producción, lo que ofrece la visión de la seguridad de la canalización de compilación que no abordan las herramientas de seguridad de aplicaciones en producción. Para los profesionales de TPRM, preguntar si el proveedor usa la gestión de la postura de seguridad de CI/CD junto con el análisis de seguridad de aplicaciones es una pregunta concreta de evaluación de la canalización de compilación.
Procedencia: acciones del generador SLSA, Tekton Chains para la generación de procedencia de compilación
Las herramientas de generación de procedencia de compilación integradas en los pipelines de CI/CD producen atestaciones firmadas de la integridad de la compilación, que confirman que el artefacto se compiló a partir del código fuente especificado mediante el sistema de compilación autenticado. Para los proveedores de software críticos, solicitar atestaciones de procedencia aporta la verificación de la integridad de la compilación para la que la evaluación de la seguridad del pipeline establece el marco.
Desafíos de gobernanza
El reto de gobernanza de la seguridad de la canalización de compilación es la brecha de responsabilidad entre DevOps y seguridad. Las canalizaciones de compilación suelen ser propiedad de los equipos de DevOps o de ingeniería de plataformas, que las mantienen con marcos de gestión de riesgos distintos de los de los equipos de seguridad que realizan las evaluaciones de proveedores. La solución de gobernanza consiste en incluir la seguridad de la canalización de compilación en el alcance de la evaluación de proveedores junto con la seguridad de las aplicaciones, preguntando expresamente por la gestión de credenciales de la canalización, la seguridad de las integraciones de terceros y el aislamiento del entorno de compilación.
- Incluya el pipeline de compilación en el alcance de la evaluación de proveedores
- Pregunte por el privilegio mínimo de las credenciales de la canalización: qué permisos usan las integraciones
- Pregunte por la seguridad de las integraciones de terceros en la canalización: cómo se examinan las integraciones
- Pregunte por el aislamiento del entorno de compilación: restricciones de acceso a la red durante las compilaciones
- Solicite la procedencia SLSA como verificación de la integridad de la compilación
Si usted forma parte de un equipo pequeño
Para sus tres proveedores de software más críticos, formule dos preguntas sobre el pipeline de compilación que su cuestionario de seguridad estándar no aborda. Primera: ¿qué herramientas o integraciones de terceros se ejecutan dentro de su pipeline de CI/CD y qué credenciales utilizan? Segunda: ¿las credenciales de su pipeline están limitadas a los permisos mínimos necesarios, o alguna integración del pipeline utiliza acceso de nivel de producción? Esas dos preguntas revelan los dos fallos de seguridad más comunes en los pipelines de compilación: integraciones de terceros no revisadas y un alcance excesivo de las credenciales.
- Pregunte qué herramientas de terceros se ejecutan en el pipeline de CI/CD y qué credenciales utilizan
- Pregunte si las credenciales del pipeline son de mínimo privilegio
- Incluya el pipeline de compilación en el alcance de la evaluación de seguridad de proveedores
- Solicite la procedencia SLSA para las versiones de software críticas
Qué exigir
Pregunte directamente:
"¿Qué integraciones de terceros se ejecutan dentro de su pipeline de CI/CD? ¿Puede confirmar que esas integraciones utilizan credenciales de mínimo privilegio en lugar de acceso de nivel de producción? ¿Y genera atestaciones de procedencia SLSA para sus versiones de software?"
Evidencia que debe esperar
- Inventario de integraciones de terceros de CI/CD con el alcance de sus credenciales
- Confirmación de credenciales del pipeline con mínimo privilegio
- Descripción del aislamiento del entorno de compilación
- Generación y nivel de procedencia SLSA
A un proveedor que confirma la seguridad de su entorno de producción se le debe preguntar por la seguridad de su pipeline de compilación. Los controles del entorno de producción protegen lo que se está ejecutando. Los controles del pipeline de compilación protegen cómo se compiló. El ataque a SolarWinds eludió los primeros al comprometer los segundos.
Cómo demostrarlo
- Registros de evaluación de la canalización de compilación
- Verificación del alcance de las credenciales del pipeline
- Revisión de seguridad de las integraciones de terceros
- Verificación de la procedencia SLSA para el software crítico
Conclusión clave
Entorno de producción: protegido. Pipeline de CI/CD: 12 integraciones de terceros, 7 ejecutándose con credenciales de producción, 1 con una omisión de autenticación. El entorno de producción tenía controles sólidos. El pipeline que compiló todo lo que se ejecutaba en él tenía una omisión de autenticación en una integración de terceros con credenciales de producción. La seguridad del pipeline de compilación no es un subconjunto de la seguridad de las aplicaciones: es la superficie de ataque situada antes de los controles de seguridad de las aplicaciones que produce. Evaluar la seguridad de producción sin la seguridad del pipeline de compilación es evaluar el objetivo que el atacante elude, no el camino que utiliza.