Finanças Descentralizadas segurança ofensiva e defensiva: Empréstimos Flash, manipulação de preços e guia de prevenção de ataques de reentrada

robot
Geração de resumo em curso

Finanças Descentralizadas comuns vulnerabilidades de segurança e medidas de prevenção

Recentemente, um especialista em segurança compartilhou um curso de segurança DeFi para os membros da comunidade. Ele revisitou os principais eventos de segurança que o setor Web3 enfrentou no último ano, explorou as causas desses eventos e como evitá-los, resumiu as vulnerabilidades de segurança comuns em contratos inteligentes e medidas de prevenção, além de fornecer algumas recomendações de segurança para os desenvolvedores de projetos e usuários comuns.

Os tipos comuns de vulnerabilidades DeFi incluem principalmente empréstimos relâmpago, manipulação de preços, problemas de permissões de funções, chamadas externas arbitrárias, problemas de funções de fallback, falhas na lógica de negócios, vazamento de chaves privadas e ataques de reentrada, entre outros. Este artigo irá focar em empréstimos relâmpago, manipulação de preços e ataques de reentrada.

Cobo Finanças Descentralizadas Segurança (parte 2): Vulnerabilidades de segurança comuns em DeFi e prevenção

Empréstimo Relâmpago

O empréstimo relâmpago é uma inovação das Finanças Descentralizadas, mas também é frequentemente explorado por hackers:

  • O atacante empresta uma grande quantidade de fundos através de um empréstimo relâmpago para manipular os preços ou atacar a lógica de negócios.
  • Os desenvolvedores devem considerar se a funcionalidade do contrato pode resultar em anomalias devido a grandes quantias de dinheiro, ou se pode ser explorada para obter recompensas indevidas.
  • Alguns projetos não consideraram o impacto dos empréstimos relâmpago durante o design, resultando em roubo de fundos.

Nos últimos dois anos, os empréstimos relâmpago geraram diversos problemas. Alguns projetos DeFi de alta rentabilidade, devido ao nível de desenvolvimento desigual, apresentam várias vulnerabilidades. Por exemplo, há projetos que distribuem recompensas com base nas posições em momentos fixos, que foram explorados por atacantes utilizando empréstimos relâmpago para comprar grandes quantidades de tokens e obter a maior parte das recompensas. Além disso, alguns projetos que calculam preços através de Tokens podem ter seus preços afetados por empréstimos relâmpago. As equipes de projeto devem estar atentas a esses problemas.

Manipulação de Preços

O problema da manipulação de preços está intimamente relacionado com os empréstimos relâmpago, existindo principalmente dois tipos:

  1. Usar dados de terceiros para calcular preços, mas o uso inadequado ou a falta de verificação levam à manipulação maliciosa dos preços.

  2. Usar o saldo de Token de certos endereços como variável de cálculo, e esses saldos podem ser aumentados ou diminuídos temporariamente.

Ataque de Reentrada

O principal risco de chamar contratos externos é que eles podem assumir o controle do fluxo, fazendo modificações inesperadas nos dados. Por exemplo:

solidity mapeamento (endereço => uint) privado userBalances;

function withdrawBalance() public { uint amountToWithdraw = userBalances[msg.sender]; (bool success, ) = msg.sender.call.value(amountToWithdraw)(""); require(success); userBalances[msg.sender] = 0; }

Devido ao saldo do usuário ser zerado apenas no final da função, chamadas repetidas ainda conseguirão extrair o saldo.

As formas de ataque de reentrada são diversas e podem envolver várias funções ou contratos. Para resolver o problema de reentrada, é necessário ter em atenção:

  1. Não só prevenir a reinjeção de uma única função
  2. Seguir o padrão Checks-Effects-Interactions
  3. Usar um modifier de proteção contra reentrância verificado

É melhor usar as melhores práticas de segurança já existentes, em vez de reinventar a roda. Soluções maduras são mais seguras e confiáveis do que novas soluções desenvolvidas internamente.

Sugestões de segurança para a equipe do projeto

  1. Seguir as melhores práticas de segurança no desenvolvimento de contratos.
  2. Implementar funções de atualização e pausa do contrato
  3. Adotar um mecanismo de bloqueio de tempo
  4. Aumentar o investimento em segurança e estabelecer um sistema de segurança completo
  5. Aumentar a consciência de segurança de todos os funcionários
  6. Prevenir comportamentos maliciosos internos, ao mesmo tempo que se melhora a eficiência e se fortalece o controlo de risco.
  7. Introduzir terceiros com cautela e realizar verificações de segurança.

Como os usuários podem avaliar a segurança dos contratos inteligentes

  1. Confirme se o contrato é de código aberto
  2. Verifique se o Owner utiliza uma multisig descentralizada
  3. Verifique a situação das transações existentes do contrato
  4. Verificar se o contrato é atualizável e se há um bloqueio de tempo
  5. Confirme se o contrato foi auditado por várias instituições e se os privilégios do proprietário não são excessivos.
  6. Acompanhar a utilização de oráculos

Em suma, no ecossistema de Finanças Descentralizadas, tanto os desenvolvedores quanto os usuários precisam manter uma alta consciência de segurança, tomar as medidas preventivas necessárias e colaborar para preservar o desenvolvimento saudável do ecossistema.

DEFI1.48%
Ver original
Esta página pode conter conteúdos de terceiros, que são fornecidos apenas para fins informativos (sem representações/garantias) e não devem ser considerados como uma aprovação dos seus pontos de vista pela Gate, nem como aconselhamento financeiro ou profissional. Consulte a Declaração de exoneração de responsabilidade para obter mais informações.
  • Recompensa
  • 3
  • Partilhar
Comentar
0/400
ImpermanentPhobiavip
· 20h atrás
Hacker e Empréstimos Flash, que emoção!
Ver originalResponder0
SnapshotBotvip
· 20h atrás
A equipa do projeto ainda está a fazer as pessoas de parvas todos os dias.
Ver originalResponder0
OffchainWinnervip
· 20h atrás
Aprendi uma nova posição, hehe.
Ver originalResponder0
  • Pino
Negocie cripto em qualquer lugar e a qualquer hora
qrCode
Digitalizar para transferir a aplicação Gate
Novidades
Português (Portugal)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)