En un reciente descubrimiento, se ha revelado una campaña maliciosa que utiliza varios paquetes de Python Package Index (PyPI) para explotar los servidores SMTP de Gmail y WebSockets con el fin de obtener acceso remoto a sistemas, exfiltrar datos y robar criptomonedas.
El ataque fue identificado por el equipo de investigación de amenazas de Socket, quienes informaron del problema a PyPI, lo que llevó a la eliminación inmediata de los paquetes maliciosos.
Aunque algunos de estos paquetes estuvieron disponibles en PyPI durante más de cuatro años, con algunos paquetes descargados más de 18,000 veces.
Paquetes maliciosos de PyPI identificados
Los paquetes maliciosos de PyPI se dirigieron principalmente a desarrolladores que utilizaban el repositorio de paquetes de Python, suplantando un paquete legítimo llamado Coffin.
Estas versiones maliciosas fueron diseñadas para robar datos sensibles y proporcionar a los atacantes acceso remoto. A continuación, se muestra la lista de paquetes comprometidos identificados por Socket:
- Coffin-Codes-Pro (9,000 descargas)
- Coffin-Codes-NET2 (6,200 descargas)
- Coffin-Codes-NET (6,100 descargas)
- Coffin-Codes-2022 (18,100 descargas)
- Coffin2022 (6,500 descargas)
- Coffin-Grave (6,500 descargas)
- cfc-bsb (2,900 descargas)
Los paquetes Coffin, que circulaban en PyPI durante años, suplantaron al paquete legítimo Coffin, utilizado para integrar plantillas Jinja2 en proyectos Django.
Aunque las versiones maliciosas contenían funciones ocultas para el robo de datos y la toma de control del sistema.
Exfiltración de datos y acceso remoto a través de Gmail y WebSockets
Los paquetes maliciosos emplearon un enfoque innovador para obtener acceso remoto a los sistemas comprometidos:
1. Explotación de Gmail
Después de la instalación, el código malicioso utilizaba credenciales de Gmail hardcodeadas para acceder al servidor SMTP de Gmail (smtp.gmail.com).
Esto permitía a los atacantes enviar información de reconocimiento desde la máquina comprometida al servidor del atacante, sin activar las alarmas de seguridad, ya que Gmail es un servicio confiable.
2. Conexión WebSocket
Luego de la fase de señalización por correo electrónico, el malware establecía una conexión de WebSocket sobre SSL, creando un túnel bidireccional, encriptado y persistente desde el host comprometido al servidor del atacante.
Este túnel permitía a los atacantes realizar varias acciones, como:
- Acceso a paneles de administración y API
- Transferencia de archivos y exfiltración de correos electrónicos
- Ejecución de comandos de shell
- Recolección de credenciales y movimiento lateral
El túnel WebSocket facilitaba el control total sobre el sistema infectado, proporcionando a los atacantes la capacidad de realizar ataques internos adicionales y escalar sus esfuerzos para robar datos o infiltrar otros sistemas dentro de la organización.
Posibles tácticas de robo de criptomonedas
Los investigadores de seguridad de Socket han destacado la fuerte probabilidad de robo de criptomonedas relacionado con estos paquetes maliciosos.
Los indicadores sospechosos incluyeron el uso de direcciones de correo electrónico asociadas a actividades relacionadas con criptomonedas, como blockchain.bitcoins2020@gmail.com.
Esto sugiere que el malware podría exfiltrar billeteras de criptomonedas y otra información relacionada, similar a ataques anteriores en los que se robaron claves privadas de Solana.
Recomendaciones para los usuarios afectados
Si alguno de los paquetes mencionados se ha instalado en su entorno, es crucial tomar medidas inmediatas:
- Eliminar los paquetes afectados de su sistema para evitar más acceso o exfiltración de datos.
- Rotar todas las claves API, credenciales y tokens utilizados por los sistemas comprometidos.
- Realizar un escaneo exhaustivo del sistema para asegurarse de que no queden restos del malware.
- Monitorear actividades sospechosas o signos de robo de criptomonedas en sus cuentas, especialmente en billeteras de alto valor.
Paquete relacionado: crypto-encrypt-ts en npm
En un informe relacionado, Ax Sharma, investigador de Sonatype, identificó otro paquete malicioso, crypto-encrypt-ts, en el registro npm.
Este paquete, que se hacía pasar por una versión de TypeScript de la popular pero ahora descontinuada CryptoJS, estaba diseñado para exfiltrar secretos de billeteras de criptomonedas y variables de entorno hacia un endpoint malicioso de Better Stack.
El paquete persistía en los sistemas infectados a través de trabajos cron y específicamente atacaba billeteras de criptomonedas con saldos superiores a 1.000 unidades y fue descargado casi 2.000 veces antes de ser marcado y eliminado.
Conclusión
El descubrimiento de estos paquetes maliciosos de PyPI pone de relieve la creciente amenaza de los ataques a la cadena de suministro y resalta la necesidad de mantener una vigilancia constante en la comunidad de código abierto.
Los desarrolladores deben ser cautelosos al instalar paquetes, asegurándose de que provienen de fuentes confiables y deben auditar regularmente las dependencias en busca de vulnerabilidades o comportamientos inesperados.
Al mantenerse proactivos y adoptar mejores prácticas de seguridad, las organizaciones pueden minimizar los riesgos asociados con estas amenazas en constante evolución.