Investigadores de ciberseguridad han identificado un paquete malicioso en el repositorio Python Package Index (PyPI), diseñado para robar claves privadas de Ethereum. Este paquete, denominado set-utils, se hacía pasar por bibliotecas legítimas y ampliamente utilizadas para engañar a los desarrolladores.
Detalles del paquete malicioso set-utils
El paquete set-utils acumuló 1.077 descargas antes de ser eliminado del registro oficial de PyPI. Su objetivo era comprometer a desarrolladores y organizaciones que trabajan con aplicaciones blockchain basadas en Python, especialmente aquellas que utilizan bibliotecas de administración de billeteras como eth-account.
Según la firma de seguridad de la cadena de suministro de software Socket, este paquete imitaba bibliotecas populares como:
- python-utils (más de 712 millones de descargas)
- utils (más de 23,5 millones de descargas)
Al presentarse como una herramienta legítima, set-utils engañaba a los desarrolladores para que lo instalaran sin sospechar que contenía código malicioso.
Cómo opera el malware para robar claves de Ethereum
El código malicioso dentro de set-utils estaba diseñado para interceptar claves privadas de Ethereum cuando los desarrolladores generaban billeteras digitales. Para ello, se inyectaba en funciones clave de administración de billeteras, como:
-
1from_key()
-
1from_mnemonic()
Cuando un usuario generaba una nueva billetera de Ethereum, el paquete malicioso capturaba la clave privada antes de que esta se almacenara localmente.
Además, el malware incluía la clave pública RSA del atacante, utilizada para cifrar y exfiltrar los datos robados. También usaba una cuenta de Ethereum bajo el control del atacante para facilitar el robo de fondos.
Método innovador de exfiltración de datos
A diferencia de otros tipos de malware que envían información a servidores de comando y control mediante HTTP, set-utils implementaba un método más sigiloso para evadir la detección:
- Filtraba las claves privadas de Ethereum a través de transacciones en la blockchain.
- Utilizaba el punto final de Polygon RPC (
1rpc-amoy.polygon.technology
) para ocultar la actividad maliciosa dentro del tráfico legítimo de la blockchain.
Este enfoque hace que el robo de información sea más difícil de detectar, ya que la transmisión de datos ocurre a través de transacciones registradas en la cadena de bloques, en lugar de conexiones HTTP sospechosas.
Impacto y medidas de seguridad
El descubrimiento de set-utils resalta la creciente amenaza de paquetes maliciosos en repositorios de código abiertos como PyPI. Los desarrolladores que instalaron este paquete corren el riesgo de que sus claves privadas de Ethereum hayan sido comprometidas, lo que podría resultar en el robo de activos digitales.
Para mitigar el riesgo, se recomienda:
- Verificar la autenticidad de los paquetes antes de instalarlos en entornos de desarrollo.
- Revisar el código fuente de bibliotecas sospechosas y auditar dependencias de terceros.
- Monitorear transacciones en la blockchain para detectar actividad inusual relacionada con sus billeteras.
- Utilizar gestores de paquetes seguros, como
1pip-audit
, para analizar vulnerabilidades en las dependencias de Python.
El hallazgo de set-utils demuestra cómo los ciberdelincuentes están utilizando repositorios legítimos como PyPI para distribuir malware dirigido a la comunidad blockchain y de desarrollo. La sofisticada técnica de exfiltración basada en transacciones de la blockchain es un recordatorio de que la seguridad en el desarrollo de software debe ser una prioridad constante.
En fin, los desarrolladores deben mantenerse alerta y seguir buenas prácticas de seguridad para evitar ser víctimas de este tipo de ataques. La verificación de la procedencia de los paquetes y la auditoría del código son pasos esenciales para proteger los activos digitales y la integridad de los proyectos de software.
Fuente: The Hacker News