Autor: Beosin
Na madrugada de 9 de janeiro, um contrato não open-source implementado no protocolo Truebit há 5 anos foi atacado, resultando na perda de 8.535,36 ETH (aproximadamente 26,4 milhões de dólares). A equipa de segurança Beosin realizou uma análise de vulnerabilidades e rastreio de fundos relativamente a este incidente de segurança e partilha os resultados seguintes:

Análise de Técnicas de Ataque
Para este incidente, utilizámos a transação de ataque mais importante como análise, cujo hash da transação é: 0xcd4755645595094a8ab984d0db7e3b4aabde72a5c87c4f176a030629c47fb014
1. O atacante chama getPurchasePrice() para obter o preço.

2. Em seguida, chama-se a função defeituosa 0xa0296215() e define-se o valor de msg.value como extremamente baixo.

Devido ao contrato não ser open-source, através da descompilação do código, deduz-se que a função tem uma vulnerabilidade lógica aritmética, como a ocorrência de truncagem de inteiros, levando o atacante a concluir com sucesso a mineração de uma grande quantidade de tokens TRU.
3. O atacante utilizou a função burn para "vender de volta" os tokens moldados ao contrato, retirando uma grande quantidade de ETH das reservas do contrato.

Este processo é repetido mais 4 vezes, aumentando o valor de msg.value cada vez, até que a maioria dos ETH no contrato seja extraída.
Rastreamento de fundos roubados
Com base nos dados das transações na cadeia, a Beosin realizou uma investigação detalhada sobre fundos através da sua plataforma de investigação e rastreio na cadeia de blocos, BeosinTrace, e partilha os resultados abaixo:
Atualmente, os 8.535,36 ETH roubados, após terem sido transferidos, encontram-se, na sua maioria, depositados separadamente nos endereços 0xd12f6e0fa7fbf4e3a1c7996e3f0dd26ab9031a60 e 0x273589ca3713e7becf42069f9fb3f0c164ce850a.
O endereço 0xd12f detém 4.267,09 ETH e o endereço 0x2735 detém 4.001 ETH. O endereço utilizado pelo atacante para iniciar o ataque (0x6c8ec8f14be7c01672d31cfa5f2cefeab2562b50) também contém 267,71 ETH. Até agora, os três endereços não apresentaram transferências adicionais de fundos.

Mapa de Análise do Fluxo de Fundos Roubados por Beosin Trace
Todos os endereços acima foram marcados como endereços de alto risco pelo Beosin KYT. Tomando como exemplo o endereço do atacante:

Beosin KYT
Conclusão
O dinheiro roubado desta vez está relacionado com um contrato inteligente que não foi tornado open-source há cinco anos. Para tais contratos, as equipes de projetos devem atualizá-los, introduzindo funcionalidades de suspensão de emergência, limites de parâmetros e as novas características de segurança da versão mais recente do Solidity. Além disso, a auditoria de segurança continua sendo um componente essencial para os contratos. Através de uma auditoria de segurança, as empresas Web3 podem verificar o código dos contratos inteligentes de forma o mais abrangente possível, identificando e corrigindo vulnerabilidades potenciais, aumentando assim a segurança dos contratos.
*O Beosin fornecerá um relatório completo com a análise de todos os fluxos de fundos e riscos de endereços. Sinta-se à vontade para solicitá-lo por meio do e-mail oficial support@beosin.com.


