Encuentran 12 bibliotecas maliciosas en Python PyPI

Uno de estos paquetes contenía una herramienta que reemplazaba las direcciones de Bitcoin de las víctimas en un intento de secuestrar fondos de los usuarios

Un investigador en seguridad informática y forense digital ha identificado 12 bibliotecas de Python cargadas en Pyhton Package Index (PyPI) que contenían código malicioso. Los 12 paquetes fueron descubiertos en dos escaneos diferentes por un investigador bajo el pseudónimo de “Bertus”, todas las cargas maliciosas ya han sido eliminadas de PyPI.

Todos los paquetes se juntaron y trabajaron siguiendo un patrón similar. Sus creadores copiaron el código de paquetes populares y crearon una nueva biblioteca, pero con un nombre ligeramente modificado. Por ejemplo, cuatro paquetes (Diango, Djago, Dajngo, Djanga) son modificaciones ortográficas de Django, el nombre de un framework muy popular.

Según el reporte del experto en forense digital, las personas detrás de estos paquetes agregaron código malicioso a estos proyectos recién creados, pero completamente funcionales, y más específicamente a los archivos setup.py. Estos archivos contienen un conjunto de instrucciones que los instaladores de bibliotecas de Python, como “pip”, ejecutan automáticamente al descargar y configurar un nuevo paquete dentro de un proyecto de Python.

La razón para incluir este código adicional era realizar varias acciones maliciosas por cada biblioteca maliciosa.

“Bertus” descubrió un primer conjunto de 11 paquetes maliciosos el 13 de octubre y otro paquete malicioso el 21 de octubre. El primer conjunto de bibliotecas maliciosas intentaría recopilar datos sobre cada entorno infectado, obtener persistencia de arranque o incluso abrir un shell inverso en estaciones de trabajo remotas.

Por su parte, el último paquete encontrado, llamado “colourama”, buscaba acceso a las finanzas de la víctima, secuestrando el portapapeles del sistema operativo del usuario infectado, donde escanearía buscando cadenas similares a una dirección de Bitcoin, que reemplazaría con la propia dirección de Bitcoin del atacante en un intento para secuestrar los pagos o transferencias realizados en la billetera de la víctima. Este paquete también imitaba el nombre de una popular biblioteca de Python, llamada “colorama”.

Según el servicio de estadísticas de PyPI, 54 usuarios habían descargado el paquete un mes antes de que fuera retirado. La dirección de Bitcoin del atacante contenía el equivalente a sólo 40 dólares, con lo que expertos en ciberseguridad y forense digital pudieron comprobar que esta serie de acciones maliciosas no generó ganancias en Bitcoin para el atacante.

“Bertus” fue entrevistado por una firma de ciberseguridad vía correo electrónico: “Después de descubrir las bibliotecas maliciosas, notifiqué a los administradores de PyPI, quienes eliminaron los paquetes”, dijo. “Además, también bloquearon el nombre “colourama” para los futuros registros de paquetes”.

El investigador afirma que descubrió los 12 paquetes mediante el uso de un sistema automatizado que diseñó él mismo para escanear el repositorio de PyPI en busca de paquetes con nombres similares, conocidos técnicamente como “paquetes typo”.

“Bertus” dice que creó el escáner después de ver una alerta de seguridad enviada por la Oficina Nacional de Seguridad de Eslovaquia el año pasado, advirtiendo a los desarrolladores de Python sobre diez bibliotecas maliciosas cargadas en PyPI. Esas bibliotecas también usaron paquetes tipo y pasaron semanas hasta que los encargados de PyPI las descubrieran.

Según reportes de expertos en forense digital del Instituto Internacional de Seguridad Cibernética, “Bertus” se encuentra mejorando su escáner de Python, al tiempo que continuará realizando revisiones periódicas para encontrar más paquetes typo.