Em 08 de agosto de 2021 (Horário de Pequim, altura do bloco 12982491), o Zerogoki foi atacado, causando uma perda de 670 mil dólares. Após a investigação, descobrimos que está relacionado ao oráculo de preços comprometido. O atacante fornece um oráculo de preços assinado por chaves privadas legítimas, que contêm um número manipulado de tokens a serem trocados. No entanto, a razão pela qual o atacante conseguiu construir uma assinatura válida ainda é desconhecida.
Análise de Código
Primeiro realizamos uma análise no contrato atacado (0x80ecdb90).

A função swap chama decode_op para obter as informações no oráculo. Após realizar a validação, o contrato então queima os ns[0] x.token, cunha ns[1] y.token e paga a taxa de swap para o contrato GOV.

A partir da implementação do decode_op, existem três assinaturas no parâmetro. Essas assinaturas precisam ser verificadas (e autorizadas) antes de realizar a troca de tokens (queima e cunhagem).
Em resumo, o primeiro parâmetro ns da função swap define o número de tokens a serem trocados. O segundo parâmetro contém as assinaturas que precisam ser validadas. Quando a validação é aprovada, o número de tokens trocados é definido no primeiro parâmetro (ns).
Análise do Ataque
Na transação do ataque, 0x81e5f715, o atacante construiu uma mensagem contendo assinaturas válidas e passou um parâmetro ns manipulado (que contém uma grande quantidade de zUSD). Como resultado, o atacante usou 300 REI para trocar 700 mil zUSD.

Três endereços que estão relacionados às assinaturas são:
0x0d93A21b4A971dF713CfC057e43F5D230E76261C
0x3054e19707447800f0666ba274a249fc9a67aa4a
0x4448993f493b1d8d9ed51f22f1d30b9b4377dfd2
No entanto, não temos informações sobre o motivo pelo qual as chaves privadas desses endereços foram vazadas, no estágio atual.
Conclusão
Tornar um projeto DeFi seguro não é uma tarefa fácil. Além da auditoria de código, acreditamos que a comunidade deve adotar um método proativo para monitorar o status do projeto e bloquear o ataque antes mesmo que ele ocorra.
Sobre a BlockSec
A BlockSec é uma empresa pioneira em segurança blockchain estabelecida em 2021 por um grupo de especialistas em segurança de renome mundial. A empresa está comprometida em aprimorar a segurança e a usabilidade para o emergente mundo Web3, a fim de facilitar sua adoção em massa. Para isso, a BlockSec fornece serviços de auditoria de segurança de contratos inteligentes e cadeias EVM, a plataforma Phalcon para desenvolvimento seguro e bloqueio proativo de ameaças, a plataforma MetaSleuth para rastreamento e investigação de fundos, e a extensão MetaSuites para construtores web3 navegarem com eficiência no mundo cripto.
Até o momento, a empresa atendeu mais de 300 clientes ilustres, como MetaMask, Uniswap Foundation, Compound, Forta e PancakeSwap, e recebeu dezenas de milhões de dólares americanos em duas rodadas de financiamento de investidores proeminentes, incluindo Matrix Partners, Vitalbridge Capital e Fenbushi Capital.
Site oficial: https://blocksec.com/
Conta oficial no Twitter: https://twitter.com/BlockSecTeam



