A mediados de septiembre, un incidente en la cadena de suministro de software, comúnmente denominado "ataque s1ngularity", marcó un punto de inflexión en el uso de la Inteligencia Artificial por parte de los adversarios.
Si bien el vector de acceso inicial era familiar (un ataque de phishing dirigido a los mantenedores de paquetes npm), el malware resultante era novedoso. Este es uno de los primeros ataques en los que los agentes locales de IA se utilizaron como arma para ayudar en el robo de credenciales.
Esta técnica representa una escalada amenazante en el ingenio de los atacantes, que va más allá de simples secuencias de comandos personalizadas para aprovechar las capacidades de resolución de problemas de las herramientas de IA ya disponibles en la máquina de un objetivo.
Me senté con Paul McCarty, Jefe de Investigación de Safety Cybersecurity, quien recientemente publicó un análisis detallado del ataque, para discutir sus hallazgos, incluyendo los *prompts* de IA utilizados para buscar secretos y evitar las medidas de seguridad, y cómo esta amenaza podría evolucionar en el futuro. Mira el video de arriba o sigue leyendo para obtener una descripción general de lo que hablamos.
La anatomía de un ataque posterior a la instalación
Durante el ataque, se enviaron actualizaciones maliciosas a paquetes npm populares, incluyendo nx, lo que finalmente resultó en el robo de miles de Developers credenciales. Un componente clave del malware fue una secuencia de comandos posterior a la instalación que el atacante nombró telemetry.js.
La función principal de esta secuencia de comandos era ejecutarse inmediatamente después de la instalación y buscar archivos confidenciales y secretos en el host comprometido. Fundamentalmente, el atacante introdujo un nuevo método de detección, verificando la presencia de agentes CLI locales para modelos de lenguaje grande (LLM) populares, específicamente Claude, Gemini y AWS Q.
McCarty describe esto como una clara evolución del enfoque de "vivir de la tierra", donde los atacantes abusan de herramientas preinstaladas y de confianza. Los desarrolladores a menudo tienen estos agentes de la Interfaz de Línea de Comandos (CLI) instalados para optimizar los flujos de trabajo de codificación, lo que los convierte en un objetivo de alto valor y fácilmente disponible para un atacante.
Aprovechándose de los avisos locales
La secuencia de comandos maliciosa telemetry.js no solo buscaba archivos de forma pasiva; usaba agentes de IA para hacer el trabajo pesado a través de un prompt.
Verificación inicial: La secuencia de comandos detectaría si un agente de IA compatible (aplicación CLI) estaba instalado y en qué plataforma (el malware se dirigía principalmente a hosts Linux y macOS).
El prompt: El malware luego ejecutó un prompt especialmente diseñado a través del agente instalado. El objetivo principal del prompt era la enumeración de archivos: pedirle a la IA que buscara recursivamente en el sistema de archivos del host y generara una matriz completa de archivos que podrían contener secretos.
Secretos específicos: Esto no fue una búsqueda a ciegas. El *prompt* se centró en "archivos jugosos", como .env y .config archivos, que comúnmente contendrían secretos, como:
Tokens de GitHub y npm
Credenciales de la plataforma en la nube (por ejemplo, tokens de AWS)
Claves SSH
El papel del agente de IA era utilizar los vastos datos de capacitación del LLM y la conciencia contextual del entorno del objetivo para determinar las mejores ubicaciones para buscar. El agente de IA proporcionó eficazmente al atacante una herramienta de detección que podía adaptarse dinámicamente al entorno objetivo.
Los agentes de IA son impredecibles, pero lo suficientemente confiables a escala
El análisis de la carga útil del ataque de McCarty reveló una visión fascinante del proceso de pensamiento del atacante. Múltiples actualizaciones sucesivas de los paquetes envenenados revelan al menos cuatro versiones diferentes del *prompt* de IA.
Esta rápida iteración fue una batalla activa contra el no determinismo y las medidas de seguridad inherentes a las aplicaciones de IA. El atacante tuvo que experimentar continuamente para encontrar el *prompt* perfecto que:
Eludir medidas de protección: Evite las protecciones integradas del agente que rechazan solicitudes maliciosas evidentes o solicitudes para acceder a recursos del sistema de archivos.
Maximice los resultados: Genere la lista más completa de rutas de archivos confidenciales
Optimizar la velocidad: Limite el enfoque para excluir los archivos de código fuente comunes, acelerando el proceso general de recopilación de datos
Este proceso iterativo demuestra una de las deficiencias de las herramientas de IA: los usuarios a menudo tienen que hacer la misma pregunta varias veces, de diferentes maneras, para acercarse a un resultado exitoso. También destaca un riesgo creciente para los defensores: no hay garantías de que los agentes de IA se adhieran a las barreras de protección. Como demostró la propia prueba de McCarty, los agentes de IA a veces "ignoraron las barreras de protección y simplemente entraron en modo YOLO".
Este incidente confirma que la IA agentic representa una nueva superficie de ataque importante. Cuando se conectan a estaciones de trabajo de Developer, pueden ser utilizados como un potente motor de detección para la recopilación de credenciales y otra información confidencial.
Lectura recomendada
Para un desglose técnico y profundo de las cuatro versiones de prompts maliciosos de IA y sus diferentes tasas de éxito contra Claude y Gemini, recomendamos encarecidamente leer el análisis completo de Paul McCarty y el equipo de Seguridad: Analysing the AI used in the NX Attack.