Osegi
Seguridad·2 min de lectura

bee-js 13.3.0 en npm: un malware buscaba claves de monederos cripto

La versión 13.3.0 de la biblioteca de Swarm @ethersphere/bee-js salió por el proceso oficial del proyecto e intentaba robar claves de monederos al instalarse.

Laptop screen showing JavaScript code with a red warning icon and a crypto wallet key being pulled away.
Imagen: Хабр

Si instalaste @ethersphere/bee-js 13.3.0 desde npm, el daño pudo producirse antes de que tu aplicación llegara a ejecutarse. La empresa CodeScoring considera maliciosa desde el 9 de noviembre esa versión de la biblioteca JavaScript del almacenamiento distribuido Swarm. Intentaba robar claves de monederos de criptomonedas.

Lo más incómodo es cómo llegó a publicarse. Pasó por el proceso habitual del proyecto. Con la cuenta de publicación bee-worker se hizo un commit directo en el repositorio oficial y después se creó una versión, que activó el workflow de GitHub Actions ya existente. Según Socket, los datos de compilación en npm apuntaban al repositorio oficial y al proceso de publicación normal. El malware ya estaba en el código fuente.

Los atacantes hicieron que un script se ejecutara solo al instalar la biblioteca. En los comentarios del código, la conexión a su servidor aparecía como envío de analíticas. En realidad, el script descargaba JavaScript de ese servidor y lo ejecutaba al instante, con los permisos de quien instalaba el paquete.

¿Qué hacía el malware de bee-js?

La carga buscaba en los datos de Swarm Desktop una clave de monedero cifrada y un archivo de configuración. Si la configuración incluía la contraseña de la clave, robar ambos archivos bastaba para controlar el monedero. También intentaba mantenerse en el sistema una vez terminada la instalación.

En Linux y macOS, el ataque seguía con la instalación de una puerta trasera para ejecutar comandos de forma remota. La dirección de su servidor de control se leía de un contrato inteligente de Ethereum, de modo que el operador podía cambiarla con una sola transacción, sin publicar una nueva versión.

¿Cómo saber si me afecta?

La versión también podía llegar de forma indirecta. Los rangos de dependencias de varias herramientas de Swarm permitían la 13.3.0, así que no basta con buscar la dependencia directa en el manifiesto. Hay que comprobar la versión realmente resuelta en el archivo lock.

Los equipos deberían revisar los archivos lock, las cachés de paquetes y los registros de instalación en CI en busca de la 13.3.0. Si se instaló con scripts permitidos, o si se ejecutó Swarm Desktop 0.56.2, hay que investigar la máquina o el runner de CI. En un runner, eso incluye los tokens de publicación de paquetes y el acceso al código fuente.

Apps que merecen la pena

SUMO: el puzle de números

Toca las casillas correctas, suma y alcanza el objetivo. Fácil de aprender, difícil de dominar. Gratis, para todas las edades.

Etiquetas:npmswarmbee-jssupply chain attackcrypto walletgithub actions

Más de este día

Ver todas →

Más en: Seguridad

Ver todas →