El Escáner Se Convirtió en la Amenaza

Trivy es una herramienta de seguridad. Las organizaciones la utilizan específicamente para proteger sus canalizaciones de desarrollo de software escaneando imágenes de contenedores y repositorios de código en busca de vulnerabilidades conocidas y secretos codificados. Con 33,200 estrellas en GitHub, se encuentra entre las herramientas de escaneo de seguridad más implementadas en el ecosistema DevSecOps. Ese alcance la convirtió en un objetivo excepcionalmente valioso.

Itay Shakury, mantenedor de Trivy en Aqua Security, confirmó que los actores de amenazas utilizaron credenciales robadas para forzar cambios de dependencias maliciosas en prácticamente todas las versiones etiquetadas de dos componentes principales de GitHub Actions: trivy-action y setup-trivy. El ataque comenzó en las primeras horas de un jueves por la mañana y no fue detectado durante horas, durante las cuales las canalizaciones CI/CD automatizadas en todo el mundo pueden haber descargado y ejecutado el código comprometido.

Qué Significa Forzar Cambios

Forzar cambios es una operación de git que anula los mecanismos de seguridad que protegen los confirmaciones existentes de ser sobrescritas. Para GitHub Actions específicamente, esto es particularmente peligroso. Cuando los desarrolladores fijan sus flujos de trabajo CI/CD a una etiqueta de acción Trivy específica (una práctica de seguridad común destinada a garantizar reproducibilidad), confían en que la etiqueta apunta al mismo código que siempre. Forzar cambios maliciosos en esas etiquetas rompe silenciosamente esta suposición: la configuración de la canalización se ve sin cambios pero ahora ejecuta código controlado por atacantes con los permisos que proporciona el entorno CI/CD.

Qué Hizo el Código Malicioso

El análisis de las etiquetas comprometidas indicó que los atacantes sustituyeron las dependencias legítimas de Trivy con reemplazos maliciosos diseñados para ejecutar código dentro del entorno ejecutor de CI/CD. El objetivo era acceder a secretos: tokens de API, credenciales en la nube, claves de firma y otros valores sensibles que los desarrolladores rutinariamente pasan a las canalizaciones.

Una acción Trivy comprometida que se ejecuta en un flujo de trabajo de GitHub Actions tiene acceso a lo que sea que el flujo de trabajo tenga acceso, que en muchas organizaciones incluye credenciales de despliegue en producción, autenticación de proveedores de nube, claves de firma de artefactos y repositorios de código fuente. El potencial radio de explosión de una sola exfiltración puede propagarse en compromiso de infraestructura en la nube, violaciones de datos e inserción de código malicioso en software de producción.

Respuesta y Contexto Más Amplio

Aqua Security se movió rápidamente una vez que se confirmó el compromiso, rotando credenciales y restaurando el código legítimo a todas las etiquetas afectadas. El equipo recomendó a todos los usuarios tratar cualquier canalización que ejecutó acciones de Trivy durante la ventana de compromiso como potencialmente afectada y rotar inmediatamente todos los secretos accesibles.

Consenso de la comunidad de seguridad: fije GitHub Actions a hashes de confirmación específicos en lugar de nombres de etiqueta mutables. Las etiquetas pueden forzarse; los hashes de confirmación no pueden ser reemplazados silenciosamente sin detección. Esta práctica recomendada conocida ha visto una adopción rezagada, y este incidente probablemente acelerará cambios de política CI/CD organizacional. El ataque es la entrada más reciente en una lista cada vez más larga de compromisos de la cadena de suministro dirigidos a las herramientas de código abierto que sustentan el desarrollo moderno de software — una tendencia que no muestra signos de desaceleración.

Este artículo se basa en reportajes de Ars Technica. Lea el artículo original.