Finanças Descentralizadas segurança ofensiva e defensiva: Análise completa de vulnerabilidades comuns e estratégias de proteção

robot
Geração de resumo em curso

Finanças Descentralizadas Vulnerabilidades de Segurança Comuns e Medidas de Prevenção

Recentemente, um especialista da indústria compartilhou suas percepções sobre a segurança das Finanças Descentralizadas. Ele revisitou os principais eventos de segurança que a indústria Web3 enfrentou nos últimos mais de um ano, discutiu as causas desses eventos e como evitá-los, resumiu as vulnerabilidades de segurança comuns em contratos inteligentes e as medidas de prevenção, e ofereceu algumas recomendações de segurança para os desenvolvedores de projetos e usuários comuns.

Os principais tipos de vulnerabilidades comuns em Finanças Descentralizadas incluem empréstimos relâmpago, manipulação de preços, problemas de permissão de funções, chamadas externas arbitrárias, problemas com funções de fallback, vulnerabilidades de lógica de negócios, vazamento de chaves privadas e reentrância. Abaixo, destacamos três tipos: empréstimos relâmpago, manipulação de preços e ataques de reentrada.

Empréstimo Relâmpago

Embora os empréstimos relâmpago sejam uma inovação nas Finanças Descentralizadas, eles também são frequentemente explorados por hackers. Os atacantes tomam emprestado grandes quantias através de empréstimos relâmpago para manipular preços ou atacar a lógica de negócios. Os desenvolvedores precisam considerar se a funcionalidade do contrato pode se comportar de maneira anômala devido a grandes quantias de dinheiro, ou se é possível interagir com várias funções em uma única transação para obter recompensas indevidas.

Muitos projetos de Finanças Descentralizadas parecem ter altos retornos, mas na realidade, a qualidade dos projetos varia bastante. Alguns projetos podem usar códigos comprados; mesmo que o código em si não tenha vulnerabilidades, ainda pode haver problemas lógicos. Por exemplo, alguns projetos distribuem recompensas em horários fixos com base na quantidade de tokens em posse, mas atacantes podem aproveitar empréstimos relâmpago para comprar uma grande quantidade de tokens e, no momento da distribuição das recompensas, obter a maior parte dos lucros.

Manipulação de Preços

O problema de manipulação de preços está intimamente relacionado aos empréstimos relâmpago, principalmente porque certos parâmetros usados no cálculo de preços podem ser controlados pelos usuários. Existem dois tipos comuns de problemas:

  1. Usar dados de terceiros ao calcular preços, mas de forma inadequada ou sem verificação, levando a manipulação maliciosa dos preços.

  2. Usar a quantidade de tokens de certos endereços como variáveis de cálculo, e os saldos de tokens desses endereços podem ser temporariamente aumentados ou diminuídos.

Ataque de Reentrada

Um dos principais riscos de chamar contratos externos é que eles podem assumir o controle do fluxo e fazer 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; }

Como o saldo do usuário só é definido como 0 no final da função, chamadas subsequentes ainda terão sucesso, permitindo a retirada repetida do saldo.

Para resolver o problema de reentrada, é necessário ter em atenção os seguintes pontos:

  1. Não só previne o problema de reentrada de uma única função.
  2. Seguir o padrão Checks-Effects-Interactions na codificação
  3. Usar um modifier de prevenção de reentrada verificado

É melhor usar práticas de segurança maduras, em vez de reinventar a roda. Novas soluções desenvolvidas por conta própria muitas vezes carecem de validação adequada, aumentando a probabilidade de problemas.

Sugestões de Segurança

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

  1. O desenvolvimento de contratos deve seguir as melhores práticas de segurança.
  2. O contrato pode ser atualizado e pausado
  3. Adotar um 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, enquanto se melhora a eficiência e se reforça o controle de riscos.
  7. Introduzir terceiros com cautela e realizar verificação de segurança nas partes envolvidas.

Como os usuários podem avaliar se um contrato inteligente é seguro

  1. O contrato é de código aberto?
  2. O proprietário adotou multi-assinatura descentralizada?
  3. Verifique a situação das transações existentes do contrato
  4. O contrato é um contrato de agência, é atualizável, tem um bloqueio de tempo?
  5. O contrato foi auditado por várias instituições? Os direitos de Owner são excessivos?
  6. Preste atenção à segurança dos oráculos

Em suma, no campo das Finanças Descentralizadas, as questões de segurança não podem ser ignoradas. Tanto os desenvolvedores de projetos quanto os usuários devem estar atentos e tomar as medidas de segurança necessárias para manter o desenvolvimento saudável do ecossistema DeFi.

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

DEFI6.81%
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
  • 6
  • Partilhar
Comentar
0/400
BearMarketBuildervip
· 2h atrás
Este bug foi consertado e outro apareceu. Quando é que isso acaba?
Ver originalResponder0
BackrowObservervip
· 2h atrás
Para que serve não saber desenvolver? Fui hackeado novamente.
Ver originalResponder0
NFT_Therapyvip
· 2h atrás
O contrato não está bem escrito, o Hacker não conseguirá escapar.
Ver originalResponder0
PhantomMinervip
· 2h atrás
Este bug é demais, como é que os idiotas conseguem passar pelos Hackers?
Ver originalResponder0
consensus_whisperervip
· 2h atrás
又要讲Finanças Descentralizadas安全呐
Ver originalResponder0
WalletManagervip
· 2h atrás
Depois de ver a auditoria de código, até a cópia de segurança da carteira fria parece insuficiente, a vulnerabilidade de reentrada é muito profunda!
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)