Cómo una función de Solana diseñada para la conveniencia permitió a los atacantes drenar más de 270 millones de dólares de Drift

La explotación no involucró un error en el código de Drift. Se utilizaron "nonces duraderos", una función legítima de las transacciones en Solana, para prefirmar transferencias administrativas semanas antes de ejecutarlas, eludiendo la seguridad multisig del protocolo en minutos.

Hacker (Getty Images/Seksan Mongkhonkhamsao)
Resumen
  • Un atacante drenó al menos $270 millones del Protocolo Drift en Solana al abusar de una característica legítima llamada "nonces duraderos," en lugar de explotar un error de código o claves robadas.
  • Al obtener dos aprobaciones engañosas del multisig del Consejo de Seguridad de cinco miembros de Drift, el atacante prefirmó transacciones que permanecieron válidas por más de una semana y luego las utilizó para tomar el control a nivel de protocolo en minutos.
  • El robo, que afectó a todos los depósitos de usuarios en Drift y canalizó fondos a través de NEAR, Backpack, Wormhole y Tornado Cash, pone de manifiesto cómo la ingeniería social y las fallas operativas, especialmente en torno al manejo duradero de nonces, están convirtiéndose en una de las principales vectores de amenaza en DeFi.

El ataque al Protocolo Drift no fue un hackeo en el sentido tradicional.

Nadie encontró un error ni descifró una clave privada. Tampoco hubo un exploit de préstamo instantáneo ni un oráculo manipulado.

En cambio, un atacante utilizó una función legítima de Solana, las 'nonces duraderas', para engañar al consejo de seguridad de Drift y que preaprobaran transacciones que se ejecutarían semanas después, en un momento y bajo un contexto que los firmantes nunca pretendieron.

El resultado fue una fuga de al menos 270 millones de dólares que se ejecutó en menos de un minuto pero que tomó más de una semana preparar.

Qué son los nonces duraderos y por qué existen

En Solana, cada transacción incluye un 'hash de bloque reciente', esencialmente una marca de tiempo que demuestra que la transacción fue creada recientemente. Ese hash de bloque expira después de aproximadamente 60 a 90 segundos. Si la transacción no se envía a la red dentro de ese intervalo, se vuelve inválida. Esto es una característica de seguridad que ayuda a prevenir que transacciones antiguas y obsoletas se reproduzcan posteriormente.

Los nonces duraderos anulan esa característica de seguridad. Sustituyen el blockhash que expira por un 'nonce' fijo, un código de un solo uso almacenado en una cuenta especial en la cadena, que mantiene la validez de la transacción indefinidamente hasta que alguien decida enviarla.

La función existe por razones legítimas. Las carteras de hardware, las configuraciones de firma fuera de línea y las soluciones de custodia institucional requieren la capacidad de preparar y aprobar transacciones sin verse obligadas a enviarlas en un plazo de 90 segundos.

Pero las transacciones con validez indefinida generan un problema. Si alguien logra que otra persona firme una transacción hoy, esta puede ejecutarse la próxima semana o el próximo mes, según las reglas codificadas del sistema. El firmante no tiene forma de revocar su aprobación una vez concedida, a menos que se avance manualmente la cuenta nonce, lo cual la mayoría de los usuarios no supervisa.

Cómo los atacantes los utilizaron

El protocolo de Drift estaba gobernado por un 'multifirma del Consejo de Seguridad', un sistema en el cual varias personas (en este caso, cinco) comparten el control, y cualquier acción requiere la aprobación de al menos dos de ellas. Las multifirmas son una práctica de seguridad estándar en DeFi, donde la idea es que comprometer a una sola persona no sea suficiente para robar fondos.

Pero el atacante no necesitó comprometer las claves de nadie. Todo lo que necesitaba eran dos firmas, y aparentemente las obtuvieron mediante lo que Drift describe como "aprobaciones de transacciones no autorizadas o mal representadas", lo que significa que los firmantes probablemente pensaron que estaban aprobando una transacción rutinaria.

Aquí está la línea de tiempo que Drift publicó en una publicación de X del jueves.

El 23 de marzo se crearon cuatro cuentas nonce duraderas. Dos estaban asociadas con miembros legítimos del Consejo de Seguridad de Drift. Dos estaban controladas por el atacante. Esto significa que el atacante ya había obtenido firmas válidas de dos de los cinco miembros del consejo, bloqueadas en transacciones nonce duraderas que no expirarían.

El 27 de marzo, Drift llevó a cabo una migración planificada del Consejo de Seguridad para reemplazar a un miembro del consejo. El atacante se adaptó. Para el 30 de marzo, apareció una nueva cuenta de nonce duradera, vinculada a un miembro del multisig actualizado, lo que indica que el atacante había recuperado el umbral requerido de aprobación de dos de cinco bajo la nueva configuración.

El 1 de abril, el atacante ejecutó.

Primero, Drift realizó una retirada de prueba legítima de su fondo de seguro. Aproximadamente un minuto después, el atacante envió las transacciones pre-firmadas con nonce duradero. Dos transacciones, separadas por cuatro slots en la blockchain de Solana, fueron suficientes para crear y aprobar una transferencia administrativa maliciosa, luego aprobarla y ejecutarla.

En cuestión de minutos, el atacante obtuvo el control total de los permisos a nivel de protocolo de Drift. Utilizaron ese control para introducir un mecanismo de retiro fraudulento y vaciar las bóvedas.

(Drift/CoinDesk)

Qué se tomó y a dónde fue

Los investigadores onchain rastrearon los flujos de fondos en tiempo real. El desglose de los activos robados, compilado por el investigador de seguridad Vladimir S., totalizó aproximadamente 270 millones de dólares a través de docenas de tokens.

La categoría individual más grande fue de $155.6 millones en tokens JPL, seguida de $60.4 millones en USDC, $11.3 millones en CBBTC (Bitcoin envuelto de Coinbase), $5.65 millones en USDT, $4.7 millones en ether envuelto, $4.5 millones en DSOL, $4.4 millones en WBTC, $4.1 millones en FARTCOIN, y cantidades menores distribuidas en JUP, JITOSOL, MSOL, BSOL, EURC y otros.

(Vladimir S./ZachXBT/Arkham Intelligence/CoinDesk)

La cartera principal utilizada para el drenaje fue financiada ocho días antes del ataque a través de intenciones del Protocolo NEAR, pero permaneció inactiva hasta el día de la ejecución. Los fondos robados fueron transferidos a carteras intermediarias que fueron financiadas justo el día anterior mediante Backpack, un intercambio descentralizado de criptomonedas que requiere verificación de identidad, lo que podría proporcionar una pista a los investigadores.

Desde allí, los fondos se trasladaron a direcciones de Ethereum a través de Wormhole, un puente entre cadenas. Esas direcciones de Ethereum habían sido prefinanciadas utilizando Tornado Cash, el mezclador de privacidad sancionado.

ZachXBT, un destacado investigador onchain, destacado que más de 230 millones de dólares en USDC fueron transferidos desde Solana a Ethereum a través del CCTP (Protocolo de Transferencia Entre Cadenas) de Circle en más de 100 transacciones.

Criticó a Circle, el emisor centralizado de USDC, por no congelar los fondos robados durante una ventana de seis horas después de que el ataque comenzara alrededor del mediodía, hora del Este.

El ataque también fue reminiscentede intentos recientes de ingeniería social, utilizando tácticas similares a las observadas anteriormente, según un publicación en redes sociales por un usuario que se hace llamar 'Temmy.' «Hemos visto esto antes. Lo hemos visto tantas veces», dijo el usuario.

"bybit. $1.4 mil millones. El atacante comprometió la infraestructura de firma y engañó a los firmantes para que autorizaran transacciones maliciosas. mismo concepto. ingeniería social. no código. puente ronin. $625 millones. claves de validadores comprometidas. misma historia. protocolo cetus. $223 millones. método diferente pero mismo resultado. cientos de millones perdidos." decía la publicación.

Lo que no se comprometió

Lo que falló fue la capa humana alrededor del multisig. Los nonces duraderos permitieron al atacante separar el momento de la aprobación del momento de la ejecución por más de una semana, creando una brecha en la que el contexto del documento firmado ya no coincidía con el contexto en el que se utilizó.

Todos los depósitos en los productos de préstamo y crédito de Drift, depósitos en bóvedas y fondos de trading están afectados. Los tokens DSOL no depositados en Drift, incluidos los activos en staking para el validador de Drift, no se ven afectados. Los activos del fondo de seguro están siendo retirados y protegidos. El protocolo ha sido congelado y la cartera comprometida ha sido eliminada del multisig.

Por lo tanto, este es el tercer exploit importante en los últimos meses que no involucró una vulnerabilidad en el código. La ingeniería social y las fallas en la seguridad operativa, más que los errores en los contratos inteligentes, son cada vez más la forma en que el dinero sale de los protocolos DeFi.

El vector de nonce duradero es particularmente peligroso porque explota una característica que existe por una buena razón y es difícil de defender sin cambiar fundamentalmente cómo funcionan las aprobaciones multisig en Solana.

La cuestión abierta, que el próximo informe detallado de Drift deberá responder, es cómo dos miembros multisig distintos aprobaron transacciones que no comprendían, y si algún cambio en las herramientas o en la interfaz podría haber señalado las transacciones con nonce duradero como sujetas a una revisión adicional.

RealFi 169 Image

Diversified RWA stablecoins sustain 5-7% yield from real credit as crypto funding compresses to ~4%. GENIUS pushes yield off-chain; TAM grows to $4B in 3 years.

Por qué es importante:

Diversified RWA stablecoins sustain 5-7% yield from real credit as crypto funding compresses to ~4%. GENIUS pushes yield off-chain; TAM grows to $4B in 3 years.