Autor: Beosin
El 9 de enero en la madrugada, un contrato no abierto implementado hace 5 años por Truebit Protocol sufrió un ataque, perdiendo 8,535.36 ETH (valorados en aproximadamente 26.4 millones de dólares). El equipo de seguridad de Beosin realizó un análisis de la vulnerabilidad y el seguimiento de fondos de este incidente de seguridad, y comparte los resultados a continuación:
Análisis de la técnica de ataque
Para este incidente, tomamos como análisis la transacción de ataque más significativa, cuyo hash es: 0xcd4755645595094a8ab984d0db7e3b4aabde72a5c87c4f176a030629c47fb014
1. El atacante llama a getPurchasePrice() para obtener el precio
2. Luego llama a la función defectuosa 0xa0296215(), estableciendo el valor de msg.value extremadamente bajo
Dado que el contrato no es de código abierto, a través del código descompilado se infiere que esta función tiene una vulnerabilidad lógica aritmética, como problemas de truncamiento de enteros, lo que permitió al atacante acuñar con éxito una gran cantidad de tokens TRU.
3. El atacante utiliza la función burn para "vender" los tokens acuñados de vuelta al contrato, extrayendo una gran cantidad de ETH de las reservas del contrato.
Este proceso se repite 4 veces, incrementando el valor de msg.value cada vez, hasta extraer casi todo el ETH del contrato.
Seguimiento de fondos robados
Según los datos de transacciones en cadena, Beosin realizó un seguimiento exhaustivo de los fondos a través de su plataforma de investigación y rastreo en cadena BeosinTrace, y comparte los resultados a continuación:
Actualmente, los 8,535.36 ETH robados, después de ser transferidos, se encuentran en su mayor parte en 0xd12f6e0fa7fbf4e3a1c7996e3f0dd26ab9031a60 y 0x273589ca3713e7becf42069f9fb3f0c164ce850a.
La dirección 0xd12f posee 4,267.09 ETH, y la dirección 0x2735 posee 4,001 ETH. La dirección desde la que el atacante inició el ataque (0x6c8ec8f14be7c01672d31cfa5f2cefeab2562b50) aún tiene 267.71 ETH. Las tres direcciones no han realizado más transferencias de fondos por el momento.
Gráfico de análisis del flujo de fondos robados por Beosin Trace
Todas las direcciones mencionadas han sido marcadas como direcciones de alto riesgo por Beosin KYT. Tomando como ejemplo la dirección del atacante:
Beosin KYT
Conclusión
Los fondos robados en este incidente involucran un contrato inteligente no abierto implementado hace 5 años. Para este tipo de contratos, los proyectos deberían actualizar el contrato, introducir funciones de pausa de emergencia, limitaciones de parámetros y las características de seguridad de las nuevas versiones de Solidity. Además, la auditoría de seguridad sigue siendo un paso esencial para los contratos. A través de auditorías de seguridad, las empresas Web3 pueden detectar de la manera más exhaustiva posible el código del contrato inteligente, encontrar y reparar vulnerabilidades potenciales, mejorando así la seguridad del contrato.
*Beosin proporcionará el informe completo de todos los flujos de fondos y riesgos de direcciones de este incidente. Bienvenidos a solicitarlo a través del correo oficial [email protected].











