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

robot
Geração do resumo em andamento

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

Recentemente, um especialista em segurança compartilhou uma aula sobre segurança em Finanças Descentralizadas com os membros da comunidade. Ele revisitou os principais eventos de segurança que a indústria Web3 enfrentou nos últimos mais de um ano, discutiu 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 projetos e usuários comuns.

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

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

Empréstimo Relâmpago

O empréstimo relâmpago é uma inovação nas Finanças Descentralizadas, mas quando explorado por hackers pode causar grandes prejuízos:

  • O atacante emprestou uma grande quantidade de fundos através de um empréstimo relâmpago, manipulando o preço e atacando a lógica de negócios, entre outros.
  • Os desenvolvedores devem considerar se as funções do contrato podem causar anomalias devido a grandes quantias de dinheiro ou serem exploradas para obter lucros indevidos.
  • Alguns projetos não consideraram o impacto dos empréstimos relâmpago ao projetar funcionalidades, resultando em roubo de fundos.

Nos últimos dois anos, surgiram muitos problemas relacionados a empréstimos relâmpago. Alguns projetos parecem ter altos rendimentos, mas na verdade apresentam falhas lógicas, como:

  • Atribuição de recompensas com base na quantidade de posições em tempos fixos, sendo manipulada por empréstimos relâmpago para obter grandes recompensas.
  • Projetos que calculam preços através de Token podem ter seus preços afetados por empréstimos relâmpago.

As partes do projeto devem estar atentas a essas questões.

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. Usar dados de terceiros ao calcular preços, mas de forma incorreta ou com verificação ausente.
  2. Usar a quantidade de tokens de certos endereços como variável de cálculo, e essas quantidades podem ser manipuladas temporariamente.

Ataque de Reentrada

A chamada a contratos externos pode levar à tomada de controle do fluxo, resultando em alterações inesperadas nos dados. Um exemplo típico de um ataque de reentrada:

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

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 do utilizador só é definido como 0 no final da função, chamadas repetidas podem retirar o saldo várias vezes.

Para resolver o problema de reentrada, é necessário ter atenção a:

  1. Não apenas prevenir a reentrada de uma única função
  2. Seguir o padrão Checks-Effects-Interactions
  3. Usar um modificador de prevenção de reentrada verificado

Recomenda-se utilizar as melhores práticas de segurança consolidadas, evitando reinventar a roda.

Sugestões de segurança

para sugestões ao projeto:

  1. Seguir as melhores práticas de segurança para o desenvolvimento de contratos
  2. Implementar a funcionalidade de atualização e pausa de contratos.
  3. Adotar bloqueio de tempo
  4. Aumentar o investimento em segurança e estabelecer um sistema de segurança abrangente
  5. Aumentar a conscientização de segurança de todos os funcionários
  6. Prevenir a má conduta interna, aumentando o controle de riscos enquanto se melhora a eficiência.
  7. Introduza terceiros com cautela, assumindo que tanto upstream quanto downstream não são seguros.

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

  1. Verifique se o contrato é de código aberto
  2. Verifique se o Owner utiliza uma multiassinatura descentralizada
  3. Verificar a situação das transações existentes do contrato
  4. Verifique se o contrato é atualizável, se há um bloqueio temporal.
  5. Verifique se aceita auditorias de várias instituições, se os direitos do proprietário são excessivos.
  6. Atenção à confiabilidade do oráculo

Em resumo, no campo das Finanças Descentralizadas, tanto os desenvolvedores de projetos quanto os usuários comuns precisam aumentar a conscientização sobre segurança, adotar as medidas de segurança necessárias para reduzir riscos e proteger a segurança dos ativos.

DEFI1.7%
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
  • 7
  • Repostar
  • Compartilhar
Comentário
0/400
TooScaredToSellvip
· 5h atrás
Não fale tanto de regras, entrar diretamente no mercado de moedas é o que realmente importa.
Ver originalResponder0
MysteryBoxBustervip
· 7h atrás
Já está a tentar fingir que entende Empréstimos Flash...
Ver originalResponder0
GhostWalletSleuthvip
· 08-09 18:44
Puxar o tapete é a verdadeira tecnologia de ponta.
Ver originalResponder0
CodeAuditQueenvip
· 08-09 18:43
Isto não passa de uma vulnerabilidade de injeção da era web1 com uma nova aparência.
Ver originalResponder0
MoonlightGamervip
· 08-09 18:39
Quem disse que o DeFi não tem novos jogos? Aqui está ele!
Ver originalResponder0
HashBanditvip
· 08-09 18:36
bruh perdeu 50 eth para uma exploração de flashloan em 2021... ainda me dá pesadelos, para ser sincero
Ver originalResponder0
OneBlockAtATimevip
· 08-09 18:16
Novamente fui enganado por idiotas.
Ver originalResponder0
  • Marcar
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)