Análise completa das vulnerabilidades de segurança em Finanças Descentralizadas: Guia de prevenção contra Empréstimos Flash, manipulação de preços e ataques de reentrada.

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

Recentemente, um especialista em segurança compartilhou tópicos relacionados à segurança das Finanças Descentralizadas com os membros da comunidade. O especialista revisitou os principais eventos de segurança que afetaram a indústria Web3 nos últimos mais de um ano, explorou as causas desses eventos e como evitá-los, resumiu as vulnerabilidades de segurança comuns dos contratos inteligentes e as medidas de prevenção, e deu algumas recomendações de segurança para as equipes de projeto e usuários comuns.

Os tipos comuns de vulnerabilidades em Finanças Descentralizadas incluem 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, vulnerabilidades de lógica de negócios, vazamento de chaves privadas e ataques de reentrada. Este artigo foca nos empréstimos relâmpago, manipulação de preços e ataques de reentrada.

Empréstimo Rápido

O empréstimo relâmpago é uma inovação nas Finanças Descentralizadas, mas também é frequentemente utilizado por hackers. Os atacantes podem utilizar o empréstimo relâmpago para tomar emprestado grandes quantidades de fundos, manipulando preços ou atacando a lógica de negócios. Os desenvolvedores precisam considerar se a funcionalidade do contrato pode causar anomalias devido a grandes quantidades de fundos, ou se pode ser explorada em uma única transação interagindo com múltiplas funções para obter ganhos indevidos.

Muitos projetos de Finanças Descentralizadas parecem ter altos rendimentos, mas a qualidade dos desenvolvedores varia bastante. Mesmo que o código em si não tenha vulnerabilidades, podem ainda existir problemas lógicos. Por exemplo, alguns projetos distribuem recompensas em horários fixos com base na quantidade de tokens detidos, mas são explorados por atacantes que utilizam empréstimos relâmpago para comprar grandes quantidades de tokens, obtendo assim a maior parte das recompensas no momento da distribuição. Outros projetos que calculam preços através de Tokens também podem ser facilmente afetados por empréstimos relâmpago. Os desenvolvedores devem estar atentos 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, principalmente devido ao fato de que certos parâmetros podem ser controlados pelo usuário durante o cálculo do preço. Existem duas situações comuns:

  1. Utilizar dados de terceiros ao calcular preços, mas de forma incorreta ou com verificações em falta, leva a que os preços sejam manipulados maliciosamente.

  2. Usar o saldo de Token de certos endereços como variáveis de cálculo, e a quantidade de Token desses endereços pode ser aumentada ou diminuída temporariamente.

Ataque de Reentrada

Um dos principais riscos de chamar contratos externos é que eles podem assumir o controle do fluxo, fazendo alterações inesperadas nos dados. Por exemplo:

solidity mapeamento (endereço => uint) saldo privado do usuário;

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

Devido ao fato de que o saldo do usuário só é definido como 0 no final da função, a segunda e as chamadas subsequentes ainda terão sucesso e poderão retirar o saldo repetidamente.

Os ataques de reentrada têm várias formas, podendo envolver diferentes funções do mesmo contrato ou funções de múltiplos contratos. Ao resolver o problema de reentrada, deve-se ter em atenção:

  1. Não apenas previne o problema da reentrada de uma única função
  2. Seguir o padrão Checks-Effects-Interactions na codificação
  3. Usar um modificador anti-reentrada verificado

É melhor evitar reinventar a roda, devendo-se utilizar as melhores práticas de segurança já consolidadas na indústria. As "rodas" recém-criadas carecem de validação adequada, e a probabilidade de problemas é frequentemente maior do que a de soluções testadas ao longo do tempo.

Sugestões de Segurança

Sugestões de segurança para o projeto

  1. Seguir as melhores práticas de segurança no desenvolvimento de contratos

  2. Projetar contratos atualizáveis e pausáveis: ajuda a identificar e reduzir rapidamente as perdas por ataques.

  3. Utilizar um bloqueio temporal: proporcionar um período de amortecimento para descobrir e lidar com potenciais problemas

  4. Aumentar o investimento em segurança, estabelecer um sistema de segurança completo: a segurança é um trabalho sistemático, não se limita apenas à auditoria de contratos.

  5. Aumentar a consciência de segurança de todos os funcionários: muitos ataques exploram as fraquezas humanas, estar alerta pode evitar muitos problemas.

  6. Prevenir a má conduta interna, ao mesmo tempo em que se aumenta a eficiência e se reforça o controle de riscos: como a adoção de mecanismos de múltiplas assinaturas, bloqueios de tempo, etc.

  7. Introduzir terceiros com cautela: realizar verificações de segurança em toda a cadeia, especialmente em contratos não abertos.

Métodos para usuários/LP avaliarem a segurança de contratos inteligentes

  1. Verifique se o contrato é de código aberto: não participe de projetos que não são de código aberto.

  2. Confirmar se o Owner utiliza uma multi-assinatura descentralizada.

  3. Ver a situação das transações existentes do contrato: tempo de implementação, número de interações, etc.

  4. Verifique se o contrato é um contrato de proxy, se é atualizável e se possui um bloqueio de tempo.

  5. Confirme se o contrato foi auditado por várias instituições, se os direitos do Owner são excessivos.

  6. Atenção à confiabilidade dos oráculos: oráculos líderes são mais seguros, oráculos de construção própria ou de baixo custo devem ser usados com cautela.

Em suma, os participantes na área das Finanças Descentralizadas devem permanecer atentos, as equipes dos projetos devem considerar a segurança de forma abrangente, e os usuários devem avaliar cuidadosamente a segurança do projeto antes de tomar decisões.

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

DEFI-9.5%
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
  • 5
  • Compartilhar
Comentário
0/400
HackerWhoCaresvip
· 13h atrás
O capital é emprestado, a segurança não pode ser emprestada.
Ver originalResponder0
SurvivorshipBiasvip
· 20h atrás
Outra vez a história de lágrimas e sangue dos idiotas que foram feitos de parvas.
Ver originalResponder0
MetaMaskVictimvip
· 20h atrás
Outra vez alguém a fazer as pessoas de parvas... Quem é que perdeu, diga-me.
Ver originalResponder0
blocksnarkvip
· 21h atrás
Hacker又要 fazer dinheiro了
Ver originalResponder0
StakeWhisperervip
· 21h atrás
Entendi, mas não entendi.
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)