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.
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:
Usar dados de terceiros ao calcular preços, mas de forma incorreta ou sem verificação, levando a preços manipulados de forma maliciosa.
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:
Não apenas prevenir o problema de reentrada de uma única função.
Seguir o padrão Checks-Effects-Interactions na codificação
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
Seguir as melhores práticas de segurança para o desenvolvimento de contratos
Implementar a funcionalidade de contratos que podem ser atualizados e pausar
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 o controle de riscos ao mesmo tempo que se melhora a eficiência.
Introduza componentes de terceiros com cautela, garantindo a sua segurança.
Como os usuários podem avaliar a segurança dos contratos inteligentes
Confirme se o contrato é de código aberto
Verifique se o Owner utiliza um mecanismo de múltiplas assinaturas descentralizado.
Verifique a situação das transações existentes no contrato
Confirme se o contrato é um contrato de agência, se é atualizável e se tem um bloqueio temporal.
Verifique se o contrato foi auditado por várias instituições e se os direitos do Owner são excessivos.
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.
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.
10 Curtidas
Recompensa
10
4
Compartilhar
Comentário
0/400
MidnightSeller
· 5h atrás
Mais uma auditoria, a equipa do projeto consegue ouvir isso?
Ver originalResponder0
UncommonNPC
· 07-22 05:57
Ainda há muitas táticas de ataque...
Ver originalResponder0
NeverPresent
· 07-22 05:54
Já estão a falar de auditoria de novo, é como se não dissessem nada.
Ver originalResponder0
HackerWhoCares
· 07-22 05:48
O código é ainda mais importante do que a nomenclatura camel case!
Guia Completo de Segurança em Finanças Descentralizadas: Profundidade na Análise de Vulnerabilidades Comuns e Estratégias de Prevenção
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.
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:
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:
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
Como os usuários podem avaliar a segurança dos contratos inteligentes
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.