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.
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:
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.
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:
Não só precisamos prevenir problemas de reentrada de uma única função;
Seguir o padrão Checks-Effects-Interactions ao codificar;
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
Seguir as melhores práticas de segurança para o desenvolvimento de contratos.
Implementar funcionalidades de contrato que possam ser atualizadas e pausadas.
Adotar um mecanismo de bloqueio de tempo.
Aumentar os investimentos 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, ao mesmo tempo que se melhora a eficiência e se reforça a gestão de riscos.
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
Confirme se o contrato é de código aberto.
Verifique se o Owner utiliza um mecanismo de multi-assinatura descentralizado.
Verifique a situação das transações já existentes no contrato.
Entender se o contrato é um contrato de agência, se é atualizável e se possui um bloqueio de tempo.
Confirme se o contrato foi auditado por várias instituições e se as permissões do Owner são excessivas.
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.
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.
10 Curtidas
Recompensa
10
3
Compartilhar
Comentário
0/400
BearMarketHustler
· 9h atrás
Vulnerabilidades de contratos aparecem todos os dias, mas não nos precavemos.
Ver originalResponder0
ImpermanentLossFan
· 9h atrás
Inexperiente e adora brincar, já morri mil vezes...
Finanças Descentralizadas segurança: Análise completa dos tipos de vulnerabilidades comuns e medidas de prevenção
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.
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:
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:
É 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
Como os usuários podem determinar se um contrato inteligente é seguro
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.