Skip to main content

Las canalizaciones CI/CD son potentes facilitadores de un desarrollo de software más rápido y frecuente, desde el diseño hasta el despliegue. Pero cuando llegaron por primera vez a la escena tecnológica, a menudo tenían un eslabón perdido: la seguridad.

Eso es un problema, especialmente dadas estadísticas como esta: aproximadamente una de cada cinco organizaciones informó de un incidente de seguridad en su canalización CI/CD en el año anterior, según una encuesta reciente realizada por Techstrong Research.

A medida que las canalizaciones CI/CD se han vuelto cada vez más comunes, también han modificado el panorama de amenazas para los equipos de software. Como señala el Open Worldwide Application Security Project (OWASP) en su guía: “Dada su importancia y popularidad, las canalizaciones CI/CD también son un objetivo atractivo para hackers maliciosos, y su seguridad no puede ser ignorada.”

Want more from The CTO Club?

Create a free account to finish this piece and join a community of CTOs and engineering leaders sharing real-world frameworks, tools, and insights for designing, deploying, and scaling AI-driven technology.

Este campo es un campo de validación y debe quedar sin cambios.
Name*

En este artículo, profundizaremos en los riesgos específicos, así como en los principios y prácticas eficaces para mitigar esos riesgos y garantizar la seguridad de las canalizaciones CI/CD.

¿Qué es una canalización CI/CD?

Primero, asegurémonos de estar en la misma página: ¿qué es CI/CD? CI/CD es la abreviatura de Integración Continua y Entrega Continua, y se refiere a un conjunto de procesos y herramientas que los equipos modernos de software usan para diseñar, construir y, en última instancia, desplegar, siendo la automatización uno de los principales facilitadores de una entrega y actualización de código más rápidas y frecuentes.

Así es como lo definimos en nuestro artículo anterior, “Descripción general de la canalización CI/CD: Por qué deberías conocerla”: “Una canalización CI/CD es un proceso de desarrollo y entrega de software transparente, automatizado y fiable.”

El objetivo normalmente no es solo entregar más rápido y con mayor frecuencia, sino también mejorar la calidad, la fiabilidad y – siempre que tenga la prioridad adecuada – la seguridad.

Riesgos comunes de seguridad en CI/CD: 5 áreas clave

Las raíces de muchos riesgos de seguridad en CI/CD deberían sonar al menos algo familiares para un profesional de la tecnología. Aspectos como el control de acceso y la sobre concesión de privilegios, la monitorización y el registro insuficientes, las dependencias sin gobernanza y las cadenas de suministro de software contribuyen todos a aumentar los riesgos cuando no se gestionan adecuadamente. 

OWASP ha publicado una lista de los 10 principales riesgos de seguridad en CI/CD que vale la pena consultar como referencia. Es una extensión de la popular lista de los 10 principales riesgos de seguridad en aplicaciones web de OWASP, que es ampliamente aceptada como estándar en la industria de la seguridad de aplicaciones web.

Los riesgos en las canalizaciones CI/CD pueden ser tanto introducidos como agravados por la automatización. Muchos riesgos se introducen automáticamente – o se implementan en producción automáticamente – en las canalizaciones CI/CD. Irónicamente, automatizar la seguridad de esas canalizaciones mediante herramientas de Infraestructura como Código (IaC) u otras formas de automatización también puede introducir o aumentar los riesgos si no se tiene cuidado, señala Derek Ashmore, Principal de Transformación de Aplicaciones en Asperitas.

Estas son cinco áreas clave de riesgo que debes considerar al proteger tus canalizaciones CI/CD, según Ashmore:

  • Control de acceso: “El control de acceso a menudo está sobreaprovisionado por conveniencia y no se adhiere a los principios de mínimo privilegio y control dual”, dice Ashmore. En general, aquí debe prevalecer el principio de mínimo privilegio: no les dé a las personas o a las máquinas acceso a datos o sistemas que realmente no necesitan para realizar su trabajo.
  • Dependencias no validadas: El software actual, y como resultado, las canalizaciones de CI/CD, a menudo dependen de bibliotecas de terceros y otras dependencias externas, y esos componentes a veces tienen vulnerabilidades. “Asegúrese siempre de que las dependencias externas estén validadas y tengan una cadena de custodia auditable”, dice Ashmore.
  • Auditoría y registro: Asegúrese de tener implementadas funciones completas de auditoría y registro de logs. La falta de visibilidad y auditabilidad puede generar exposiciones de seguridad adicionales de las que de otro modo no tendría conocimiento.
  • Escalada de privilegios: La automatización—del tipo intrínseco a CI/CD y la seguridad de CI/CD—puede desarrollarse en silos que generen brechas no intencionadas donde los privilegios pueden elevarse al ejecutar una secuencia de automatización no prevista. “Para mitigar este riesgo, asegúrese de que se implemente el principio de mínimo privilegio y de que se desarrollen casos de prueba para los flujos de trabajo de automatización y las tareas o canalizaciones individuales”, dice Ashmore.
  • Pruebas automatizadas inadecuadas: Las pruebas automatizadas son clave no solo para una sólida seguridad en la canalización CI/CD—piense en cosas como los análisis automáticos de vulnerabilidades para imágenes de contenedor, por ejemplo—sino también para una canalización saludable en general. “Los defectos de la canalización pueden crear vulnerabilidades de seguridad no deseadas y afectar negativamente a los equipos de desarrollo de aplicaciones al impedirles realizar su trabajo asignado”, dice Ashmore.

10 ¡Principales herramientas de CI/CD!

Here's my pick of the 10 best software from the 10 tools reviewed.

Clicks on the links below may earn a commission, which supports our independent testing and review of software and services. Learn more about how we stay transparent.

15 mejores prácticas para una mayor seguridad en CI/CD

Una vez que comprenda bien los riesgos, es momento de enfocarse en las soluciones. Buenas noticias: existen muchas, en parte porque la industria en general ha reconocido la importancia de integrar la seguridad como un pilar fundamental en CI/CD. 

Ashmore de Asperitas nos brindó un resumen de 15 prácticas y tácticas comúnmente aceptadas para reforzar la seguridad en las canalizaciones de CI/CD. Sin más preámbulo:

  1. Utiliza sistemas de control de versiones seguros: Uno de los principales beneficios de los sistemas de control de versiones como Git es capturar el historial de cambios que podría ser necesario para investigar brechas de seguridad u otros problemas. “Idealmente, nada debería cambiarse de forma manual”, dice Ashmore. Consulta nuestra lista completa de herramientas de control de versiones para más opciones: “20 mejores herramientas de control de versiones reseñadas”
  2. Aplica el principio de mínimo privilegio: Asegúrate de que los roles y permisos concedidos tanto a usuarios humanos como a recursos de infraestructura sean mínimos y sigan el principio de mínimo privilegio. Si no lo necesitan, no lo concedas.
  3. Utiliza gestión de secretos: “Evita codificar secretos —contraseñas, tokens, claves API— dentro de las plantillas IaC”, dice Ashmore. En su lugar, usa herramientas de gestión de secretos como HashiCorp Vault, AWS Secrets Manager o Azure Key Vault. Consulta nuestro análisis a fondo sobre herramientas de gestión de secretos para aún más opciones: “Guardianes digitales: Las 24 mejores herramientas de gestión de secretos”
  4. Realiza escaneos de seguridad regulares y automatizados: Utiliza herramientas que escaneen de forma automática vulnerabilidades de seguridad, y hazlo en las etapas más tempranas posibles de tu canalización CI/CD.
  5. Sigue el principio de inmutabilidad: Minimizar cambios manuales, especialmente en los entornos de infraestructura, es una buena estrategia para reducir riesgos. “La infraestructura debe ser inmutable; una vez aprovisionada, no debe alterarse manualmente”, dice Ashmore. “En su lugar, los cambios deben hacerse actualizando el código IaC y redeplegando. Eliminar la posibilidad de cambios manuales es el camino más seguro.”
  6. Utiliza control de acceso basado en roles (RBAC): “Controla el acceso a tus herramientas IaC y entornos usando RBAC”, dice Ashmore. “Sólo los usuarios autorizados deben poder desplegar o modificar la infraestructura.” Kubernetes es otro ejemplo importante aquí, especialmente ya que es una parte clave de muchas canalizaciones CI/CD. No te limites a las configuraciones predeterminadas.
  7. Aplica la idempotencia: Ahora nos ponemos técnicos: la idempotencia es el concepto de poder ejecutar ciertas operaciones —o código, en el caso de ingeniería de software— múltiples veces sin cambiar el resultado. “Diseña IaC [y canalizaciones CI/CD] de forma idempotente, lo que significa que ejecutar el código varias veces no debe cambiar el estado de la infraestructura salvo que sea explícitamente requerido”, dice Ashmore.
  8. Usa la parametrización: Ashmore recomienda usar variables y parametrización en las plantillas IaC para evitar codificar valores dependientes del entorno, como regiones, tamaños de instancias o direcciones IP.
  9. Implementa monitoreo y registro: Se necesitan para detectar actividades no autorizadas o inusuales, y para investigar causas raíz cuando ocurren incidentes. “Servicios como AWS CloudTrail o Azure Monitor pueden ayudar”, dice Ashmore. Aquí tienes dos recursos más: “Las 25 mejores soluciones de monitoreo de logs” y “Guía de las 26 mejores herramientas de monitoreo de infraestructura”
  10. Utiliza herramientas de pruebas de infraestructura: “Incorpora herramientas de pruebas de infraestructura como Test Kitchen, Terratest o InSpec para validar la corrección de tu IaC antes del despliegue”, dice Ashmore.
  11. Implementa detección de deriva de infraestructura: Utiliza herramientas para detectar la deriva de infraestructura —es decir, cambios que ocurren fuera de la canalización CI/CD— y revierte los cambios no autorizados cuando se detecten, aconseja Ashmore.
  12. Cumple con estándares de compliance y seguridad: Asegúrate de que tu canalización CI/CD cumpla con los estándares y marcos regulatorios de seguridad de la industria, como los benchmarks CIS, NIST o GDPR. La lista OWASP Top 10 que compartimos antes es otro ejemplo.
  13. Crea código IaC reutilizable y modular: “Divide el código IaC en componentes reutilizables y modulares, como módulos de Terraform o stacks de AWS CloudFormation”, dice Ashmore.
  14. Documenta tu canalización: Ashmore recomienda crear y mantener documentación detallada de tus políticas IaC, plantillas y procedimientos de seguridad, así como de otros componentes de tu canalización CI/CD.
  15. Actualiza regularmente las herramientas: “Mantén tus herramientas IaC (como Terraform, Ansible, CloudFormation) y cualquier dependencia relacionada actualizadas a las últimas versiones”, dice Ashmore. El mismo consejo se aplica ampliamente a otras herramientas y dependencias en tu canalización: las versiones desactualizadas tienen más probabilidades de presentar riesgos conocidos (y potencialmente desconocidos).

Únete para recibir más información sobre CI/CD

Las canalizaciones CI/CD se han convertido en un pilar del desarrollo de software moderno. Eso significa que la seguridad de CI/CD es igual de crucial. Antes de irte, suscríbete a nuestro boletín y recibe los últimos análisis de los principales referentes de la industria del software.