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, explorando os recentes eventos de segurança significativos enfrentados pela indústria Web3, analisando as causas desses eventos e como evitá-los, além de resumir as vulnerabilidades de segurança comuns em contratos inteligentes e as medidas preventivas. Este artigo se concentrará em três tipos comuns de vulnerabilidades: 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 frequentemente é utilizado por hackers para realizar ataques:
O atacante empresta uma grande quantidade de fundos através de empréstimos relâmpago, manipulando preços ou atacando a lógica de negócios.
Os desenvolvedores devem considerar se a funcionalidade do contrato será anormal devido a grandes quantias de dinheiro, ou se será usada para obter recompensas excessivas em uma única transação.
Perguntas Frequentes: calcular recompensas com a quantidade de Token ou participar do cálculo com a quantidade de Token no par de negociação DEX
Nos últimos dois anos, surgiram muitos problemas. Alguns projetos de Finanças Descentralizadas parecem ter altos rendimentos, mas na verdade o nível de desenvolvimento é desigual. Por exemplo, há projetos que distribuem recompensas em momentos fixos com base nas participações, sendo explorados por atacantes que utilizam empréstimos relâmpago para comprar grandes quantidades de tokens e obter a maior parte das recompensas.
Manipulação de Preços
A manipulação de preços está intimamente relacionada com os empréstimos relâmpago, havendo principalmente dois problemas:
Utilizar dados de terceiros ao calcular preços, mas usar de forma inadequada ou faltar verificação.
Usar o saldo de Token de certos endereços como variável de cálculo, e esses saldos podem ser temporariamente aumentados ou diminuídos.
Ataque de Reentrada
O principal risco de chamar contratos externos é a possibilidade de assumir o controle do fluxo, resultando em modificações inesperadas nos dados.
Um exemplo típico de ataque de reentrada:
solidity
mapping (address => uint) private userBalances;
function withdrawBalance() public {
uint amountToWithdraw = userBalances[msg.sender];
(bool success, ) = msg.sender.call.value(amountToWithdraw)("");
require(success);
userBalances[msg.sender] = 0;
}
Devido ao saldo do utilizador ser zerado apenas no final da função, as chamadas repetidas podem retirar várias vezes.
Para resolver o problema de reentrância, é necessário ter em atenção:
Não apenas防单一函数重入
Seguir o padrão Checks-Effects-Interactions
Usar um modifier de proteção contra reentrâncias verificado
Sugere-se usar práticas de segurança estabelecidas, evitando reinventar a roda.
Sugestões de segurança para a equipe do projeto
Seguir as melhores práticas de segurança para desenvolver contratos
Implementar a funcionalidade de atualização e suspensão de contratos
Adotar um bloqueio de tempo
Estabelecer um sistema de segurança completo
Aumentar a consciência de segurança de todos os colaboradores
Prevenir atos maliciosos internos, aumentar a eficiência ao mesmo tempo que se reforça o controlo de risco
Introduza terceiros com cautela, assumindo que não são seguros e faça a validação adequadamente.
Como os usuários podem avaliar a segurança dos contratos inteligentes
O contrato é open source?
O proprietário adotou multi-assinatura descentralizada?
Verifique a situação das transações existentes no contrato
O contrato é atualizável? Existe um bloqueio de tempo?
Aceita auditoria de várias instituições? O acesso do proprietário é excessivo?
Preste atenção à fiabilidade do oráculo
Em suma, a segurança é crucial no campo das Finanças Descentralizadas. As equipas de projeto devem construir um sistema de segurança abrangente, e os usuários também devem estar atentos e participar com cautela.
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.
17 Curtidas
Recompensa
17
8
Compartilhar
Comentário
0/400
DeFiVeteran
· 22h atrás
Carteira já não está, não é surpresa.
Ver originalResponder0
DisillusiionOracle
· 07-23 19:20
Ok, o defi continua a causar. Os hackers estão a rapar a lã dos touros todos os dias.
Ver originalResponder0
GateUser-bd883c58
· 07-21 12:00
Ainda é melhor deixar uma porta dos fundos!
Ver originalResponder0
LayoffMiner
· 07-21 02:24
Ha continua a mesma coisa, lavagem de mineração com estilo.
Ver originalResponder0
LiquidationWatcher
· 07-21 02:19
Com tantas vulnerabilidades, para que ainda se joga DeFi?
As três principais ameaças à segurança do DeFi: 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 uma aula sobre segurança em Finanças Descentralizadas, explorando os recentes eventos de segurança significativos enfrentados pela indústria Web3, analisando as causas desses eventos e como evitá-los, além de resumir as vulnerabilidades de segurança comuns em contratos inteligentes e as medidas preventivas. Este artigo se concentrará em três tipos comuns de vulnerabilidades: 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 frequentemente é utilizado por hackers para realizar ataques:
Nos últimos dois anos, surgiram muitos problemas. Alguns projetos de Finanças Descentralizadas parecem ter altos rendimentos, mas na verdade o nível de desenvolvimento é desigual. Por exemplo, há projetos que distribuem recompensas em momentos fixos com base nas participações, sendo explorados por atacantes que utilizam empréstimos relâmpago para comprar grandes quantidades de tokens e obter a maior parte das recompensas.
Manipulação de Preços
A manipulação de preços está intimamente relacionada com os empréstimos relâmpago, havendo principalmente dois problemas:
Ataque de Reentrada
O principal risco de chamar contratos externos é a possibilidade de assumir o controle do fluxo, resultando em modificações inesperadas nos dados.
Um exemplo típico de ataque de reentrada: solidity mapping (address => uint) private userBalances;
function withdrawBalance() public { uint amountToWithdraw = userBalances[msg.sender]; (bool success, ) = msg.sender.call.value(amountToWithdraw)(""); require(success); userBalances[msg.sender] = 0; }
Devido ao saldo do utilizador ser zerado apenas no final da função, as chamadas repetidas podem retirar várias vezes.
Para resolver o problema de reentrância, é necessário ter em atenção:
Sugere-se usar práticas de segurança estabelecidas, evitando reinventar a roda.
Sugestões de segurança para a equipe do projeto
Como os usuários podem avaliar a segurança dos contratos inteligentes
Em suma, a segurança é crucial no campo das Finanças Descentralizadas. As equipas de projeto devem construir um sistema de segurança abrangente, e os usuários também devem estar atentos e participar com cautela.