Paquetes maliciosos en el repositorio PyPI

Se han descubierto varios paquetes maliciosos de código abierto en el popular repositorio PyPI que utilizan técnicas novedosas para pasar desapercibidos.

PyPI (Python Package Index) es el repositorio de software oficial para aplicaciones de terceros en el lenguaje de programación Python en el que miles de programadores publican sus desarrollos. Sin embargo los desarrolladores de malware también aprovechan esta plataforma para conseguir sus objetivos.

El equipo de investigación de JFrog Security ha descubierto hasta 11 nuevos paquetes maliciosos alojados en PyPI, con más de 40.000 descargas en total. Sus autores utilizaron varias técnicas avanzadas para evitar la detección y permanecer en el repositorio para infectar tantas máquinas como fuese posible.

Listado de paquetes maliciosos. Fuente: jfrog.com

Entre las técnicas utilizadas se incluyen:

El uso de Fastly CDN para simular que el tráfico enviado al servidor de comando y control (C2) es una comunicación legítima con pypi.org.Utilizar el framework TrevorC2 para enmascarar las comunicaciones entre cliente y servidor haciendo resulten similares a las de una navegación normal por un sitio web, enviando las solicitudes a intervalos aleatorios y ocultando la carga útil maliciosa (el «payload») en solicitudes HTTP GET de aspecto normal.La utilización de solicitudes DNS como canal de comunicación entre la máquina víctima y el servidor C2, aprovechando que normalmente estas peticiones no son inspeccionadas por herramientas de seguridad. Cuando un servidor DNS recibe una petición, busca en sus registros la dirección IP correspondiente al nombre de dominio solicitado y, si no la encuentra, envía la solicitud al primer nombre de dominio conocido de la dirección. Es decir que si la petición es del tipo payload.dominiomalicioso.com, como el servidor DNS legítimo que recibe la petición no conoce la resolución de dicha dirección, se la reenviará a dominiomalicioso.com y este sabrá que la cadena usada como subdominio es el payload.La división de los paquetes maliciosos en dos partes: siendo una de ellas el elemento malicioso y el otro un paquete «legítimo» que simplemente especifica el paquete malicioso que se va a importar. Desde este último, se realizaría la instalación del paquete malicioso mediante «typosquatting» (paquetes cuyos nombres son errores tipográficos de paquetes populares) o «confusión de dependencias» (paquetes maliciosos con el nombre de paquetes privados legítimos con una versión superior subidos a repositorios públicos, de manera que obliga al administrador de paquetes a descargar e instalar el módulo malicioso).

Según declaraciones de los investigadores de seguridad, estos paquetes no destacan por su peligrosidad, sino que lo que resulta notable es el creciente nivel de sofisticación con el que se han desarrollado.

Cabe destacar que los administradores del repositorio PyPI han eliminado los paquetes maliciosos tras recibir el informe.

Más información:
Python Malware Imitates Signed PyPI Traffic in Novel Exfiltration Technique
https://jfrog.com/blog/python-malware-imitates-signed-pypi-traffic-in-novel-exfiltration-technique/

La entrada Paquetes maliciosos en el repositorio PyPI se publicó primero en Una al Día.