Secretos de Desarrollador en Riesgo: Malware Shai-Hulud Infiltra PyPI a través de 19 Paquetes Científicos
Una nueva ola del ataque de cadena de suministro **Shai-Hulud** ha comprometido 19 paquetes científicos populares en **PyPI**, descargados colectivamente cientos de miles de veces. Descubierta por la firma de seguridad de aplicaciones **Socket**, esta sofisticada campaña despliega malware diseñado para robar una amplia gama de secretos y credenciales de desarrollador, representando una amenaza significativa para los flujos de trabajo de desarrollo de software.

Los hackers han lanzado un nuevo ataque de cadena de suministro **Shai-Hulud**, comprometiendo exitosamente 19 paquetes en el **PyPI** (Python Package Index). Estos paquetes, descargados cientos de miles de veces, fueron troyanizados para entregar malware con el objetivo de robar secretos sensibles de desarrollador.
Muchos de los paquetes afectados son herramientas populares de bioinformática, incluyendo **Dynamo**, **Spateo**, **CoolBox**, **U-FISH** y **Napari-UFISH**.
### Descubrimiento y Mecanismo Técnico
La nueva campaña salió a la luz por la empresa de seguridad de aplicaciones **Socket**. Su análisis reveló 37 lanzamientos maliciosos en los 19 paquetes, todos pareciendo originarse de un solo mantenedor.
Los artefactos maliciosos incorporaron un archivo `*-setup.pth` y un payload de JavaScript ofuscado llamado `_index.js`. La ejecución del archivo `PTH` se activa simplemente al iniciar Python, que luego intenta descargar el runtime de JavaScript **Bun** desde **GitHub** para ejecutar el script empaquetado.
Los investigadores de **Socket** explicaron la naturaleza insidiosa de este mecanismo: "Eso significa que una rueda comprometida puede convertir una instalación de dependencia, de lo contrario pasiva, en un disparador de ejecución retardada: el próximo inicio de Python, pip, prueba, kernel de notebook, trabajo de CI o comando de gestión de paquetes que inicie Python puede procesar el .pth malicioso."
### Conexión con la Campaña Shai-Hulud más Amplia
**Socket** cree que este ataque es una extensión de la campaña más amplia **"Shai-Hulud"**, citando varias similitudes en las técnicas empleadas. La firma está rastreando este incidente junto con ataques previos, elevando el número total de artefactos maliciosos atribuidos a actividades de **Shai-Hulud** a 453.
### Secretos y Exfiltración Dirigidos
Un análisis en profundidad del payload de JavaScript descubrió su extenso objetivo de secretos de desarrollador, incluyendo:
* Tokens de **GitHub** y secretos de **GitHub Actions**
* Tokens de publicación de **npm**, **PyPI**, **RubyGems**, **JFrog**
* Credenciales de **AWS**, **GCP**, **Azure**, **Kubernetes** y **Vault**
* Claves **SSH**
* Credenciales de **Docker**
* Archivos `.env`, `.npmrc`, `.pypirc`
* Historiales de shell
* Archivos de configuración de **Claude/MCP**
* Otros secretos de estaciones de trabajo de desarrollador y CI/CD
En consonancia con operaciones anteriores de **Shai-Hulud**, el objetivo principal parece ser comprometer los flujos de trabajo de desarrollo de software para facilitar una mayor propagación de malware.
La exfiltración de datos en gran medida refleja métodos pasados de **Shai-Hulud**, utilizando repositorios de **GitHub** creados automáticamente para alojar secretos robados a través de **GitHub Actions**. Un método secundario de exfiltración emplea comunicación HTTPS directa, apuntando a un endpoint de API de **Anthropic** legítimo pero inválido (api[.]anthropic[.]com/v1/api), que **Socket** sugiere que probablemente se utilizó para camuflaje.
### Evasión y Persistencia
El malware incorpora varios mecanismos de evasión, como la verificación de locales/entornos rusos y la presencia de herramientas de seguridad como **StepSecurity Harden-Runner**.
Para la persistencia, el malware se establece a través de servicios **systemd** en sistemas **Linux** y **LaunchAgents** en **macOS**. También aprovecha los archivos de configuración de flujo de trabajo de **GitHub** y **Claude/MCP** para mantener su punto de apoyo.
### Recomendaciones para Defensores
El informe de **Socket** proporciona una lista completa de todos los paquetes y versiones afectados. Se recomienda encarecidamente a las organizaciones que han instalado estos paquetes que:
* Roten todos los secretos de desarrollador inmediatamente.
* Restauren los entornos afectados a partir de copias de seguridad conocidas y seguras.
Los defensores también deben monitorear activamente indicadores específicos de compromiso, incluyendo:
* Paquetes de **Python** que contienen ganchos de inicio `.pth` ejecutables.
* Descargas inesperadas del runtime de JavaScript **Bun** desde **GitHub**.
* Cadenas de procesos donde **Python** inicia **Bun** para ejecutar `_index.js`.