Paquetes de Python utilizados para minar criptomonedas

Múltiples paquetes en el repositorio PyPI de Python se utilizaban para convertir los equipos de desarrolladores en máquinas de minar criptomonedas.

Ax Sharma, investigador en la empresa Sonatype, ha publicado un informe mostrando el comportamiento de varios paquetes maliciosos de Python utilizados para minar criptomonedas. Un usuario llamado nedog123 se encargó de publicarlos en el Python Package Index (PyPI). Mediante «typosquatting», una técnica consistente en modificar ligeramente una cadena para suplantar un nombre legítimo a simple vista, engañaban a desarrolladores para descargar los paquetes fraudulentos. En este caso dichos paquetes aludían al proyecto matplotlib así como a librerías de aprendizaje automático y habían acumulado más de 5000 descargas en total. A continuación se listan los paquetes maliciosos:

  • maratlib
  • maratlib1
  • matplatlib-plus
  • mllearnlib
  • mplatlib
  • learninglib

Detalles sobre el código malicioso

Para cada paquete, el código malicioso se incluye en el fichero setup.py que es un script de construcción que se ejecuta durante la instalación de un paquete.

Ax Sharma, en su informe
Paquete malicioso «learninglib» con dependencia de «maratlib». Fuente: Sonatype

Mientras analizaba el paquete Python maratlib, Sharma descubrió que durante la instalación se descargaba un script de Bash (aza2.sh) desde un repositorio de GitHub, que ejecutaba un criptominero llamado «Ubqminer» en la máquina comprometida. Además, el investigador advierte de que el autor del malware reemplazó la dirección del monedero Kryptex por defecto para minar la criptomoneda Ubiq (UBQ).

Confirmación de código con cambio de clave de monedero. Fuente: GitHub

También existía otra variante en la que se descargaba otro script que incluía un programa distinto de criptominado llamado T-Rex, que utiliza recursos de GPU.

fuente: unaaldia.hispasec.com