Finanças Descentralizadas segurança: Análise completa dos tipos de vulnerabilidades comuns e medidas de prevenção

robot
Geração de resumo em curso

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

Recentemente, um especialista em segurança compartilhou uma aula sobre segurança DeFi para os membros da comunidade. O especialista revisitou os principais eventos de segurança que o setor Web3 enfrentou nos últimos mais de um ano, explorou as razões pelas quais esses eventos ocorreram e como evitá-los, resumiu as vulnerabilidades de segurança comuns em 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 com funções de fallback, vulnerabilidades de lógica de negócios, vazamento de chaves privadas e ataques de reentrada. Este artigo se concentrará em empréstimos relâmpago, manipulação de preços e ataques de reentrada.

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

Empréstimo Relâmpago

O empréstimo relâmpago é uma inovação nas Finanças Descentralizadas, mas também é frequentemente utilizado por hackers. Os atacantes geralmente tomam emprestado grandes quantias de dinheiro através de empréstimos relâmpago, para manipular preços ou atacar a lógica de negócios. Os desenvolvedores precisam considerar se as funcionalidades do contrato podem causar anomalias devido a grandes quantias de dinheiro, ou se podem ser exploradas para obter recompensas indevidas.

Muitos projetos de Finanças Descentralizadas parecem ter altos rendimentos, mas na verdade o nível das equipes por trás dos projetos é desigual. Mesmo que o código em si não tenha vulnerabilidades, ainda podem existir problemas lógicos. Por exemplo, alguns projetos distribuem recompensas em horários fixos com base na quantidade de tokens dos detentores, mas atacantes podem usar empréstimos relâmpago para comprar uma grande quantidade de tokens e obter a maior parte das recompensas no momento da distribuição.

Manipulação de Preços

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

  1. Utiliza dados de terceiros para calcular preços, mas a forma como são usados ou a falta de verificação leva a manipulações maliciosas dos preços.
  2. Usar a quantidade de tokens de certos endereços como variáveis de cálculo, cujos saldos de tokens 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. Um exemplo típico de ataque de reentrada é quando a transferência é concluída antes da atualização do saldo do usuário, permitindo que o atacante retire o saldo repetidamente.

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

  1. Não só precisamos prevenir problemas de reentrada de uma única função;
  2. Seguir o padrão Checks-Effects-Interactions ao codificar;
  3. Utilize um modificador de prevenção de reentrância comprovado pelo tempo.

É importante notar que já existem muitas melhores práticas de segurança neste campo, não sendo necessário reinventar a roda. Usar soluções maduras e bem testadas é mais seguro do que desenvolver novas soluções por conta própria.

Sugestões de segurança para as equipes de projeto

  1. Seguir as melhores práticas de segurança para o desenvolvimento de contratos.
  2. Implementar funcionalidades de contrato que possam ser atualizadas e pausadas.
  3. Adotar um mecanismo de bloqueio de tempo.
  4. Aumentar os investimentos 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 a má conduta interna, ao mesmo tempo que se melhora a eficiência e se reforça a gestão de riscos.
  7. Introduzir dependências de terceiros com cautela e realizar verificações de segurança nas partes superiores e inferiores.

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

  1. Confirme se o contrato é de código aberto.
  2. Verifique se o Owner utiliza um mecanismo de multi-assinatura descentralizado.
  3. Verifique a situação das transações já existentes no contrato.
  4. Entender se o contrato é um contrato de agência, se é atualizável e se possui um bloqueio de tempo.
  5. Confirme se o contrato foi auditado por várias instituições e se as permissões do Owner são excessivas.
  6. Preste atenção ao uso de oráculos, especialmente tenha cuidado com oráculos construídos por você ou não confiáveis.

Ao prestar atenção a esses aspectos, os usuários podem avaliar melhor a segurança dos contratos inteligentes e reduzir o risco de participar em projetos de Finanças Descentralizadas.

Ver original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Recompensa
  • 2
  • Partilhar
Comentar
0/400
BearMarketHustlervip
· 18h atrás
Vulnerabilidades de contratos aparecem todos os dias, mas não nos precavemos.
Ver originalResponder0
ImpermanentLossFanvip
· 18h atrás
Inexperiente e adora brincar, já morri mil vezes...
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)