Atacantes usan falla en paquetes 'nx npm' para robar acceso a Amazon Web Services en 72 horas
Un grupo de ciberdelincuentes, conocido como UNC6426, aprovechó vulnerabilidades en la cadena de suministro del paquete 'nx npm' para comprometer por completo el entorno en la nube de una empresa en tan solo 72 horas. ¿Cómo lo hicieron? Robaron las claves de un desarrollador y las usaron para obtener acceso no autorizado a la nube y robar datos. Este incidente subraya la importancia de proteger las cadenas de suministro de software y los accesos a la nube.
Cómo funciona el ataque
El ataque se desencadenó por una vulnerabilidad en el flujo de trabajo 'pull_request_target' (un tipo de ataque llamado 'Pwn Request') dentro del paquete 'nx npm'. Esto permitió a los atacantes obtener privilegios elevados y acceder a información sensible, incluyendo un token GITHUB_TOKEN. Luego, insertaron versiones troyanizadas del paquete en el registro npm (un repositorio de paquetes de código para JavaScript). Estos paquetes contenían un script 'postinstall' que, a su vez, ejecutaba un ladrón de credenciales JavaScript llamado QUIETVAULT. QUIETVAULT se encargaba de robar variables de entorno, información del sistema y tokens valiosos, como los tokens de acceso personal (PAT) de GitHub. Para ello, usaron una herramienta de modelo de lenguaje grande (LLM) que ya estaba instalada en el sistema.
Un empleado de la empresa víctima ejecutó un editor de código que utilizaba el plugin Nx Console. Esto activó una actualización que, sin saberlo, ejecutó QUIETVAULT. Dos días después del primer ataque, los delincuentes usaron el token robado para buscar secretos dentro del entorno GitHub de la víctima utilizando una herramienta legítima llamada Nord Stream. Esto les permitió encontrar las credenciales de una cuenta de servicio de GitHub. Con esta cuenta, y usando el parámetro '--aws-role' de la herramienta, generaron tokens temporales de AWS Security Token Service (STS) para el rol "Actions-CloudFormation", obteniendo así acceso al entorno AWS de la víctima.
El rol "Github-Actions-CloudFormation" comprometido tenía demasiados permisos. UNC6426 usó este permiso para implementar una nueva pila de AWS con las capacidades ["CAPABILITY_NAMED_IAM","CAPABILITY_IAM"]. El único propósito de esta pila era crear un nuevo rol de IAM y adjuntarle la política 'arn:aws:iam::aws:policy/AdministratorAccess'. Así, los atacantes lograron escalar desde un token robado hasta permisos completos de administrador de AWS en menos de 72 horas.
- Robo de token de GitHub
- Acceso a AWS mediante el rol "Github-Actions-CloudFormation"
- Creación de un nuevo rol de administrador
- Robo de datos y destrucción de recursos en la nube
A quién afecta
Este tipo de ataques puede afectar a cualquier empresa que utilice paquetes npm y tenga infraestructura en la nube, especialmente aquellas que utilizan GitHub Actions y Amazon Web Services (AWS). La clave está en la seguridad de la cadena de suministro de software y la correcta configuración de los permisos en la nube.
Cómo protegerse
Para defenderse de este tipo de amenazas, se recomienda:
- Usar gestores de paquetes que prevengan la ejecución de scripts 'postinstall' o herramientas de 'sandboxing' (aislamiento).
- Aplicar el principio de mínimo privilegio (PoLP) a las cuentas de servicio CI/CD y a los roles vinculados a OIDC. Esto significa dar solo los permisos estrictamente necesarios.
- Utilizar tokens de acceso personal (PAT) con permisos específicos y de corta duración.
- Eliminar los privilegios permanentes para acciones de alto riesgo, como la creación de roles de administrador.
- Supervisar la actividad anómala de IAM (Identity and Access Management).
- Implementar controles sólidos para detectar riesgos de 'Shadow AI' (uso no autorizado de herramientas de inteligencia artificial).
Qué significa esto para ti
Este ataque demuestra que la seguridad de la cadena de suministro de software es crucial. Los atacantes están utilizando técnicas cada vez más sofisticadas, incluyendo la inteligencia artificial, para comprometer sistemas. Es fundamental que tanto usuarios como empresas tomen medidas para protegerse, siguiendo las recomendaciones mencionadas anteriormente y manteniéndose al día sobre las últimas amenazas y vulnerabilidades.
