TrapDoor: el malware que roba claves de wallets y SSH a desarrolladores de Solana

El paquete malicioso se infiltró en repositorios de npm, PyPI y Crates, ampliando el riesgo a ecosistemas de alto rendimiento como Solana, Sui y Aptos. Los investigadores recomiendan revisar dependencias y extremar la seguridad de los entornos de desarrollo.

Hace apenas unas semanas, un paquete malicioso llamado TrapDoor empezó a colarse en los entornos de trabajo de los desarrolladores de Solana. Y no llegó mediante un ataque sofisticado de ingeniería social, sino por la misma vía que cualquier librería de código abierto: los repositorios de paquetes. El vector era limpio, casi invisible. Los atacantes colgaron código falso en registros como npm, PyPI y Crates —los mercados digitales donde se descargan las dependencias de los programas— y ese código era capaz de robar dos cosas que ningún desarrollador quiere exponer: los archivos de las wallets con las claves privadas y las claves SSH que dan acceso a los servidores de producción.

TrapDoor no solo afecta a Solana. También se ha detectado en los ecosistemas de Sui y Aptos, otras redes de alto rendimiento que comparten el gusto por la velocidad y, a menudo, por herramientas de desarrollo muy parecidas. Pero el foco sobre Solana tiene sentido. La red mueve miles de millones de dólares en contratos inteligentes, staking y DeFi, y sus desarrolladores manejan claves que abren puertas muy jugosas. Vamos a desglosar en qué consiste el ataque, por qué es especialmente peligroso para quien programa en Solana y qué medidas urge adoptar.

Publicidad

Un ataque silencioso a la cadena de suministro

El modus operandi es lo que los expertos llaman un ataque a la cadena de suministro de software. En lugar de explotar un fallo en el código de Solana, el paquete TrampDoor se hacía pasar por una librería inofensiva que un desarrollador instalaría sin dudar. Una vez dentro del entorno, ejecutaba su función real: buscar archivos de wallet (los que almacenan las claves privadas de SOL y otros tokens) y las credenciales SSH, esas llaves criptográficas que permiten conectarse a servidores sin necesidad de contraseña.

El alcance es amplio. Un desarrollador de Solana trabajará normalmente con Rust, el lenguaje en el que se escribe el cliente validador Agave o los programas on-chain. Para eso usa Crates, el registro oficial de Rust. Pero también es probable que utilice TypeScript o Python para pruebas, bots de arbitraje o paneles de monitorización, con lo que los paquetes maliciosos en npm y PyPI también le entrarían por la puerta de atrás. Bastaba un npm install o un pip install distraído y el daño ya estaba hecho.

No es la primera vez que vemos algo así en el ecosistema cripto. En 2018, el infame incidente del paquete event-stream en npm introdujo código diseñado para vaciar wallets de Bitcoin en la aplicación Copay. Aquello fue una llamada de atención. Pero la diferencia ahora es que TrapDoor apunta directamente a varias blockchains de última generación y combina el robo de claves de wallet con el de accesos por SSH, lo que le da al atacante la posibilidad de pivotar desde la máquina del desarrollador hacia la infraestructura del protocolo.

Un paquete malicioso es como un billete falso en una cartera: lo coges sin mirar y solo descubres el problema cuando ya es tarde.

Qué puede robar TrapDoor y cómo protegerte

Imagina la escena. Llevas semanas programando un contrato de staking líquido o un bot de MEV y guardas la clave privada de tu wallet de pruebas en un archivo local. Si caes en la trampa, ese archivo sale de tu máquina y va a parar a un servidor controlado por los atacantes. Con él pueden vaciar los fondos de testnet y, si usas la misma clave para mainnet —mala práctica, pero frecuente—, también los fondos reales. Y si además te roban la llave SSH, pueden entrar en el servidor donde tienes alojado tu backend o el propio validador, modificar configuraciones o robar más datos.

La buena noticia es que la defensa es sencilla, aunque requiere disciplina. Lo primero: auditar las dependencias. Revisar el archivo Cargo.toml en Rust, el package.json en Node o el requirements.txt en Python antes de instalar cualquier cosa de fuentes no verificadas. Segundo: no guardar jamás las claves privadas en archivos de texto plano dentro del entorno de desarrollo; se deben usar carteras hardware como Ledger o Keystone y, para las claves SSH, agentes con protección por frase de paso. Tercero: separar las máquinas de desarrollo de las de producción, limitando al máximo el acceso desde el entorno de trabajo al servidor del validador.

La Fundación Solana ha intensificado sus avisos sobre seguridad en los últimos meses, consciente de que la explosión de nuevos proyectos trae también a los cazadores de claves. Mantener un ojo en los canales oficiales y en los avisos de los package managers es ahora una obligación básica.

La seguridad del desarrollador, el eslabón más débil de Solana

TrapDoor no es una vulnerabilidad en el protocolo, sino un fallo humano amplificado por la cadena de suministro. Solana presume de una arquitectura robusta (Proof of History, Tower BFT, 65.000 TPS de pico). Pero toda esa potencia se vuelve frágil si quien construye sobre ella deja la puerta abierta por una dependencia maliciosa. Y en un ecosistema tan acelerado, donde los airdrops y las memecoins se mueven a velocidad de vértigo, las prisas pueden hacer que una auditoría de dependencias parezca un trámite.

Lo vimos en 2022 con la parada de red que causó un validador con una configuración incorrecta, y lo estamos viendo ahora con ataques al eslabón humano. Aquí el riesgo no es que Solana se caiga, sino que un protocolo entero se quede sin fondos porque un desarrollador instaló la librería equivocada. Mi lectura es que el sector debe interiorizar una cultura de seguridad híbrida: la misma obsesión por el rendimiento tiene que aplicarse también a la protección del puesto de trabajo.

La comunidad reaccionó rápido. Tras destaparse TrapDoor, los investigadores publicaron las firmas de los paquetes y los registros los dieron de baja en horas, pero el daño ya estaba hecho para quienes los habían descargado. El caso deja una lección nítida: en cripto, la fortaleza de la cadena no te salva si el eslabón eres tú.


Publicidad