TempMail Ninja
//

Ataque a PyTorch Lightning: Robo Masivo de Credenciales

7 min de lectura
TempMail Ninja
Ataque a PyTorch Lightning: Robo Masivo de Credenciales

En el vertiginoso mundo del desarrollo de Inteligencia Artificial, la confianza en las herramientas de código abierto es el cimiento sobre el cual se construyen los modelos del mañana. Sin embargo, el 30 de abril de 2026, ese cimiento sufrió una fractura sísmica. Un sofisticado Ataque a PyTorch Lightning, una de las librerías de Python más fundamentales para el entrenamiento de modelos de aprendizaje profundo, ha puesto en jaque a miles de desarrolladores y organizaciones a nivel global. Este incidente no es un evento aislado, sino la expansión de la agresiva campaña conocida como “Mini Shai-Hulud”, que anteriormente había devastado ecosistemas de JavaScript.

Anatomía del Ataque a PyTorch Lightning: ¿Cómo ocurrió la infiltración?

El Ataque a PyTorch Lightning se manifestó a través de la publicación de dos versiones maliciosas en el Python Package Index (PyPI): la 2.6.2 y la 2.6.3. A diferencia de otros ataques de “typosquatting” donde se utilizan nombres similares pero incorrectos, este fue un compromiso directo de la cadena de suministro, logrando inyectar código malicioso en el paquete legítimo.

La sofisticación técnica de este ataque radica en su sigilo. Según los informes de equipos de ciberseguridad como Socket y Aikido Security, el malware no se activa simplemente al descargar el paquete, sino en el momento exacto en que el desarrollador ejecuta la instrucción import lightning. Esta técnica garantiza que el código malicioso se ejecute en el contexto de un entorno de desarrollo activo o de una canalización de CI/CD (Integración Continua / Despliegue Continuo), donde las credenciales suelen estar expuestas en la memoria del sistema.

El mecanismo de ejecución: El truco del “Bun”

Una de las características más inusuales y alarmantes de este Ataque a PyTorch Lightning es su arquitectura multiplataforma. Aunque se trata de una librería de Python, el ataque utiliza un motor de ejecución de JavaScript para llevar a cabo su misión:

  • Etapa 1: Tras la importación del módulo, se activa un script oculto llamado start.py dentro de un directorio no documentado llamado _runtime.
  • Etapa 2: Este script descarga de forma silenciosa el ejecutable de Bun, un runtime de JavaScript extremadamente rápido, directamente desde GitHub.
  • Etapa 3: Bun se utiliza para ejecutar un payload de 11 MB altamente ofuscado llamado router_runtime.js.

El uso de un runtime de JavaScript dentro de un entorno de Python permite a los atacantes evadir muchas de las herramientas de escaneo estático tradicionales que solo buscan patrones de malware específicos de Python (como llamadas sospechosas a os.system o subprocess). Al mover la lógica principal a un archivo JavaScript de 11 MB, el Ataque a PyTorch Lightning logra ocultar su verdadera intención tras capas de ofuscación que los analistas de seguridad tardaron minutos críticos en descifrar.

Mini Shai-Hulud: Un gusano diseñado para el ecosistema de IA

El nombre de la campaña, Mini Shai-Hulud (una referencia a los colosales gusanos de arena de la saga Dune), no es casualidad. Este malware actúa como un gusano que “devora” credenciales y se propaga a través de la infraestructura de desarrollo. La investigación vincula este incidente con un ataque previo ocurrido apenas 24 horas antes, que afectó a paquetes de SAP en el registro npm y al cliente de Intercom.

El objetivo principal del Ataque a PyTorch Lightning es la recolección masiva de credenciales. El payload está programado para escanear más de 80 rutas de archivos diferentes en busca de secretos sensibles. Entre los activos que el malware intenta robar se encuentran:

  • Tokens de GitHub: Especialmente aquellos con prefijos ghp_ y gho_.
  • Credenciales de Proveedores de Nube: Claves de acceso de AWS (incluyendo variables como AWS_ACCESS_KEY_ID y AWS_SECRET_ACCESS_KEY), secretos de Azure Key Vault y configuraciones de GCP.
  • Entornos de Contenedores: Tokens de cuentas de servicio de Kubernetes.
  • Tokens de Publicación: Credenciales para publicar paquetes en npm y PyPI, lo que facilita la propagación del gusano.
  • Billeteras de Criptomonedas: Datos de configuración de billeteras como Electrum y Signal.

Extracción de secretos en la memoria de CI/CD

Lo que eleva la gravedad del Ataque a PyTorch Lightning por encima de un simple robo de archivos es su capacidad para interactuar con los procesos del sistema. En entornos de GitHub Actions (específicamente en ejecutores Linux), el malware es capaz de volcar la memoria del proceso Runner.Worker. Al hacerlo, puede extraer secretos marcados como “protegidos” por GitHub, que normalmente no serían accesibles para scripts de terceros. Esto permite a los atacantes comprometer de manera total las tuberías de producción de una empresa sin dejar rastros evidentes de acceso no autorizado.

La capacidad de autopropagación: El veneno en la rama

El Ataque a PyTorch Lightning no se detiene en el robo. Si el malware detecta que tiene acceso de escritura a un repositorio de GitHub (utilizando un token robado), activa un mecanismo de “envenenamiento de repositorio”. El gusano intenta inyectar código malicioso en hasta 50 ramas diferentes del repositorio comprometido.

Además, si encuentra credenciales de npm válidas, el malware modifica los paquetes locales del desarrollador. Inserta un hook de postinstall en el archivo package.json, aumenta la versión del parche de la librería y vuelve a empaquetar el archivo .tgz. Si el desarrollador, sin saberlo, publica una actualización de su propio software, estará distribuyendo el gusano a todos sus usuarios, creando una reacción en cadena exponencial.

Este comportamiento es característico de los ataques de TeamPCP, el grupo de actores de amenazas al que se le atribuye la campaña. Su técnica de exfiltración también es notable: en lugar de enviar los datos a un servidor C2 (Comando y Control) tradicional, crean repositorios públicos en GitHub con nombres temáticos de Dune (como EveryBoiWeBuildIsaWormBoi) y cargan los datos robados en archivos JSON protegidos por una clave RSA de 4096 bits.

Impacto en la comunidad de ML y Ciencia de Datos

PyTorch Lightning es utilizado por cientos de miles de ingenieros para simplificar el entrenamiento de modelos complejos. Su presencia en servidores de entrenamiento de alto rendimiento, que a menudo tienen acceso a GPUs costosas y conjuntos de datos propietarios, convierte al Ataque a PyTorch Lightning en una amenaza de seguridad nacional para empresas tecnológicas.

El riesgo no es solo la pérdida de datos, sino la integridad de los modelos. Con acceso a los repositorios de código, un atacante podría introducir vulnerabilidades sutiles en los modelos de IA —un ataque conocido como model poisoning— que podrían hacer que un sistema de conducción autónoma falle en condiciones específicas o que un modelo de detección de fraude ignore transacciones maliciosas diseñadas por los atacantes.

Medidas preventivas y remediación inmediata

Si usted o su equipo han trabajado con PyTorch Lightning durante las últimas 24 horas, es imperativo actuar de inmediato. Aunque PyPI ya ha puesto en cuarentena las versiones afectadas, el riesgo persiste para quienes ya las instalaron.

Pasos recomendados para asegurar su entorno:

  1. Auditoría de versiones: Ejecute pip list y verifique si tiene instaladas las versiones 2.6.2 o 2.6.3 de lightning. Si es así, proceda a desinstalarlas inmediatamente. La versión 2.6.1 es la última base limpia verificada.
  2. Rotación de secretos: Debido a que el Ataque a PyTorch Lightning está diseñado para robar tokens de GitHub, AWS, Azure y GCP, debe invalidar y rotar todas las claves API y tokens que hayan estado presentes en las variables de entorno de las máquinas afectadas.
  3. Limpieza de CI/CD: Si sus pipelines de GitHub Actions se ejecutaron utilizando las versiones comprometidas, considere que todos los secretos del repositorio y de la organización podrían estar en manos de TeamPCP. Rote las credenciales de despliegue y revise los commits recientes en busca de inyecciones de código sospechosas.
  4. Anclaje de dependencias: En sus archivos requirements.txt o pyproject.toml, no utilice rangos de versiones abiertos (como lightning>=2.0). Use versiones fijas y verificadas (ej: lightning==2.6.1) y considere el uso de archivos lock con hashes SHA-256 para verificar la integridad de cada descarga.

El futuro de la seguridad en la IA: Más allá de los parches

El Ataque a PyTorch Lightning de abril de 2026 marca un punto de inflexión. Durante años, la comunidad de IA se ha centrado en la innovación a costa de la seguridad operativa. La facilidad con la que un actor de amenazas pudo infiltrar una de las librerías más prestigiosas del mundo demuestra que los métodos de gobernanza actuales son insuficientes.

Para finales de 2026, se espera que la industria adopte de forma obligatoria el uso de SBOMs (Software Bill of Materials) enriquecidos y sistemas de gobernanza “agentic”. Como indican expertos de Cloudsmith y SentinelOne, ya no basta con escaneos estáticos una vez al día. Necesitamos una supervisión en tiempo real que pueda detectar la descarga de runtimes inesperados (como Bun) dentro de entornos que deberían ser estrictamente de Python.

En conclusión, el Ataque a PyTorch Lightning es un recordatorio brutal de que en la era de la IA, el código que “simplemente funciona” también puede ser el código que “simplemente nos destruye”. La vigilancia constante y el principio de mínimo privilegio en los entornos de desarrollo ya no son opciones para las empresas tecnológicas; son requisitos de supervivencia.

TN

Escrito por

TempMail Ninja

Experto en privacidad digital y seguridad en línea. Apasionado por crear herramientas que protejan la identidad de los usuarios en internet.