Subida masiva de paquetes maliciosos a PyPi

Suspendida la creación de nuevos proyectos y el registro de usuarios durante 10 horas al detectar más de 500 paquetes con malware

Casi Cincuenta Monos
3 min readMar 29, 2024

La campaña, detectada por investigadores de Check Point, tuvo dos oleadas. En la primera de ellas se produjo la subida de unos 200 paquetes maliciosos y en la segunda de otros 300.

Cada una de las cuentas usadas tenía un nombre de usuario diferente y estaba asociada a una dirección de email distinta, lo que sumado a su volumen es indicativo del uso de automatismos para llevar a cabo el ataque.

La creación de los usuarios falsos se realizó el día 26 de marzo y la subida de los paquetes al día siguiente. Todos los proyectos fraudulentos compartían un mismo número de versión (1.0.0) y contenían exactamente el mismo código.

Para tratar de aprovecharse de errores al instalar módulos usando la línea de comandos (typosquatting), los atacantes utilizaron nombres similares a los de paquetes populares y variaciones de requirements.txt, un fichero muy común usado para la instalación de dependencias.

Fuente: Checkmarkx

El código malicioso, cifrado usando el módulo fernet, se sitúa en el archivo setup.py para asegurar su ejecución durante la instalación del paquete. Tras comprobar que el sistema operativo de la víctima es Windows, se lanza un script ofuscado que descarga una siguiente fase desde el dominio funcaptcha[.]ru.

Esta segunda etapa, también cifrada y ofuscada, tiene dos funcionalidades principales. La primera trata de robar credenciales y documentos privados del equipo infectado. La segunda reemplaza software criptográfico presente en el sistema por versiones maliciosas.

La exfiltración de la información sustraída a las víctimas se realiza mediante peticiones POST a la URL hxxps[://]funcaptcha[.]ru/delivery.

Tras ser notificados por Check Point, el equipo de PyPi suspendió el registro de nuevos usuarios y la creación de proyectos mientras solventaba el problema. Los paquetes maliciosos ya han sido retirados del repositorio y el incidente se ha dado por resuelto.

Fuente: Python.org

Los ataques contra la cadena de suministro son cada vez más comunes y PyPi es una víctima habitual al admitir contribuciones de cualquier usuario.

Aunque el repositorio ya está tomando medidas para mejorar en este aspecto, sigue siendo necesario ejercer especial cuidado a la hora de instalar en nuestro equipo software de terceros.

Fuentes y más información:

--

--