10 vulnerabilidades que se pueden presentar en tu CI/CD – Parte 1 de 2
2022-8-31 15:0:37 Author: thehackerway.com(查看原文) 阅读量:16 收藏

Demostración en vídeo de este post

Con el paso de los años y la evolución de los equipos de desarrollo, los entornos con soluciones de integración y despliegue continuos son cada vez más frecuentes. No obstante, cuando se habla de DevSecOps es importante valorar los riesgos y las potenciales amenazas a las que se enfrenta el entorno y en este sentido, merece la pena conocer el proyecto Top 10 CI/CD. Se trata de una guía que recuerda al conocido OWASP Top 10, sin embargo en este caso orientado completamente a CI/CD.
En el documento se explican las 10 amenazas más habituales en este tipo de entornos y para cada una de ellas, se encuentra una descripción detallada sobre en qué consiste la amenaza, impacto, recomendaciones y referencias.

A continuación, se describe en qué consiste cada uno de estos defectos para que quede mucho más claro.

Según la guía, se trata de la vulnerabilidad muy frecuente y cuyo impacto puede ser devastador para la seguridad general del entorno. Se produce cuando no se cuenta con mecanismos de control estrictos sobre cada una de las dependencias, librerías o servicios de terceros y mediante la inclusión de elementos maliciosos, un atacante tendría la posibilidad de comprometer el entorno. Este tipo de situación es habitual cuando se le permite a un desarrollador, que puede ser un atacante, subir código, librerías/dependencias o programas al repositorio de fuentes y el entorno de CI/CD confía en estos componentes sin validar su seguridad e integridad.

Tal como su nombre indica, se trata de un problema bastante frecuente en entornos en donde hay una amplia variedad de identidades que se deben gestionar y no se cuenta con sistemas especializados para hacerlo o no están correctamente configurados, como por ejemplo soluciones del tipo IAM. Durante los procesos de integración de software o pases a producción, es necesario contar con cuentas de usuario o identidades con los privilegios necesarios para realizar este tipo de labores tan criticas. En este sentido es de vital importancia contar con modelos y políticas de seguridad que gobiernen los procesos para evitar intrusiones, fugas de información y otros problemas relacionados con la integridad, confidencialidad o disponibilidad.

En este caso, la guía hace referencia a la gestión de dependencias que se produce en proyectos de software, en donde es posible descargar una librería con código vulnerable o con elementos maliciosos y dicho componente se sube directamente al repositorio de fuentes, pasando por cada una de las etapas del pipeline hasta llegar a un entorno productivo. El motivo por el que este problema es tan frecuente se debe a que los proyectos de software son cada vez más complejos y requieren en ocasiones de cientos de librerías, las cuales a su vez, necesitan de otras para funcionar correctamente. En este escenario es posible que alguna de estas dependencias, ya sean directas o indirectas, sirvan como una vía de acceso a un atacante.

Las vulnerabilidades PPE se producen cuando un atacante tiene acceso al pipeline que ejecuta el proceso de construcción del proyecto y tiene la habilidad de incluir comandos o código malicioso como parte de dicho proceso. Este tipo de vulnerabilidades tienen cierta relación con CICD-SEC-2 ya que si el entorno de CI/CD no cuenta con mecanismos de autenticación y autorización bien controlados, un atacante podría encontrar una vía de acceso a los pipelines de construcción y manipularlos con el objetivo de ejecutar rutinas maliciosas. Hay que tener en cuenta que un atacante puede tener acceso al pipeline de forma directa, por ejemplo accediendo con un usuario y contraseña a la plataforma de CI/CD, o de forma indirecta modificando alguno de los ficheros IaC ubicados en el SCM, por ejemplo alterando un fichero Jenkinsfile o algún otro relacionado con Gitlab-CI, Github Actions, Circle-CI, etc.

Como se ha mencionado antes en el CICD-SEC-4, los pipelines representan el corazón de un entorno CI/CD y por lo tanto se deben implementar mecanismos de control de acceso robustos, en donde solamente  usuarios con los privilegios adecuados puedan crear, modificar o eliminar pipelines. Además, hay que considerar son rutinas que en ocasiones se ejecutan sobre múltiples nodos y pueden tener la capacidad de conectarse con sistemas internos o externos, lo que puede brindarle a un atacante la posibilidad de ejecutar movimientos laterales tanto dentro como fuera del entorno de CI/CD.

La guía incluye 5 puntos más, los cuales explicaré en el siguiente post. Si te ha gustado el artículo o crees que hay algo que se me escapa en estas explicaciones, te invito a que dejes un comentario.

Un saludo y Happy Hack!
Adastra.


文章来源: https://thehackerway.com/2022/08/31/10-vulnerabilidades-que-se-pueden-presentar-en-tu-ci-cd-parte-1-de-2/
如有侵权请联系:admin#unsafe.sh