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 para os membros da comunidade. O especialista revisitou os principais eventos de segurança enfrentados pela indústria Web3 no último 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 ainda deu algumas recomendações de segurança para os 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á se concentrar em empréstimos relâmpago, manipulação de preços e ataques de reentrada.
Empréstimo Instantâneo
O empréstimo relâmpago é uma inovação no DeFi, mas também é frequentemente explorado por hackers. Os atacantes tomam emprestados grandes quantidades de fundos através de empréstimos relâmpago, manipulando preços ou atacando a lógica de negócios. Os desenvolvedores precisam considerar se as funcionalidades do contrato podem causar anomalias devido a grandes quantidades de fundos, ou se podem ser exploradas em uma única transação para interagir com várias funções e obter ganhos indevidos.
Muitos projetos de Finanças Descentralizadas parecem ter altos rendimentos, mas na realidade, o nível das equipes por trás dos projetos varia bastante. Alguns projetos podem ter códigos que foram comprados, e mesmo que o código em si não tenha vulnerabilidades, pode haver problemas lógicos. Por exemplo, alguns projetos distribuem recompensas em momentos fixos com base na quantidade de tokens que os detentores possuem, mas isso pode ser explorado por atacantes que utilizam empréstimos relâmpago para comprar uma grande quantidade de tokens, obtendo assim a maior parte dos rendimentos no momento da distribuição das recompensas.
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 dos preços. Existem dois tipos comuns de problemas:
Utilizar dados de terceiros para calcular preços, mas de forma incorreta ou sem verificação, levando à manipulação maliciosa dos preços.
Usar a quantidade de tokens em certos endereços como variável de cálculo, sendo que o saldo de tokens desses endereços pode ser temporariamente aumentado ou diminuído.
Ataque de Reentrada
Os ataques de reentrada são um dos principais perigos que podem ser enfrentados ao chamar contratos externos. Um atacante pode assumir o controle do fluxo e fazer alterações inesperadas nos dados ao chamar funções. Por exemplo, na função de retirada, se o saldo do usuário for definido como 0 apenas no final da função, o atacante pode chamar essa função repetidamente no meio, retirando o saldo várias vezes.
Para ataques de reentrada, é importante ter em mente os seguintes pontos:
Não apenas prevenir o problema de reentrância de uma única função.
Seguir o padrão Checks-Effects-Interactions ao codificar
Utilizar um modificador de proteção contra reentradas que tenha sido testado ao longo do tempo
Ao resolver problemas de segurança, deve-se sempre utilizar as melhores práticas de segurança que já tenham sido suficientemente validadas, em vez de reinventar a roda.
Sugestões de segurança para o projeto
Seguir as melhores práticas de segurança para o desenvolvimento de contratos
Implementar funcionalidade de atualização e pausa de contratos
Adotar 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 comportamentos maliciosos internos, aumentando a eficiência enquanto se reforça o controle de riscos.
Introduzir componentes de terceiros com cautela, garantindo a segurança.
Como os usuários podem determinar se um contrato inteligente é seguro
Confirmar se o contrato é de código aberto
Verifique se o Owner utiliza um mecanismo de multiassinatura descentralizado.
Verifique a situação das transações existentes do contrato
Verifique se o contrato é um contrato de delegação, se é atualizável e se tem um bloqueio de tempo.
Confirmar se o contrato foi auditado por várias instituições e se os privilégios do Owner são excessivos.
Atenção ao uso de oráculos
Através das medidas acima, tanto os desenvolvedores do projeto quanto os usuários podem aumentar, até certo ponto, a segurança dos projetos de Finanças Descentralizadas e reduzir o risco de ataques.
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.
21 Curtidas
Recompensa
21
8
Compartilhar
Comentário
0/400
SadMoneyMeow
· 07-18 23:00
Ouvir tantas coisas inúteis ao longo dos anos, ainda assim, as pessoas devem ser feitas de parvas.
Ver originalResponder0
DefiPlaybook
· 07-17 00:45
Estatísticas mostram que os empréstimos flash representam 43,7% das perdas em Finanças Descentralizadas.
Ver originalResponder0
LiquiditySurfer
· 07-16 23:58
Proteja a sua carteira, todos
Ver originalResponder0
FundingMartyr
· 07-15 23:30
Só se aprende depois de sofrer uma perda.
Ver originalResponder0
alpha_leaker
· 07-15 23:17
Vendo como algo normal um velho hacker.
Ver originalResponder0
GateUser-00be86fc
· 07-15 23:10
Com tantos bugs, como é que se joga?
Ver originalResponder0
LongTermDreamer
· 07-15 23:03
Mais um dia de alimentar as ovelhas, como nos últimos três anos.
Guia de Segurança em Finanças Descentralizadas: Análise dos Tipos Comuns de Vulnerabilidades e Estratégias de Prevenção
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 para os membros da comunidade. O especialista revisitou os principais eventos de segurança enfrentados pela indústria Web3 no último 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 ainda deu algumas recomendações de segurança para os 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á se concentrar em empréstimos relâmpago, manipulação de preços e ataques de reentrada.
Empréstimo Instantâneo
O empréstimo relâmpago é uma inovação no DeFi, mas também é frequentemente explorado por hackers. Os atacantes tomam emprestados grandes quantidades de fundos através de empréstimos relâmpago, manipulando preços ou atacando a lógica de negócios. Os desenvolvedores precisam considerar se as funcionalidades do contrato podem causar anomalias devido a grandes quantidades de fundos, ou se podem ser exploradas em uma única transação para interagir com várias funções e obter ganhos indevidos.
Muitos projetos de Finanças Descentralizadas parecem ter altos rendimentos, mas na realidade, o nível das equipes por trás dos projetos varia bastante. Alguns projetos podem ter códigos que foram comprados, e mesmo que o código em si não tenha vulnerabilidades, pode haver problemas lógicos. Por exemplo, alguns projetos distribuem recompensas em momentos fixos com base na quantidade de tokens que os detentores possuem, mas isso pode ser explorado por atacantes que utilizam empréstimos relâmpago para comprar uma grande quantidade de tokens, obtendo assim a maior parte dos rendimentos no momento da distribuição das recompensas.
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 dos preços. Existem dois tipos comuns de problemas:
Ataque de Reentrada
Os ataques de reentrada são um dos principais perigos que podem ser enfrentados ao chamar contratos externos. Um atacante pode assumir o controle do fluxo e fazer alterações inesperadas nos dados ao chamar funções. Por exemplo, na função de retirada, se o saldo do usuário for definido como 0 apenas no final da função, o atacante pode chamar essa função repetidamente no meio, retirando o saldo várias vezes.
Para ataques de reentrada, é importante ter em mente os seguintes pontos:
Ao resolver problemas de segurança, deve-se sempre utilizar as melhores práticas de segurança que já tenham sido suficientemente validadas, em vez de reinventar a roda.
Sugestões de segurança para o projeto
Como os usuários podem determinar se um contrato inteligente é seguro
Através das medidas acima, tanto os desenvolvedores do projeto quanto os usuários podem aumentar, até certo ponto, a segurança dos projetos de Finanças Descentralizadas e reduzir o risco de ataques.