Autor: Beosin
La madrugada del 9 de enero, un contrato no open source implementado por el protocolo Truebit hace 5 años fue atacado, causando una pérdida de 8.535,36 ETH (aproximadamente 26,4 millones de dólares estadounidenses). El equipo de seguridad de Beosin realizó un análisis de vulnerabilidades y rastreo de fondos sobre este incidente de seguridad y comparte los resultados a continuación:

Análisis de técnicas ofensivas
En este incidente, tomamos la transacción de ataque principal como objeto de análisis. El hash de la transacción es: 0xcd4755645595094a8ab984d0db7e3b4aabde72a5c87c4f176a030629c47fb014
1. El atacante llama a getPurchasePrice() para obtener el precio.

2. Luego se llama a la función defectuosa 0xa0296215() y se establece un valor msg.value extremadamente pequeño.

Debido a que el contrato no es de código abierto, se especula que la función tiene una vulnerabilidad lógica aritmética al desensamblar el código, como posibles problemas de truncamiento de enteros, lo que permitió que un atacante mintiera con éxito una gran cantidad de tokens TRU.
3. El atacante utilizó la función burn para "vender de vuelta" los tokens acuñados al contrato, extrayendo así una gran cantidad de ETH de las reservas del contrato.

Este proceso se repite 4 veces más, aumentando 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 la cadena, Beosin realizó un seguimiento detallado de los fondos a través de su plataforma de investigación y seguimiento en la cadena de bloques, BeosinTrace, y comparte los resultados a continuación:
Actualmente, los 8.535,36 ETH robados, tras ser transferidos, se encuentran en su mayor parte almacenados en las direcciones 0xd12f6e0fa7fbf4e3a1c7996e3f0dd26ab9031a60 y 0x273589ca3713e7becf42069f9fb3f0c164ce850a.
La dirección 0xd12f posee 4.267,09 ETH y la dirección 0x2735 posee 4.001 ETH. La dirección utilizada por el atacante para iniciar el ataque (0x6c8ec8f14be7c01672d31cfa5f2cefeab2562b50) también contiene 267,71 ETH. No se han producido movimientos adicionales de fondos en estas tres direcciones.

Mapa de análisis del flujo de fondos robados por Beosin Trace
Las direcciones mencionadas anteriormente han sido marcadas por Beosin KYT como direcciones de alto riesgo. Tomando como ejemplo la dirección del atacante:

Beosin KYT
Conclusión
Los fondos robados en esta ocasión están relacionados con un contrato inteligente no abierto al público hace cinco años. Para este tipo de contratos, la parte del proyecto debería actualizarlos, introduciendo funciones de suspensión de emergencia, límites de parámetros y nuevas características de seguridad de Solidity. Además, las auditorías de seguridad siguen siendo un componente esencial para los contratos inteligentes. A través de auditorías de seguridad, las empresas de Web3 pueden detectar de manera lo más completa posible los códigos de los contratos inteligentes, identificar y corregir vulnerabilidades potenciales, mejorando así la seguridad de los contratos.
*Beosin proporcionará un informe de análisis completo sobre todos los flujos de fondos y riesgos de direcciones. Puede solicitarlo a través del correo electrónico oficial support@beosin.com.


