Paquete de PyPI con 1.1 millones de descargas mensuales hackeado para instalar un ladrón de información

Paquete de PyPI con 1.1 millones de descargas mensuales hackeado para instalar un ladrón de información

Un atacante subió una versión maliciosa del popular paquete elementary-data en el Índice de Paquetes de Python (PyPI) para robar datos sensibles de desarrolladores y billeteras de criptomonedas. La versión peligrosa es la 0.23.3, y se extendió a la imagen Docker debido al flujo de trabajo del paquete que crea la imagen a partir del código y la sube a un registro de contenedores para su despliegue.

El miembro de la comunidad crisperik detectó la subida maliciosa y abrió un issue en el GitHub del proyecto el sábado, alertando al mantenedor y reduciendo la ventana de exposición. Se lanzó una versión limpia, elementary-data 0.23.4, pero los usuarios que descargaron la variante maliciosa siguen comprometidos.

El paquete elementary-data es una herramienta de observabilidad de datos de código abierto para dbt, utilizada principalmente por ingenieros de datos/analítica que trabajan con pipelines de datos. Es una herramienta popular en el ecosistema dbt (Data Build Tool), con más de 1.1 millones de descargas mensuales en PyPI.

Según un análisis del incidente publicado por investigadores de StepSecurity, el atacante explotó una falla en el flujo de trabajo del proyecto, en lugar de comprometer las cuentas de los mantenedores, como es más común en las actualizaciones maliciosas. El atacante publicó un comentario malicioso en un pull request que explotó una falla de inyección de scripts en GitHub Actions, haciendo que el flujo de trabajo ejecutara código shell controlado por el atacante.

Esto expuso el GITHUB_TOKEN del flujo de trabajo, que luego se usó para forjar un commit y una etiqueta firmados (v0.23.3) y activar el pipeline de lanzamiento legítimo del proyecto. El pipeline construyó y publicó el paquete con puerta trasera en PyPI, así como una imagen maliciosa en GitHub Container Registry, haciéndolo parecer un lanzamiento oficial.

  • SSH keys, Git credentials, cloud creds (AWS/GCP/Azure)
  • Kubernetes, Docker, and CI secrets
  • .env files and developer tokens
  • Crypto wallet files (Bitcoin, Litecoin, Dogecoin, Zcash, Dash, Monero, Ripple)
  • System data (/etc/passwd, logs, shell history)

Los investigadores dicen que la misma carga útil llegó a la imagen Docker del proyecto, porque el "flujo de trabajo de lanzamiento de paquete que sube a PyPI también tiene un trabajo de construir y enviar imagen Docker". Según StepSecurity, los sistemas que no usaban versiones fijas descargaron automáticamente la build con puerta trasera.

Aquellos que descargaron la versión maliciosa, elementary-data==0.23.3, y las imágenes con las etiquetas ghcr.io/elementary-data/elementary:0.23.3 y :latest, deben rotar todos los secretos y restaurar sus entornos desde un punto seguro conocido.

Prueba cada capa antes de que los atacantes lo hagan

Los equipos de seguridad registran el 54% de los ataques exitosos y alertan solo el 14%. El resto se mueve sin ser visto en tu entorno. El whitepaper de Picus muestra cómo las pruebas de breach and attack simulación prueban tus reglas SIEM y EDR para que las amenazas no pasen desapercibidas.

image
image
The malicious release on PyPI
The malicious release on PyPI
article image
article image

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *