Underc0de

Foros Generales => Noticias Informáticas => Mensaje iniciado por: AXCESS en Agosto 15, 2024, 12:42:27 AM

Título: Se filtran en GitHub Actions tokens de autenticación en proyectos populares
Publicado por: AXCESS en Agosto 15, 2024, 12:42:27 AM
(https://i.postimg.cc/3WQNwDZM/GitHub.png) (https://postimg.cc/Zvj47ngj)

Se descubrió que varios proyectos de código abierto de alto perfil, incluidos los de Google, Microsoft, AWS y Red Hat, filtraban tokens de autenticación de GitHub a través de artefactos de GitHub Actions en flujos de trabajo de CI/CD.

Los atacantes que robaran estos tokens podrían obtener acceso no autorizado a repositorios privados, robar código fuente o inyectar código malicioso en proyectos.

El descubrimiento de Unit 42 de Palo Alto Networks provocó la acción de los propietarios de repositorios populares donde se filtraron secretos a través de artefactos de GitHub Actions. Sin embargo, los problemas subyacentes siguen sin resolverse ya que GitHub decidió no abordar el riesgo, colocando la responsabilidad sobre los usuarios para proteger sus artefactos.

Dada la situación, los usuarios de GitHub deben comprender los riesgos, evaluar su exposición y tomar medidas para evitar filtraciones en el futuro.

Artefacto generado por GitHub Actions
(https://i.postimg.cc/MZFLvJjp/Artifact-generated-by-Git-Hub-Actions.png) (https://postimg.cc/dDG6xXBb)

Fuga de tokens de GitHub

El informe de Unit 42 destaca una combinación de factores, que incluyen configuraciones predeterminadas inseguras, configuraciones incorrectas del usuario y controles de seguridad insuficientes, que pueden provocar la fuga de tokens de GitHub en lo que ellos llaman un ataque "ArtiPACKED".

El primer punto de riesgo es la acción 'actions/checkout', que se usa comúnmente en los flujos de trabajo de GitHub para clonar el código del repositorio de modo que esté disponible durante la ejecución del flujo de trabajo.

De manera predeterminada, esta acción conserva el token de GitHub en el directorio .git local (oculto) como se requiere para las operaciones autenticadas dentro del flujo de trabajo.

Si un usuario carga por error todo el directorio de pago como parte de un artefacto, el token de GitHub dentro de la carpeta git quedará expuesto.

Token de GitHub expuesto públicamente
(https://i.postimg.cc/FH4XHX2J/Publicly-exposed-Git-Hub-token.png) (https://postimg.cc/2V2K0Mjz)

Otra información confidencial que podría estar contenida en esa carpeta incluye claves de API, tokens de acceso a servicios en la nube y varias credenciales de cuenta.

Una exposición similar por cargas erróneas de artefactos puede ocurrir por artefactos generados durante el proceso CI/CD, como resultados de compilación y resultados de pruebas, que se almacenan y son accesibles por hasta tres meses.

Otro punto de falla son las canalizaciones CI/CD que usan variables de entorno para almacenar tokens de GitHub. Si las acciones o scripts dentro del flujo de trabajo registran estas variables, ya sea intencionalmente o por error, los registros se cargan como artefactos.

La Unidad 42 señala que la acción 'super-linter' puede crear registros detallados que incluyen variantes de entorno cuando la propiedad 'CREATE_LOG_FILE' está configurada en 'True'.

Explotación de las fugas

En última instancia, los atacantes buscarían explotar escenarios de condición de carrera específicos donde los tokens efímeros de GitHub deben extraerse de los registros y usarse antes de que caduquen.

Los tokens de GitHub siguen siendo válidos durante la duración del trabajo del flujo de trabajo, por lo que su potencial de explotación varía según el caso.

El 'Actions_Runtime_Token', utilizado internamente por GitHub para almacenar en caché y administrar artefactos, normalmente es válido durante seis horas, por lo que la ventana de explotación es pequeña.

Los secretos y tokens personalizados, como las claves de API o los tokens de acceso para servicios en la nube, tienen una vida útil variable, desde unos pocos minutos hasta que nunca caducan.

La Unidad 42 presenta un escenario de ataque que identifica proyectos o repositorios públicos que utilizan GitHub Actions y utiliza scripts automatizados para escanearlos en busca de criterios que aumenten la probabilidad de generación de artefactos.

Un conjunto diferente de scripts podría descargar automáticamente artefactos de las canalizaciones de CI/CD de los repositorios de destino, lo que es un proceso simple en el caso de los repositorios públicos. Luego, los examinaría en busca de secretos.

Flujo de Ataque
(https://i.postimg.cc/pT96BswH/Attack-flow.png) (https://postimg.cc/qhTwJxBb)

Mitigación

La Unidad 42 identificó los siguientes 14 casos de grandes proyectos de código abierto que expusieron artefactos con tokens de GitHub y los informó a las partes afectadas para su remediación:

Firebase (Google)
OpenSearch Security (AWS)
Clair (Red Hat)
Active Directory System (Adsys) (Canonical)
JSON Schemas (Microsoft)
TypeScript Repos Automation, TypeScript Bot Test Triggerer, Azure Draft (Microsoft)
CycloneDX SBOM (OWASP)
Stockfish
Libevent
Guardian for Apache Kafka (Aiven-Open)
Git Annex (Datalad)
Penrose
Deckhouse
Concrete-ML (Zama AI)

En general, se recomienda a los usuarios de GitHub que eviten incluir directorios completos en los artefactos cargados, limpien los registros y revisen periódicamente las configuraciones de la canalización de CI/CD.

Las configuraciones predeterminadas para acciones peligrosas como 'acciones/desprotección' deben ajustarse para que las credenciales no persistan. Además, los permisos de token utilizados en los flujos de trabajo deben establecerse con el menor privilegio necesario para limitar el daño en caso de que queden expuestos.

Fuente:
BleepingComputer
https://www.bleepingcomputer.com/news/security/github-actions-artifacts-found-leaking-auth-tokens-in-popular-projects/