El SDK legítimo de JavaScript de Solana se vio comprometido temporalmente ayer en un ataque a la cadena de suministro, donde la biblioteca fue atacada con un código malicioso para robar claves privadas de criptomonedas y vaciar las billeteras.
Solana ofrece un SDK llamado » @solana/web3.js » utilizado por aplicaciones descentralizadas (dApps) para conectarse e interactuar con la cadena de bloques de Solana.
La empresa de seguridad de la cadena de suministro Socket informa que la biblioteca Web3.js de Solana fue secuestrada para lanzar dos versiones maliciosas para robar claves criptográficas privadas y secretas para proteger billeteras y firmar transacciones.
«Se ha detectado un ataque a la cadena de suministro en las versiones 1.95.6 y 1.95.7 de la popular biblioteca @solana/web3.js , que recibe más de ~350.000 descargas semanales en npm», explica Socket .
«Estas versiones comprometidas contienen código malicioso inyectado que está diseñado para robar claves privadas de desarrolladores y usuarios desprevenidos, lo que potencialmente permite a los atacantes vaciar las billeteras de criptomonedas».
Solana confirmó la violación , afirmando que una de sus cuentas de acceso de publicación se vio comprometida, lo que permitió a los atacantes publicar dos versiones maliciosas de la biblioteca.
«Hoy temprano, una cuenta de acceso de publicación se vio comprometida para
@solana/web3.js
, una biblioteca de JavaScript que se usa comúnmente en las dapps de Solana. Esto permitió a un atacante publicar paquetes no autorizados y maliciosos que fueron modificados, lo que les permitió robar material de claves privadas y drenar fondos de las dapps, como bots, que manejan claves privadas directamente. Este problema no debería afectar a las billeteras sin custodia, ya que generalmente no exponen claves privadas durante las transacciones. Este no es un problema con el protocolo Solana en sí, sino con una biblioteca de cliente de JavaScript específica y solo parece afectar a los proyectos que manejan claves privadas directamente y que se actualizaron dentro de la ventana de las 3:20 p. m. UTC y las 8:25 p. m. UTC del martes 2 de diciembre de 2024.Estas dos versiones no autorizadas (1.95.6 y 1.95.7) fueron detectadas en cuestión de horas y desde entonces no han sido publicadas.❖Solana
Solana advierte a los desarrolladores que sospechan que fueron comprometidos que actualicen inmediatamente a la última versión v1.95.8 y que roten todas las claves, incluidas las multifirmas, las autoridades del programa y los pares de claves del servidor.
El ladrón de claves Solana Web3.js
Según el investigador de DataDog, Christophe Tafani-Dereeper , los actores de la amenaza agregaron una función maliciosa addToQueue que robó claves secretas y privadas y las envió al servidor del atacante.
«La puerta trasera insertada en v1.95.7 agrega una función «addToQueue» que filtra la clave privada a través de encabezados de CloudFlare aparentemente legítimos», explica el investigador.
«Las llamadas a esta función se insertan luego en varios lugares que (legítimamente) acceden a la clave privada».
Se revisó la biblioteca comprometida y se agregaron llamadas a la función addToQueue a cinco ubicaciones clave en la biblioteca: las funciones fromSecretKey()
, fromSeed()
, createInstructionWithPublicKey()
y createInstructionWithPrivateKey()
, y account constructor
.
Las funciones se utilizan en toda la biblioteca y tienen la siguiente funcionalidad:
- fromSecretKey(): crea un par de claves a partir de una matriz de bytes de clave secreta sin procesar.
- fromSeed(): genera un par de claves a partir de una semilla de 32 bytes.
- createInstructionWithPrivateKey(): crea una instrucción ed25519 con una clave privada.
- createInstructionWithPrivateKey(): crea una instrucción secp256k1 con una clave privada.
El código malicioso robará la clave secreta pasada o generada (las dos primeras funciones y el constructor de la cuenta) o la clave privada pasada (las dos últimas funciones) y la enviará a los puntos finales del atacante en https://sol-rpc[.]xyz/api/rpc/queue.
Este dominio se registró el 22 de noviembre a las 19:58:27 UTC y no se ha visto utilizado en otros ataques.
Una vez que los actores de amenazas obtienen acceso a estas claves, pueden cargarlas en sus propias billeteras y drenar de forma remota todas las criptomonedas y NFT almacenados.
Socket dice que el ataque ha sido rastreado hasta la dirección Solana FnvLGtucz4E1ppJHRTev6Qv4X7g8Pw6WPStHCcbAKbfx , que actualmente contiene 674,86 Solana y cantidades variables de tokens Irish Pepe, Star Atlas, Jupiter, USD Coin, Santa Hat, Pepe on Fire, Bonk, catwifhat y Genopets Ki.
Solscan muestra que el valor estimado de la criptomoneda robada es de $ 184,000 al momento de escribir este artículo.
Cualquier persona cuyas billeteras se vieron comprometidas en este ataque a la cadena de suministro debe transferir inmediatamente los fondos restantes a una nueva billetera y dejar de usar la anterior, ya que las claves privadas ahora están comprometidas.