Análise das três principais vulnerabilidades de segurança em Finanças Descentralizadas: 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 conhecimentos sobre segurança em Finanças Descentralizadas com os membros da comunidade. Ele revisitou os principais eventos de segurança que o setor Web3 enfrentou nos últimos mais de um ano, discutiu as causas desses eventos e as maneiras de evitá-los, resumiu as vulnerabilidades comuns de contratos inteligentes e as medidas de prevenção, e deu algumas recomendações de segurança.

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 com funções fallback, vulnerabilidades de lógica de negócios, vazamento de chaves privadas, reentrância, entre outros. Este artigo foca em empréstimos relâmpago, manipulação de preços e ataques de reentrância.

Empréstimo Relâmpago

O empréstimo relâmpago é uma inovação nas Finanças Descentralizadas, mas quando explorado por hackers, pode ser usado para tomar emprestado grandes quantidades de dinheiro sem custo para realizar ataques. Ataques comuns muitas vezes estão associados ao empréstimo relâmpago, onde o atacante toma emprestado uma grande quantidade de fundos para manipular preços ou atacar a lógica de negócios.

Os desenvolvedores precisam considerar se as funções do contrato serão anômalas devido a grandes quantias de dinheiro ou se poderão ser utilizadas em uma única transação para interagir com várias funções e obter ganhos indevidos.

Alguns projetos distribuem recompensas com base nas posições em momentos fixos, mas são explorados por atacantes que usam empréstimos relâmpago para comprar grandes quantidades de tokens e obter a maior parte das recompensas. Outros projetos calculam os preços com base em Tokens, que podem ser afetados por empréstimos relâmpago. As equipes dos projetos devem estar atentas a esses problemas.

Manipulação de Preços

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

  1. Ao calcular o preço, utiliza dados de terceiros, mas o uso incorreto ou a falta de verificação levam a manipulações de preço maliciosas.

  2. Usar a quantidade de Token de certos endereços como variável de cálculo, sendo que o saldo de Token desses endereços pode ser temporariamente aumentado ou diminuído.

Ataque de Reentrada

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

solidity mapping (address => uint) private userBalances;

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

Uma vez que o saldo só é zerado no final da função, chamadas repetidas ainda conseguirão extrair com sucesso.

Existem várias formas de ataque de reentrada, que podem envolver várias funções ou contratos. Para resolver o problema de reentrada, deve-se ter atenção a:

  1. Não só prevenir a reentrada de uma única função
  2. Codificação seguindo o padrão Checks-Effects-Interactions
  3. Usar o modificador de proteção contra reentrância comprovado

Deve-se tentar utilizar práticas de segurança maduras, evitando reinventar a roda.

Sugestões de segurança para as partes do projeto

  1. O desenvolvimento de contratos deve seguir as melhores práticas de segurança

  2. Contratos podem ser atualizados e pausados: detectar e reduzir perdas rapidamente.

  3. Utilizar um bloqueio de tempo: dar tempo para verificação e reação

  4. Estabelecer um sistema de segurança completo: evitar riscos de forma abrangente

  5. Aumentar a consciência de segurança de todos os funcionários

  6. Prevenir comportamentos maliciosos internos, enquanto se melhora a eficiência e se reforça a gestão de riscos.

  7. Introduzir terceiros com cautela: verificar a segurança dos upstream e downstream.

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

  1. O contrato é de código aberto?

  2. O proprietário adotou um multiassinatura descentralizado?

  3. Verifique a situação das transações do contrato

  4. O contrato é atualizável? Há um período de bloqueio?

  5. Aceita auditoria de várias instituições? O proprietário tem permissões excessivas?

  6. Atenção à confiabilidade dos oráculos

Em suma, a segurança é crucial no campo das Finanças Descentralizadas. Tanto os desenvolvedores de projetos quanto os usuários devem estar alertas e tomar as medidas necessárias para reduzir os riscos.

Cobo Finanças Descentralizadas 安全课(下):Finanças Descentralizadas 常⻅安全漏洞及预防

DEFI-2.15%
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
  • 2
  • Partilhar
Comentar
0/400
StableGeniusDegenvip
· 16h atrás
Vou ter que começar a aprender segurança do zero novamente. Que chato.
Ver originalResponder0
DAOplomacyvip
· 16h atrás
teatro de segurança no seu melhor... as mesmas velhas vulnerabilidades, o mesmo desalinhamento de suporte para ser sincero
Ver originalResponder0
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)