Finanças Descentralizadas Comuns Vulnerabilidades de Segurança e Medidas de Prevenção
Recentemente, um especialista em segurança compartilhou um curso de segurança em Finanças Descentralizadas para os membros da comunidade. O especialista revisitou os principais eventos de segurança que afetaram a indústria Web3 no último ano e meio, explorando as razões por trás desses eventos e como evitá-los, resumindo as vulnerabilidades de segurança comuns em contratos inteligentes e as medidas de prevenção, além de fornecer algumas recomendações de segurança para os desenvolvedores de projetos e usuários comuns.
Os tipos comuns de vulnerabilidades DeFi geralmente incluem empréstimos relâmpago, manipulação de preços, problemas de permissões de função, chamadas externas arbitrárias, problemas com funções 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
Os empréstimos relâmpago são uma inovação nas Finanças Descentralizadas, mas também são frequentemente utilizados por hackers. Os atacantes geralmente tomam emprestado grandes quantias de dinheiro através de um empréstimo relâmpago para manipular preços ou atacar a lógica de negócios. Os desenvolvedores precisam considerar se a funcionalidade do contrato pode causar anomalias devido a grandes quantias de dinheiro, ou se pode ser explorada em uma única transação interagindo com várias funções para obter recompensas indevidas.
Muitos projetos de Finanças Descentralizadas parecem ter um alto rendimento, mas na realidade, o nível das equipes por trás dos projetos varia bastante. Alguns projetos podem ter seu código comprado, e mesmo que o código em si não tenha vulnerabilidades, pode haver problemas lógicos. Por exemplo, certos projetos distribuem recompensas em horários fixos com base na quantidade de tokens detidos pelos holders, mas podem ser explorados por atacantes que utilizam empréstimos relâmpago para adquirir uma grande quantidade de tokens, resultando na maior parte das recompensas indo para os atacantes.
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:
Utilizar dados de terceiros para calcular preços, mas o uso é incorreto ou a verificação está ausente, levando a manipulação maliciosa dos preços.
Usar a quantidade de tokens de 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
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 chamadas múltiplas ainda consigam realizar retiradas com sucesso.
Para diferentes contratos, as formas de ataque de reentrada são diversas e podem envolver várias funções diferentes ou vários contratos. Ao resolver o problema de reentrada, é necessário prestar atenção aos seguintes pontos:
Não só é necessário prevenir problemas de reentrada de uma única função
Seguir o padrão Checks-Effects-Interactions ao codificar
Usar um modificador de proteção contra reentrância testado pelo tempo
É importante notar que reinventar a roda pode ser perigoso. No espaço Web3, já existem muitas melhores práticas de segurança, e adotar diretamente essas soluções maduras é mais seguro do que desenvolver por conta própria.
Sugestõ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 a funcionalidade de atualização e pausa do contrato
Adotar um mecanismo de bloqueio temporal
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 o controle de risco enquanto se melhora a eficiência.
Introduzir componentes de terceiros com cautela, seguindo o princípio de que "nenhum dos dois lados é seguro por padrão".
Como os usuários/LP podem determinar se um contrato inteligente é seguro
Confirme se o contrato é de código aberto
Verifique se o Owner utiliza um mecanismo de multiassinatura descentralizado.
Verificar a situação das transações existentes do 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 avalie se os privilégios do Owner são excessivos.
Preste atenção ao tipo e à fiabilidade do oráculo utilizado no projeto
No ambiente Web3, a consciência de segurança é crucial. Os usuários devem refletir mais e manter-se alerta para evitar potenciais riscos de segurança. Especialmente em momentos de mercado desfavorável, é ainda mais importante estar atento a possíveis fraudes.
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.
18 Curtidas
Recompensa
18
7
Compartilhar
Comentário
0/400
AirdropHunterXM
· 38m atrás
Empréstimos Flash feios e escuros
Ver originalResponder0
SelfRugger
· 07-31 13:56
又来 fazer as pessoas de parvas é? hodl就完了
Ver originalResponder0
FlashLoanKing
· 07-31 11:16
Outra vez Empréstimos Flash yyds
Ver originalResponder0
GovernancePretender
· 07-31 11:14
Fazer proteção de segurança não cura a vida dos idiotas.
Ver originalResponder0
LiquidatorFlash
· 07-31 11:13
A flutuação de 0,3% no preço já exige controle de risco. Não espere pelo aviso de liquidação de 99,99%.
Ver originalResponder0
MEVHunterBearish
· 07-31 11:10
Guia diário para ser enganado
Ver originalResponder0
rug_connoisseur
· 07-31 11:04
Escrevi tanto e ainda é a mesma coisa. Isto não é ferro que foi lixado?
Segurança em DeFi: Guia de Prevenção contra 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 um curso de segurança em Finanças Descentralizadas para os membros da comunidade. O especialista revisitou os principais eventos de segurança que afetaram a indústria Web3 no último ano e meio, explorando as razões por trás desses eventos e como evitá-los, resumindo as vulnerabilidades de segurança comuns em contratos inteligentes e as medidas de prevenção, além de fornecer algumas recomendações de segurança para os desenvolvedores de projetos e usuários comuns.
Os tipos comuns de vulnerabilidades DeFi geralmente incluem empréstimos relâmpago, manipulação de preços, problemas de permissões de função, chamadas externas arbitrárias, problemas com funções 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
Os empréstimos relâmpago são uma inovação nas Finanças Descentralizadas, mas também são frequentemente utilizados por hackers. Os atacantes geralmente tomam emprestado grandes quantias de dinheiro através de um empréstimo relâmpago para manipular preços ou atacar a lógica de negócios. Os desenvolvedores precisam considerar se a funcionalidade do contrato pode causar anomalias devido a grandes quantias de dinheiro, ou se pode ser explorada em uma única transação interagindo com várias funções para obter recompensas indevidas.
Muitos projetos de Finanças Descentralizadas parecem ter um alto rendimento, mas na realidade, o nível das equipes por trás dos projetos varia bastante. Alguns projetos podem ter seu código comprado, e mesmo que o código em si não tenha vulnerabilidades, pode haver problemas lógicos. Por exemplo, certos projetos distribuem recompensas em horários fixos com base na quantidade de tokens detidos pelos holders, mas podem ser explorados por atacantes que utilizam empréstimos relâmpago para adquirir uma grande quantidade de tokens, resultando na maior parte das recompensas indo para os atacantes.
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 chamadas múltiplas ainda consigam realizar retiradas com sucesso.
Para diferentes contratos, as formas de ataque de reentrada são diversas e podem envolver várias funções diferentes ou vários contratos. Ao resolver o problema de reentrada, é necessário prestar atenção aos seguintes pontos:
É importante notar que reinventar a roda pode ser perigoso. No espaço Web3, já existem muitas melhores práticas de segurança, e adotar diretamente essas soluções maduras é mais seguro do que desenvolver por conta própria.
Sugestões de Segurança
Sugestões de segurança da equipe do projeto
Como os usuários/LP podem determinar se um contrato inteligente é seguro
No ambiente Web3, a consciência de segurança é crucial. Os usuários devem refletir mais e manter-se alerta para evitar potenciais riscos de segurança. Especialmente em momentos de mercado desfavorável, é ainda mais importante estar atento a possíveis fraudes.