Finanças Descentralizadas comuns vulnerabilidades de segurança e medidas de prevenção
Recentemente, um especialista em segurança compartilhou suas percepções sobre a segurança em Finanças Descentralizadas com os membros da comunidade. Ele revisou os principais eventos de segurança que o setor Web3 enfrentou no último ano e mais, explorou as causas desses eventos e como evitá-los, resumiu as vulnerabilidades de segurança comuns dos contratos inteligentes e as medidas preventivas, e deu algumas recomendações de segurança para os projetos e usuários.
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ção, chamadas externas arbitrárias, problemas com a função fallback, vulnerabilidades na lógica de negócios, vazamento de chaves privadas e ataques de reentrada, entre outros. A seguir, serão destacadas três dessas tipos: empréstimos relâmpago, manipulação de preços e ataques de reentrada.
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 podem emprestar grandes quantias de dinheiro através de empréstimos relâmpago, manipulando preços ou atacando a lógica dos negócios. Os desenvolvedores precisam considerar se as funcionalidades do contrato podem sofrer anomalias devido a grandes volumes de dinheiro ou serem exploradas para obter recompensas indevidas.
Nos últimos dois anos, os problemas com empréstimos relâmpago têm sido frequentes. Alguns projetos de Finanças Descentralizadas que parecem ter altos rendimentos podem, na verdade, ter falhas lógicas. Por exemplo, há projetos que distribuem recompensas com base na quantidade de tokens detidos em um tempo fixo, que foram explorados por atacantes que utilizam empréstimos relâmpago para comprar uma grande quantidade de tokens e obter a maior parte das recompensas. Outros projetos, que calculam preços com base em tokens, podem ter seus preços afetados por empréstimos relâmpago.
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:
Usar dados de terceiros ao calcular preços, mas de forma incorreta ou com verificações ausentes, levando a manipulação maliciosa dos preços.
Usar a quantidade de tokens de certos endereços como variáveis de cálculo, enquanto os saldos de tokens desses endereços podem ser temporariamente aumentados ou diminuídos.
Ataque de Reentrada
O principal risco de chamar contratos externos é que eles podem assumir o controle do fluxo e fazer alterações inesperadas nos dados. Por exemplo, na função de retirada, se o saldo do usuário for definido como 0 apenas no final da função, então a retirada ainda será bem-sucedida em chamadas repetidas.
Para resolver o problema da reentrada, é necessário ter atenção a:
Não só previne o problema de reentrada de uma única função
Seguir o padrão de codificação Checks-Effects-Interactions
Usar um modificador de prevenção de reentrância validado
Um caso típico de ataque de reentrada é o incidente do Omni Protocol. Este incidente também revelou a disputa entre hackers: as transações do atacante original foram superadas por outros hackers, resultando na obtenção de lucro por parte do descobridor da vulnerabilidade em vez do atacante que mais lucrou.
Recomendações de segurança
Sugestões de segurança da equipe do projeto
Seguir as melhores práticas de segurança para o desenvolvimento de contratos
Implementar funcionalidade de contrato que seja atualizável e suspensível
Adotar um mecanismo de bloqueio de tempo
Aumentar o investimento em segurança e estabelecer um sistema de segurança completo
Aumentar a consciência de segurança de todos os funcionários
Prevenir a má conduta interna, aumentando a eficiência enquanto se fortalece o controle de riscos.
Introduza serviços de terceiros com cautela, seguindo o princípio de que "por padrão, tanto o upstream como o downstream não são seguros"
Métodos para usuários/LP avaliarem a segurança de contratos inteligentes
Verifique se o contrato é de código aberto
Confirmar se o Owner adotou uma multi-assinatura descentralizada
Verificar a situação atual das transações do contrato
Entender se o contrato é um contrato de agente, se é atualizável e se possui um bloqueio de tempo.
Verifique se o contrato foi auditado por várias instituições e avalie se os direitos do Owner são excessivos.
Atenção à escolha e uso de oráculos.
No ambiente Web3, os usuários devem manter-se alertas, pensar mais e fazer mais perguntas para evitar riscos potenciais. Para qualquer projeto de alto rendimento, deve-se avaliar cuidadosamente a sua segurança antes de participar.
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.
9 Curtidas
Recompensa
9
6
Compartilhar
Comentário
0/400
AllInDaddy
· 11h atrás
又 fazer as pessoas de parvas uma onda啊
Ver originalResponder0
DogeBachelor
· 20h atrás
Empréstimos Flash tem alguma novidade, puxar o tapete após aproveitar a oportunidade.
Análise de vulnerabilidades de segurança DeFi: Guia de prevenção de 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 suas percepções sobre a segurança em Finanças Descentralizadas com os membros da comunidade. Ele revisou os principais eventos de segurança que o setor Web3 enfrentou no último ano e mais, explorou as causas desses eventos e como evitá-los, resumiu as vulnerabilidades de segurança comuns dos contratos inteligentes e as medidas preventivas, e deu algumas recomendações de segurança para os projetos e usuários.
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ção, chamadas externas arbitrárias, problemas com a função fallback, vulnerabilidades na lógica de negócios, vazamento de chaves privadas e ataques de reentrada, entre outros. A seguir, serão destacadas três dessas tipos: empréstimos relâmpago, manipulação de preços e ataques de reentrada.
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 podem emprestar grandes quantias de dinheiro através de empréstimos relâmpago, manipulando preços ou atacando a lógica dos negócios. Os desenvolvedores precisam considerar se as funcionalidades do contrato podem sofrer anomalias devido a grandes volumes de dinheiro ou serem exploradas para obter recompensas indevidas.
Nos últimos dois anos, os problemas com empréstimos relâmpago têm sido frequentes. Alguns projetos de Finanças Descentralizadas que parecem ter altos rendimentos podem, na verdade, ter falhas lógicas. Por exemplo, há projetos que distribuem recompensas com base na quantidade de tokens detidos em um tempo fixo, que foram explorados por atacantes que utilizam empréstimos relâmpago para comprar uma grande quantidade de tokens e obter a maior parte das recompensas. Outros projetos, que calculam preços com base em tokens, podem ter seus preços afetados por empréstimos relâmpago.
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:
Usar dados de terceiros ao calcular preços, mas de forma incorreta ou com verificações ausentes, levando a manipulação maliciosa dos preços.
Usar a quantidade de tokens de certos endereços como variáveis de cálculo, enquanto os saldos de tokens desses endereços podem ser temporariamente aumentados ou diminuídos.
Ataque de Reentrada
O principal risco de chamar contratos externos é que eles podem assumir o controle do fluxo e fazer alterações inesperadas nos dados. Por exemplo, na função de retirada, se o saldo do usuário for definido como 0 apenas no final da função, então a retirada ainda será bem-sucedida em chamadas repetidas.
Para resolver o problema da reentrada, é necessário ter atenção a:
Um caso típico de ataque de reentrada é o incidente do Omni Protocol. Este incidente também revelou a disputa entre hackers: as transações do atacante original foram superadas por outros hackers, resultando na obtenção de lucro por parte do descobridor da vulnerabilidade em vez do atacante que mais lucrou.
Recomendações de segurança
Sugestões de segurança da equipe do projeto
Métodos para usuários/LP avaliarem a segurança de contratos inteligentes
No ambiente Web3, os usuários devem manter-se alertas, pensar mais e fazer mais perguntas para evitar riscos potenciais. Para qualquer projeto de alto rendimento, deve-se avaliar cuidadosamente a sua segurança antes de participar.