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

"me hackearon..."

- Anónimo

Introducción

La seguridad de los procesos de Integración Continua y Entrega Continua (CI/CD) se ha convertido en un tema cada vez más importante a medida que los pipelines de CI/CD se vuelven más complejos y su uso se extiende. Estas superficies de ataque dinámicas requieren un enfoque cultural y técnico, no solo tener procesos tediosos y a menudo absurdos que solo garantizan que los equipos se desgasten rápidamente y las empresas paguen por sus propias pérdidas e incluso las multipliquen.

QUé es "shift left" y "shift right"? Fuente: https://www.dynatrace.com/news/blog/what-is-shift-left-and-what-is-shift-right/

Para enfrentar este escenario, los equipos, y no solo los equipos de seguridad, necesitan adoptar un enfoque holístico que proteja todo el flujo de CI/CD, desde el código fuente hasta la producción, a través de nuestros pipelines. Esto incluye tres enfoques clave:

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 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 sí 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 principio 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 eludidas o bypasseadas, con el consiguiente "acceso directo" a producción. Puedes mitigar riesgos implementando RBAC (Control de Acceso Basado en Roles), políticas de aislamiento de redes y conectividades diferenciadas, con monitoreo persistente/alertas de accesos y, sobre todo, implementar GitOps, evitando que tus entornos de ejecución requieran ser accedidos por distintos roles, sino que dicho entorno no sea quien se responsabiliza de "ir a buscar el recurso a desplegar" a un punto externo, generalmente un repositorio git.

Un enfoque holístico para la seguridad de CI/CD requiere la cooperación de los equipos de seguridad, desarrollo y operaciones, pero, sobre todo, contar con una organización que respalde y comprenda el valor crítico que representa la cultura y el conocimiento de la seguridad en el negocio.

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.
  • 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.
  • 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.
  • 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.
  • Educar a los empleados sobre los riesgos de seguridad de CI/CD y las medidas que pueden tomar para protegerse.

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

Bill Doerrfeld Articles and Insights
Bill Doerrfeld lends us insights and views on DevOps in the following articles
Nicolás Georger

Nicolás Georger

Self-taught IT professional driving innovation & social impact with cybernetics, open source (Linux, Kubernetes), AI & ML. Building a thriving SRE/DevOps community at SREDevOps.org. I specialize in simplifying solutions through cloud native technologies and DevOps practices.