星期六, 28 9 月, 2024

ArtiPACKED: 潛在的 GitHub Actions 安全風險

Recientemente, el investigador de seguridad de Palo Alto Networks Unit 42, Yaron Avital, descubrió una técnica de ataque llamada “ArtiPACKED” en los artefactos de GitHub Actions. Este ataque puede ser causado por una configuración insegura o incorrecta de GitHub Actions, lo que puede llevar a la filtración de servicios en la nube de terceros y tokens de GitHub, permitiendo que los atacantes tomen el control de todo el repositorio e incluso obtengan acceso a los entornos en la nube de la organización.

GitHub Action es un servicio de CI/CD proporcionado por GitHub que automatiza los procesos para reducir errores, mejorar la calidad del mantenimiento, acortar el tiempo de desarrollo y aumentar la eficiencia. CI (integración continua) se refiere a la automatización de pruebas y validaciones después de enviar el código para garantizar que funcione correctamente en el entorno de producción, mientras que CD (implementación continua) es el proceso de implementar automáticamente el código después de pasar las pruebas. Estos servicios no solo permiten una actualización rápida y frecuente de las aplicaciones, sino que también reducen los errores en el proceso de implementación manual.

Yaron Avital descubrió que durante el proceso de GitHub Action, los archivos de artefactos generados durante las pruebas o ejecución pueden ser compartidos con otros proyectos en el mismo flujo de trabajo. Estos archivos son públicos y se conservan durante 90 días, lo que significa que los atacantes pueden leerlos y obtener información confidencial, incluidos los tokens GITHUB_TOKEN y ACTIONS_RUNTIME_TOKEN, que pueden ser utilizados para realizar ataques.

En GitHub, hay dos tipos de tokens que se utilizan con frecuencia:

– GITHUB_TOKEN: es una credencial generada automáticamente que se utiliza para autenticar operaciones en el repositorio durante el flujo de trabajo de GitHub Actions. Cada vez que se ejecuta un flujo de trabajo de GitHub Actions, se genera un GITHUB_TOKEN y se establece como una variable de entorno en el flujo de trabajo. Aunque el GITHUB_TOKEN caduca al finalizar el flujo de trabajo, debido a la velocidad de mejora de la función de artefactos en la versión 4, los atacantes pueden aprovechar una condición de carrera para descargar los artefactos durante la ejecución del flujo de trabajo y robar y utilizar estos tokens.

– ACTIONS_RUNTIME_TOKEN: es un token JSON Web Token (JWT) que generalmente se genera automáticamente por GitHub Actions durante la ejecución del flujo de trabajo. Este token se utiliza internamente para operaciones de flujo de trabajo, como la carga de artefactos (actions/upload-artifact) y el almacenamiento en caché (actions/cache), y tiene una validez de hasta seis horas. Si un atacante puede obtener este token durante ese tiempo, puede utilizarlo para realizar acciones maliciosas.

Además, hay dos formas en que estos tokens pueden ser expuestos involuntariamente:

– Al utilizar funciones básicas de GitHub, como la clonación con checkout, si el usuario no presta atención y sube un archivo .git que contiene el token a un repositorio público de GitHub.
– El archivo de registro del verificador de código Super-linter puede contener información detallada y útil para los desarrolladores, como variables de entorno que contienen tokens. Si la propiedad CREATE_LOG_FILE se establece en True, esto puede exponer el software a riesgos. Actualmente, Super-linter ha eliminado las variables de entorno del archivo de registro.

Además, Yaron Avital señaló que muchos usuarios no son conscientes de la importancia de escanear los artefactos y recomendó hacerlo para defenderse de este tipo de ataques. También instó a los usuarios a considerar posibles amenazas en cada etapa, ya que a menudo son los pequeños detalles ignorados los que pueden ser explotados. De hecho, muchas empresas tecnológicas de renombre, como Amazon Web Services (AWS), Google, Microsoft, Red Hat y Ubuntu, también se enfrentan a este problema

最新文章