PyPI es el repositorio de código abierto más popular para descargar bibliotecas de Python. Sin embargo, también puede ser una fuente de infección por malware si no se toman las precauciones adecuadas. En este artículo, te explicaremos cómo unos paquetes maliciosos de PyPI distribuyen un malware llamado WhiteSnake Stealer, que roba información sensible de los sistemas Windows, y cómo puedes evitar ser víctima de este ataque.
La Amenaza de "WhiteSnake"
Los investigadores de ciberseguridad han detectado paquetes maliciosos en el repositorio de código abierto Python Package Index (PyPI) que distribuyen un malware de robo de información denominado WhiteSnake Stealer en sistemas Windows.
Estos paquetes maliciosos, con nombres como nigpal, figflix, telerer, seGMM, fbdebug, sGMM, myGens, NewGends y TestLibs111, han sido subidos por un actor de amenazas conocido como "WS".
Dentro de estos paquetes, se incluye código fuente en Base64 de archivos PE y otros scripts de Python dentro de sus archivos setup.py. Cuando se instalan estos paquetes de Python, la carga maliciosa correspondiente se despliega y ejecuta, dependiendo del sistema operativo de los dispositivos de la víctima.
Mientras que en sistemas Windows, la carga maliciosa se traduce en la infección por WhiteSnake Stealer, en los sistemas Linux comprometidos se entrega un script de Python diseñado para recopilar información. Esta actividad, que principalmente se dirige a usuarios de Windows, guarda similitudes con una campaña previa que fue revelada por JFrog y Checkmarx el año pasado.
La variante específica de WhiteSnake Stealer dirigida a sistemas Windows se caracteriza por su mecanismo Anti-VM, su comunicación con un servidor C&C a través de la red Tor y su capacidad para robar información de la víctima y ejecutar comandos. Además, está diseñada para capturar datos de navegadores web, billeteras de criptomonedas y aplicaciones como WinSCP, CoreFTP, Windscribe, Filezilla, AzireVPN, Snowflake, Steam, Discord, Signal y Telegram.
Te podrá interesar leer: Descubriendo el Peligro Oculto: 27 Paquetes Maliciosos en PyPI
La compañía PYTA31 está siendo rastreada por su participación en una campaña de amenazas cuyo objetivo final es la exfiltración de datos confidenciales, especialmente de las billeteras criptográficas en las máquinas objetivo.
También se ha observado que algunos de los paquetes maliciosos recientemente publicados incluyen la capacidad de sobrescribir el contenido del portapapeles con direcciones de billetera propiedad del atacante, con el fin de llevar a cabo transacciones no autorizadas. Otros paquetes maliciosos están configurados para robar información de navegadores, aplicaciones y servicios relacionados con la criptografía.
Se ha señalado que un solo autor de malware tiene la capacidad de distribuir varios paquetes de malware destinados a robar información en la biblioteca PyPI a lo largo del tiempo, cada uno con distintos niveles de complejidad en su carga útil.
La divulgación de esta información se produce en el contexto del descubrimiento de dos paquetes maliciosos en el registro de paquetes npm, los cuales aprovecharon GitHub para almacenar claves SSH cifradas en Base64, las cuales habían sido robadas de sistemas de desarrolladores en los que estaban instaladas.
Conoce más sobre: Análisis de Malware con Wazuh
¿Cómo protegerse de los paquetes maliciosos de PyPI?
La mejor forma de protegerse de los paquetes maliciosos de PyPI es ser cuidadoso y selectivo a la hora de instalar bibliotecas de Python de fuentes desconocidas o poco fiables. Algunas recomendaciones son las siguientes:
- Verificar la reputación y la popularidad del paquete antes de instalarlo. Se puede consultar el número de descargas, las valoraciones, los comentarios, las actualizaciones y la documentación del paquete para comprobar su legitimidad y calidad.
- Comparar el nombre del paquete con el nombre oficial de la biblioteca que se quiere instalar. Algunos paquetes maliciosos usan nombres similares o confusos para engañar a los usuarios y hacerles creer que se trata del paquete original.
- Revisar el código fuente del paquete si es posible, o al menos el archivo setup.py, para detectar posibles indicios de código malicioso, como cadenas codificadas en Base64, llamadas a funciones sospechosas o importaciones de módulos inusuales.
- Usar un entorno virtual de Python (venv) para aislar las dependencias de cada proyecto y evitar que un paquete malicioso afecte al resto del sistema.
- Mantener el sistema operativo y las aplicaciones actualizadas con los últimos parches de seguridad, y usar un software antivirus o antimalware para detectar y eliminar posibles amenazas.
Podría interesarte: ¿Tu software está al día?: Importancia de los Parches
Conclusión
PyPI es una herramienta muy útil y poderosa para los desarrolladores de Python, pero también puede ser un vector de ataque para los ciberdelincuentes que quieren distribuir malware. Por eso, es importante ser prudente y precavido a la hora de instalar paquetes de PyPI, y seguir las recomendaciones que hemos visto en este artículo. Así, podremos evitar ser víctimas del malware WhiteSnake Stealer, que roba información sensible de los sistemas Windows y Linux.