Una herramienta Python para análisis de datos que funcionaba medio día se convirtió en malware: robó claves y tokens.
Un ciberdelincuente publicó una versión maliciosa del paquete elementary-data en PyPI
Un atacante desconocido subió una versión modificada 0.23.3 de la utilidad *elementary-data* – herramienta para el monitoreo de datos – al repositorio PyPI. El paquete malicioso recopilaba y enviaba a un servidor remoto información confidencial: claves SSH, credenciales de AWS, tokens API y también archivos de billeteras de criptomonedas (Bitcoin, Litecoin, Dogecoin, Ethereum). Los datos recopilados se empaquetaban en el archivo `trin.tar.gz` y se entregaban al atacante.
Cómo se obtuvo acceso al repositorio
El atacante aprovechó una vulnerabilidad en uno de los flujos de trabajo de GitHub Actions del proyecto *elementary-data*. Al recibir automáticamente un token `GITHUB_TOKEN`, creó un pull request que reemplazaba el paquete original por la versión maliciosa. Gracias al flujo de trabajo automático, el PR fue aceptado y se publicó la versión infectada.
Tiempo de presencia del paquete malicioso
- 25 de abril, 02:20 (MSK) – el atacante subió la versión maliciosa a PyPI.
- 02:24 – también publicó una imagen Docker contaminada en GitHub Container Registry, ampliando así el espectro de ataques.
- 13:45 del mismo día – los administradores del proyecto eliminaron todos los archivos comprometidos y lanzaron la versión limpia 0.23.4.
Así, el paquete malicioso estuvo disponible para los usuarios durante más de 11 horas, lo que permitió una posible fuga de datos.
Componentes afectados
Los desarrolladores confirmaron que las demás partes del ecosistema – *Elementary dbt*, recursos de Elementary Cloud y otras versiones del proyecto – no se vieron afectadas por el incidente.
Qué hacer los usuarios
1. Elimine la versión infectada 0.23.3 e instale la versión segura 0.23.4.
2. Limpie la caché de paquetes (`pip cache purge` o herramienta equivalente).
3. Elimine el archivo marcador `.trinny-security-update`, si está presente – su existencia indica que se ha ejecutado código malicioso.
Medidas tomadas por los desarrolladores
- Se actualizó el token de publicación PyPI.
- Se revisaron y actualizaron los tokens de GitHub y GitHub Container Registry.
- Se eliminó el flujo de trabajo vulnerable en GitHub Actions; los demás flujos fueron verificados por seguridad.
De esta manera, el equipo *elementary-data* recuperó el control del repositorio y garantizó la protección de los usuarios contra futuras amenazas.
Comentarios (0)
Comparte tu opinión — por favor, sé amable y mantente en el tema.
Inicia sesión para comentar