Seguridad en CI/CD y Pipelines: 3 enfoques fáciles para la "Seguridad Continua" y que no digas que "te jakiaron"

"me jakiaron..."
- Anónimo
La seguridad de CI/CD es un tema cada vez más importante a medida que las pipelines de CI/CD se vuelven más complejas y su uso se extiende. Por lo superficies de ataque son dinámicas y requieren de un foco cultural y técnico, no sólo de tener tediosos y muchas veces absurdos procesos que sólo garantizan que los equipos se desgastan rápido y las empresas paguen por sus propias pérdidas e incluso multiplicarlas.
Para enfrentar este escenario, los equipos -y no sólo los equipos de seguridad- necesitan adoptar un enfoque holístico que proteja todo el flujo CI/CD, desde el código fuente hasta la producción, a través de nuestros pipelines. Esto incluye:
- Seguridad En-Pipeline (Security In-The-Pipeline): asegurar que el código que se envía a producción esté libre de vulnerabilidades y configuraciones erróneas. Esto se puede lograr mediante el uso de herramientas de escaneo de seguridad automatizadas, así como controles manuales, como revisiones de código y particularmente el enfoque "shift left" o también conocido como DevSecOps.
- Seguridad Del-Pipeline (Security Of Pipeline): proteger los sistemas y herramientas que componen el pipeline en si mismo contra ataques y vulnerabilidades. Esto incluye medidas como la gestión de políticas de permisos y accesos, monitoreo, alertas, credenciales rotativas y el mprincipio del "menor privilegio posible".
- Seguridad Alrededor-del-Pipeline (Security Around the Pipeline): Comprender el flujo de tu ciclo implica saber que todas tus medidas pueden simplemente ser bypasseadas o eludidas, con el consiguiente "acceso directo" a producción. Puedes mitigar riesgos implementando RBAC (Role Based Access Control), y de manera genérica, políticas de aislamientos de redes y conectividades diferenciadas, con monitoreo persistente/alertas de accesos y por sobre todo, implementar GitOps, previniendo que tus entornos de ejecución requieran ser accedidos por distintos roles, sino que dicho entor no sea quien se responsabiliza de "ir a buscar el recurso a desplegar" a un punto externo, generalmente un repositorio git. traffic shaping., la implementación de bastion hosts y la monitorización de los flujos de tráfico atípicos.

Un enfoque holístico para la seguridad de CI/CD requiere la cooperación de los equipos de seguridad, desarrollo y operaciones, pero por sobre todo, contar con una organización que respalde y comprenda el valor crítico que representa la cultura y conocimiento de la seguridad en el negocio.
A continuación, se presentan algunos consejos adicionales para mejorar la seguridad de CI/CD:
- Utilizar un framework de seguridad de CI/CD. Hay varios frameworks disponibles que pueden ayudar a las organizaciones a implementar un enfoque holístico para la seguridad de CI/CD. Estos frameworks proporcionan una serie de controles y recomendaciones que pueden ayudar a las organizaciones a reducir su superficie de ataque.
- Implementar revisiones de seguridad automatizadas. Las revisiones de seguridad automatizadas pueden ayudar a los equipos a identificar y remediar vulnerabilidades de forma rápida y eficiente. Estas revisiones pueden realizarse en el código fuente, los artefactos de compilación y los archivos de configuración.
- Monitorizar los flujos de datos. Es importante monitorizar los flujos de datos a través de la pipeline de CI/CD para detectar anomalías que puedan indicar un ataque. Esto puede hacerse mediante el uso de sistemas de detección de intrusiones (IDS) y sistemas de detección de malware (IDS).
- Implementar controles de acceso granulares. Es importante implementar controles de acceso granulares para restringir el acceso a los sistemas y herramientas de CI/CD a los usuarios autorizados. Esto puede ayudar a evitar que los atacantes exploten vulnerabilidades para obtener acceso a la pipeline.
- Seguridad . Es importante educar a los empleados sobre los riesgos de seguridad de CI/CD y las medidas que pueden tomar para protegerse. Esto puede incluir la formación sobre las mejores prácticas de seguridad de código, la gestión de accesos y la higiene de las credenciales.
Al seguir estos consejos, las organizaciones pueden mejorar significativamente la seguridad de sus pipelines de CI/CD y proteger sus aplicaciones y cadenas de suministro de software de los ataques.
Basado en la columna de Bill Doerrfeld
