Guia Completo de Segurança em Finanças Descentralizadas: Profundidade na Análise de Vulnerabilidades Comuns e Estratégias de Prevenção

robot
Geração de resumo em curso

Finanças Descentralizadas Segurança: Tipos comuns de vulnerabilidades e medidas de prevenção

Recentemente, um especialista em segurança compartilhou uma aula de segurança em Finanças Descentralizadas com os membros da comunidade. Ele revisou os principais incidentes de segurança que a indústria Web3 enfrentou no último ano e meio, discutiu as razões pelas quais esses incidentes ocorreram e como evitá-los, resumiu as vulnerabilidades de segurança comuns em contratos inteligentes e suas medidas de prevenção, e deu algumas recomendações de segurança para os desenvolvedores de projetos 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 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 Comuns de Segurança em Finanças Descentralizadas e Prevenção

Empréstimo relâmpago

O empréstimo relâmpago é uma inovação nas Finanças Descentralizadas, mas também é frequentemente explorado por hackers. Os atacantes usam o empréstimo relâmpago para emprestar grandes quantias de dinheiro, manipulando o preço ou atacando a lógica de negócios. Os desenvolvedores precisam considerar se a funcionalidade do contrato pode resultar em anomalias devido a quantias enormes de dinheiro, ou ser explorada em uma única transação para interagir com várias funções e obter recompensas indevidas.

Muitos projetos de Finanças Descentralizadas parecem ter altos rendimentos, mas na verdade o nível dos desenvolvedores varia muito. Mesmo que o código em si não tenha falhas, ainda pode haver problemas lógicos. Por exemplo, alguns projetos distribuem recompensas em horários fixos com base na quantidade de tokens que os detentores possuem, mas atacantes podem usar empréstimos relâmpago para comprar grandes quantidades de tokens e obter a maior parte das recompensas quando estas são distribuídas.

Manipulação de Preços

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

  1. Usar dados de terceiros ao calcular preços, mas de forma incorreta ou sem verificação, levando a preços manipulados de forma maliciosa.
  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

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 é que, na função de retirada, o saldo do usuário só é definido como 0 no final da função, permitindo que múltiplas chamadas ainda consigam retirar com sucesso.

Para resolver o problema de reentrada, é necessário prestar atenção aos seguintes pontos:

  1. Não apenas prevenir o problema de reentrada de uma única função.
  2. Seguir o padrão Checks-Effects-Interactions na codificação
  3. Usar um modificador de proteção contra reentrância testado ao longo do tempo

Na prática de segurança, deve-se tentar usar soluções maduras que tenham sido suficientemente validadas, em vez de reinventar a roda.

Recomendações de segurança para o projeto

  1. Seguir as melhores práticas de segurança para o desenvolvimento de contratos
  2. Implementar a funcionalidade de contratos que podem ser atualizados e pausar
  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 a má conduta interna, aumentando o controle de riscos ao mesmo tempo que se melhora a eficiência.
  7. Introduza componentes de terceiros com cautela, garantindo a sua 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 um mecanismo de múltiplas assinaturas descentralizado.
  3. Verifique a situação das transações existentes no contrato
  4. Confirme se o contrato é um contrato de agência, se é atualizável e se tem um bloqueio temporal.
  5. Verifique se o contrato foi auditado por várias instituições e se os direitos do Owner são excessivos.
  6. Preste atenção ao uso de oráculos, priorizando a escolha de oráculos com alta reputação

Ao prestar atenção aos pontos acima, os usuários podem avaliar melhor a segurança de um projeto de Finanças Descentralizadas, permitindo-lhes tomar decisões de investimento mais informadas.

DEFI1.59%
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
  • 4
  • Partilhar
Comentar
0/400
MidnightSellervip
· 6h atrás
Mais uma auditoria, a equipa do projeto consegue ouvir isso?
Ver originalResponder0
UncommonNPCvip
· 07-22 05:57
Ainda há muitas táticas de ataque...
Ver originalResponder0
NeverPresentvip
· 07-22 05:54
Já estão a falar de auditoria de novo, é como se não dissessem nada.
Ver originalResponder0
HackerWhoCaresvip
· 07-22 05:48
O código é ainda mais importante do que a nomenclatura camel case!
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)