Una nueva campaña de robo de criptomonedas está dirigida a los desarrolladores más propensos a tener claves de monedero, credenciales de nube y acceso a producción en sus máquinas.
Investigadores de la empresa de seguridad Socket dijeron a principios de esta semana que identificaron un ataque a la cadena de suministro llamado TrapDoor extendido por tres registros principales de programación de código abierto, con más de 34 paquetes maliciosos y cientos de versiones y artefactos relacionados.
Una conclusión clave es que los atacantes se están volviendo más enfocados. Además del ingenio social, que apunta a individuos que poseen información clave, los ataques a la cadena de suministro no están diseñados para captar usuarios minoristas aleatorios, sino desarrolladores. Estas son precisamente las personas que pueden tener archivos de monedero, claves SSH, tokens de GitHub, credenciales en la nube y acceso a producción en la misma máquina que utilizan para desarrollar herramientas de cripto e IA.
Socket no identificó a las víctimas ni los fondos robados, pero indicó que los paquetes estaban activos en npm, PyPI y Crates.io y contenían cargas útiles que podían robar datos del monedero, exfiltrar credenciales, probar tokens de AWS y GitHub y dejar archivos para mantener el acceso activo.
Los paquetes programados en JavaScript, Python y Rust se disfrazaban como ayudantes de desarrolladores, escáneres de seguridad, herramientas de monedero, utilidades de Solidity, paquetes de prompts de IA y ayudantes de compilación para Sui o Move.
Los nombres fueron aburridos por diseño. Los paquetes se llamaban "wallet-security-checker", "defi-risk-scanner", "solidity-build-guard", "move-compiler-tools" y "llm-context-compressor", pareciendo los tipos de utilidades pequeñas que un desarrollador de cripto o IA podría instalar sin mucha reflexión.
Una vez instalado, sin embargo, las cargas útiles intentaron recuperar mucho más que datos del paquete.
En los paquetes npm, el malware buscaba en la máquina del desarrollador claves privadas, contraseñas, tokens de GitHub e inicios de sesión en la nube. También probó algunas credenciales robadas, intentó propagarse a otros sistemas a través de claves SSH y dejó archivos que podían mantener la infección activa.
Las claves SSH son archivos de inicio de sesión que los desarrolladores utilizan para acceder a servidores, repositorios de código y otras máquinas. Si se roban, pueden permitir a un atacante moverse desde una laptop comprometida hacia la infraestructura más amplia de una empresa.
El ataque también utiliza archivos como .cursorrules y claude.md, que permiten a los desarrolladores dar instrucciones específicas del proyecto a herramientas de codificación con IA. Socket indicó que la campaña implantó instrucciones ocultas utilizando caracteres Unicode de ancho cero, aparentemente intentando hacer que las futuras sesiones de asistentes de IA ejecuten "escaneos de seguridad" falsos que recopilaron y exfiltraron secretos.
Eso convirtió el ataque de un simple ladrón de paquetes en algo más cercano a malware de entorno de desarrollo. La instalación del paquete es solo el primer paso, con el verdadero objetivo siendo la estación de trabajo, como monederos, repositorios, datos del navegador, claves en la nube, acceso SSH y cualquier herramienta de codificación por IA que se lea a continuación.
Los paquetes de Rust utilizaban scripts maliciosos de build.rs que se ejecutaban durante la compilación, dirigidos a desarrolladores de Sui y Move. Los paquetes de PyPI ejecutaban JavaScript remoto al importarse. Los paquetes de npm utilizaban hooks de postinstall.
Socket dijo que informó los paquetes a los registros afectados y clasificó los paquetes de la campaña como maliciosos. La empresa también advirtió que el atacante abrió solicitudes de extracción en proyectos de IA y desarrolladores, intentando agregar archivos .cursorrules y CLAUDE.md a través de rutas normales de contribución de código abierto.





