Euler Finance sofreu um ataque de empréstimo flash de 200 milhões de dólares, e a vulnerabilidade dos contratos inteligentes se tornou a raiz do problema.

robot
Geração do resumo em andamento

Euler Finance foi alvo de um ataque de empréstimo flash, com perdas de quase 200 milhões de dólares.

No dia 13 de março, o projeto Euler Finance sofreu um ataque de empréstimo flash devido a uma vulnerabilidade em seu contrato inteligente, resultando em uma perda colossal de cerca de 197 milhões de dólares. Este ataque envolveu 6 tipos diferentes de tokens de criptomoeda.

Análise de Vulnerabilidade do Euler Finance: Como Sofreu Ataque de Empréstimo Flash, Perda de 1.97 Bilhões de Dólares!

Análise do processo de ataque

O atacante primeiro obteve um Empréstimo Flash de 30 milhões de DAI de uma plataforma de empréstimos e implantou dois contratos-chave: um para operações de empréstimo e outro para liquidação.

Em seguida, o atacante bloqueou 20 milhões de DAI no contrato do Euler Protocol, obtendo cerca de 19,5 milhões de eDAI. Utilizando a funcionalidade de alavancagem de 10 vezes do Euler Protocol, o atacante tomou emprestado ainda 195,6 milhões de eDAI e 200 milhões de dDAI.

Em seguida, o atacante utilizou os restantes 10 milhões de DAI para pagar parte da dívida, destruindo a quantidade correspondente de dDAI. Depois, ele tomou emprestado novamente a mesma quantidade de eDAI e dDAI.

Um passo crucial é que o atacante explorou a vulnerabilidade da função donateToReserves, doando 10 vezes o montante a ser reembolsado, ou seja, 100 milhões de eDAI. Esta operação permitiu que o atacante acionasse o mecanismo de liquidação, obtendo assim 310 milhões de dDAI e 250 milhões de eDAI.

Por fim, o atacante obteve 38,9 milhões de DAI através da função de saque, devolveu 30 milhões de DAI do Empréstimos Flash e lucrou aproximadamente 8,87 milhões de DAI.

Análise da vulnerabilidade do Euler Finance: como sofreu um ataque de empréstimo flash, com perda de 197 milhões de dólares!

Análise de Vulnerabilidades da Euler Finance: Como Sofrer um Ataque de Empréstimo Flash, Perda de 197 Milhões de Dólares!

Análise da vulnerabilidade do Euler Finance: como sofreu um ataque de empréstimo flash, perda de 1,97 bilhões de dólares!

Análise de vulnerabilidades do Euler Finance: como sofrer um ataque de empréstimo flash, perda de 197 milhões de dólares!

Análise de vulnerabilidades do Euler Finance: como sofrer um ataque de empréstimo flash, perda de 197 milhões de dólares!

Análise de Vulnerabilidade do Euler Finance: como sofrer um ataque de empréstimo flash, perda de 197 milhões de dólares!

Análise de Vulnerabilidade do Euler Finance: Como sofrer um ataque de empréstimo flash e perder 197 milhões de dólares!

Análise de Vulnerabilidades do Euler Finance: Como sofrer um ataque de empréstimo flash, perda de 197 milhões de dólares!

Análise de Vulnerabilidade do Euler Finance: Como sofrer um ataque de empréstimo flash, perda de 197 milhões de dólares!

Análise da causa da vulnerabilidade

A vulnerabilidade central deste ataque reside na função donateToReserves da Euler Finance, que carece de verificações de liquidez necessárias. Comparado a outras funções críticas (como a função mint), a função donateToReserves não chama checkLiquidity para a validação da liquidez do usuário.

Normalmente, a função checkLiquidity assegura que a quantidade de eTokens do usuário seja maior do que a quantidade de dTokens, chamando o módulo RiskManager, para manter a segurança do sistema. No entanto, devido à falta deste passo crucial na função donateToReserves, os atacantes conseguiram manipular o estado de suas contas para que estivessem em conformidade com as condições de liquidação, e então realizar a liquidação para obter lucro.

Análise de vulnerabilidade da Euler Finance: como sofrer um ataque de empréstimo flash, perda de 197 milhões de dólares!

Sugestões de Segurança

Para este tipo de ataque, recomendamos que os projetos de blockchain:

  1. Realizar uma auditoria de segurança abrangente antes do lançamento do contrato inteligente, com especial atenção a aspectos críticos como empréstimos de fundos, gestão de liquidez e liquidação de dívidas.

  2. Implementar verificações de segurança rigorosas em todas as funções que possam afetar o estado dos ativos dos usuários, incluindo, mas não se limitando à validação de liquidez.

  3. Realizar revisões de código e varreduras de vulnerabilidades regularmente, corrigindo prontamente potenciais riscos de segurança.

  4. Estabelecer um mecanismo de gestão de riscos eficaz, definindo limites de empréstimo e limiares de liquidação razoáveis.

  5. Considere introduzir medidas de segurança adicionais, como assinaturas múltiplas ou bloqueios temporais, para evitar perdas de fundos em grande escala.

Ao adotar essas medidas preventivas, é possível aumentar significativamente a segurança dos projetos DeFi e reduzir o risco de sofrer ataques semelhantes.

EUL-2%
Ver original
Esta página pode conter conteúdo de terceiros, que é fornecido apenas para fins informativos (não para representações/garantias) e não deve ser considerada como um endosso de suas opiniões pela Gate nem como aconselhamento financeiro ou profissional. Consulte a Isenção de responsabilidade para obter detalhes.
  • Recompensa
  • 7
  • Compartilhar
Comentário
0/400
ServantOfSatoshivip
· 07-19 18:22
Mais um acidente, que chato.
Ver originalResponder0
MercilessHalalvip
· 07-19 08:53
Mais uma vez na zona cega do contrato
Ver originalResponder0
DYORMastervip
· 07-17 03:24
Mais uma vez, o contrato caiu na armadilha.
Ver originalResponder0
StableNomadvip
· 07-17 03:24
Mais um projeto que virou tijolo
Ver originalResponder0
LightningSentryvip
· 07-17 03:19
Mais uma vez, foram arrancados alguns lucros.
Ver originalResponder0
just_another_fishvip
· 07-17 03:11
A auditoria de contratos é indispensável
Ver originalResponder0
BitcoinDaddyvip
· 07-17 02:56
Mais uma vez, houve um acidente com contratos inteligentes.
Ver originalResponder0
Faça trade de criptomoedas em qualquer lugar e a qualquer hora
qrCode
Escaneie o código para baixar o app da Gate
Comunidade
Português (Brasil)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)