Análise de vulnerabilidades de segurança em Finanças Descentralizadas. Medidas de prevenção contra ataques de reentrada e manipulação de preços de Empréstimos Flash.
Finanças Descentralizadas segurança: vulnerabilidades comuns e medidas de prevenção
Recentemente, um especialista em segurança compartilhou um curso de segurança DeFi com os membros da comunidade, revisando os principais eventos de segurança que o setor Web3 enfrentou no último ano, discutindo 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, e oferecendo algumas recomendações de segurança tanto para as equipes de projeto quanto para os usuários comuns.
Os tipos comuns de vulnerabilidades em Finanças Descentralizadas geralmente incluem empréstimos relâmpago, manipulação de preços, problemas de permissão de função, chamadas externas arbitrárias, problemas com funções de fallback, vulnerabilidades de lógica de negócios, vazamento de chaves privadas e reentrância, entre outros. Abaixo, vamos focar em empréstimos relâmpago, manipulação de preços e ataques de reentrância.
Empréstimo Instantâneo
O empréstimo relâmpago é uma inovação das Finanças Descentralizadas, mas quando explorado por hackers, eles podem emprestar grandes quantias de dinheiro sem custos, realizar arbitragem e devolver, pagando apenas uma pequena taxa de Gas para obter enormes lucros.
Nos últimos dois anos, os empréstimos relâmpago levantaram muitos problemas de segurança. Alguns projetos de Finanças Descentralizadas parecem ter altos rendimentos, mas a qualidade das equipes por trás dos projetos varia bastante. Mesmo que o código em si não tenha vulnerabilidades, pode haver problemas lógicos. Por exemplo, alguns projetos distribuem recompensas em horários fixos com base na quantidade de tokens detidos, mas atacantes podem usar empréstimos relâmpago para comprar uma grande quantidade de tokens e assim obter a maior parte das recompensas quando estas são distribuídas. Há também projetos que calculam preços através de Tokens e que podem ser influenciados por empréstimos relâmpago. As equipes de projeto devem estar atentas a esses problemas.
Manipulação de Preços
O problema de manipulação de preços está intimamente relacionado com os empréstimos relâmpago, principalmente devido ao fato de que certos parâmetros podem ser controlados pelos usuários durante o cálculo de preços. Existem dois tipos comuns de problemas:
Ao calcular preços, utiliza-se dados de terceiros, mas a forma de utilização incorrecta ou a falta de verificação leva a que os preços sejam manipulados maliciosamente.
Usar o saldo de Token de determinados endereços como variável de cálculo, sendo que a quantidade de Token nesses endereços pode ser temporariamente aumentada ou diminuída.
Ataque de Reentrada
Um dos principais riscos de chamar contratos externos é que eles podem assumir o controle do fluxo, fazendo alterações inesperadas nos dados.
Para diferentes contratos, as formas de ataque de reentrada são variadas e podem envolver várias funções ou contratos. Para resolver o problema de reentrada, é necessário ter atenção a:
Não apenas prevenir o problema de reentrada de uma única função.
Seguir o padrão de codificação Checks-Effects-Interactions
Usar um modifier de proteção contra reentrâncias validado
É melhor usar práticas de segurança maduras, em vez de reinventar a roda. Novas soluções desenvolvidas internamente carecem de validação adequada, e a probabilidade de problemas é muito maior do que ao usar soluções maduras e testadas.
Sugestões de segurança
Sugestões de segurança da equipe do projeto
O desenvolvimento de contratos segue as melhores práticas de segurança.
Contratos podem ser atualizados e suspensos: ajuda a detectar e reduzir perdas por ataques de forma oportuna.
Adotar um bloqueio de tempo: fornecer uma janela de tempo para monitoramento e resposta.
Aumentar o investimento em segurança, estabelecer um sistema de segurança completo: a segurança é um trabalho sistemático, não pode depender apenas da auditoria de contratos.
Aumentar a consciência de segurança de todos os funcionários: pensar mais e prestar mais atenção pode evitar muitos riscos.
Prevenir a má conduta interna, enquanto se melhora a eficiência e se reforça o controlo de riscos: por exemplo, utilizando múltiplas assinaturas, limitando permissões, etc.
Introduzir terceiros com cautela: validar upstream e downstream, não referenciar contratos não abertos.
Método do usuário para avaliar a segurança do contrato
Confirmar se o contrato é de código aberto
Verifique se o Owner utiliza múltiplas assinaturas descentralizadas.
Verificar a situação das transações existentes do contrato
Entender se o contrato é atualizável e se possui um bloqueio de tempo
Preste atenção se o contrato foi auditado por várias instituições e se os direitos do proprietário são excessivos.
Atenção à confiabilidade do oráculo
Em suma, os participantes no campo das Finanças Descentralizadas devem aumentar a conscientização sobre segurança, as equipes de projeto devem aprimorar o sistema de segurança, e os usuários devem avaliar cuidadosamente a segurança dos projetos. Apenas com o esforço conjunto de todas as partes é que será possível construir um ecossistema DeFi mais seguro.
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.
13 gostos
Recompensa
13
7
Partilhar
Comentar
0/400
RektButSmiling
· 07-10 13:36
Enrolar um projeto e cair dez rugas.
Ver originalResponder0
MagicBean
· 07-08 21:32
Ainda preocupado com como lidar com as vulnerabilidades?
Ver originalResponder0
0xDreamChaser
· 07-08 02:24
A segurança ainda depende da fiabilidade da equipa do projeto.
Ver originalResponder0
StakeWhisperer
· 07-08 02:23
ainda é a auditoria de contrato inteligente, a vida em primeiro lugar
Ver originalResponder0
Web3ExplorerLin
· 07-08 02:12
hipótese: como o labirinto antigo, a arquitetura do defi exige tanto sabedoria quanto cautela...
Ver originalResponder0
DataPickledFish
· 07-08 02:03
Este bug, uma vez corrigido, vai esvaziar a equipa do projeto.
Ver originalResponder0
LiquidationAlert
· 07-08 02:01
Já estão a falar desta armadilha, também não podemos ficar sempre a esquivar-nos.
Análise de vulnerabilidades de segurança em Finanças Descentralizadas. Medidas de prevenção contra ataques de reentrada e manipulação de preços de Empréstimos Flash.
Finanças Descentralizadas segurança: vulnerabilidades comuns e medidas de prevenção
Recentemente, um especialista em segurança compartilhou um curso de segurança DeFi com os membros da comunidade, revisando os principais eventos de segurança que o setor Web3 enfrentou no último ano, discutindo 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, e oferecendo algumas recomendações de segurança tanto para as equipes de projeto quanto para os usuários comuns.
Os tipos comuns de vulnerabilidades em Finanças Descentralizadas geralmente incluem empréstimos relâmpago, manipulação de preços, problemas de permissão de função, chamadas externas arbitrárias, problemas com funções de fallback, vulnerabilidades de lógica de negócios, vazamento de chaves privadas e reentrância, entre outros. Abaixo, vamos focar em empréstimos relâmpago, manipulação de preços e ataques de reentrância.
Empréstimo Instantâneo
O empréstimo relâmpago é uma inovação das Finanças Descentralizadas, mas quando explorado por hackers, eles podem emprestar grandes quantias de dinheiro sem custos, realizar arbitragem e devolver, pagando apenas uma pequena taxa de Gas para obter enormes lucros.
Nos últimos dois anos, os empréstimos relâmpago levantaram muitos problemas de segurança. Alguns projetos de Finanças Descentralizadas parecem ter altos rendimentos, mas a qualidade das equipes por trás dos projetos varia bastante. Mesmo que o código em si não tenha vulnerabilidades, pode haver problemas lógicos. Por exemplo, alguns projetos distribuem recompensas em horários fixos com base na quantidade de tokens detidos, mas atacantes podem usar empréstimos relâmpago para comprar uma grande quantidade de tokens e assim obter a maior parte das recompensas quando estas são distribuídas. Há também projetos que calculam preços através de Tokens e que podem ser influenciados por empréstimos relâmpago. As equipes de projeto devem estar atentas a esses problemas.
Manipulação de Preços
O problema de manipulação de preços está intimamente relacionado com os empréstimos relâmpago, principalmente devido ao fato de que certos parâmetros podem ser controlados pelos usuários durante o cálculo de preços. Existem dois tipos comuns de problemas:
Ao calcular preços, utiliza-se dados de terceiros, mas a forma de utilização incorrecta ou a falta de verificação leva a que os preços sejam manipulados maliciosamente.
Usar o saldo de Token de determinados endereços como variável de cálculo, sendo que a quantidade de Token nesses endereços pode ser temporariamente aumentada ou diminuída.
Ataque de Reentrada
Um dos principais riscos de chamar contratos externos é que eles podem assumir o controle do fluxo, fazendo alterações inesperadas nos dados.
Para diferentes contratos, as formas de ataque de reentrada são variadas e podem envolver várias funções ou contratos. Para resolver o problema de reentrada, é necessário ter atenção a:
Não apenas prevenir o problema de reentrada de uma única função.
Seguir o padrão de codificação Checks-Effects-Interactions
Usar um modifier de proteção contra reentrâncias validado
É melhor usar práticas de segurança maduras, em vez de reinventar a roda. Novas soluções desenvolvidas internamente carecem de validação adequada, e a probabilidade de problemas é muito maior do que ao usar soluções maduras e testadas.
Sugestões de segurança
Sugestões de segurança da equipe do projeto
O desenvolvimento de contratos segue as melhores práticas de segurança.
Contratos podem ser atualizados e suspensos: ajuda a detectar e reduzir perdas por ataques de forma oportuna.
Adotar um bloqueio de tempo: fornecer uma janela de tempo para monitoramento e resposta.
Aumentar o investimento em segurança, estabelecer um sistema de segurança completo: a segurança é um trabalho sistemático, não pode depender apenas da auditoria de contratos.
Aumentar a consciência de segurança de todos os funcionários: pensar mais e prestar mais atenção pode evitar muitos riscos.
Prevenir a má conduta interna, enquanto se melhora a eficiência e se reforça o controlo de riscos: por exemplo, utilizando múltiplas assinaturas, limitando permissões, etc.
Introduzir terceiros com cautela: validar upstream e downstream, não referenciar contratos não abertos.
Método do usuário para avaliar a segurança do contrato
Confirmar se o contrato é de código aberto
Verifique se o Owner utiliza múltiplas assinaturas descentralizadas.
Verificar a situação das transações existentes do contrato
Entender se o contrato é atualizável e se possui um bloqueio de tempo
Preste atenção se o contrato foi auditado por várias instituições e se os direitos do proprietário são excessivos.
Atenção à confiabilidade do oráculo
Em suma, os participantes no campo das Finanças Descentralizadas devem aumentar a conscientização sobre segurança, as equipes de projeto devem aprimorar o sistema de segurança, e os usuários devem avaliar cuidadosamente a segurança dos projetos. Apenas com o esforço conjunto de todas as partes é que será possível construir um ecossistema DeFi mais seguro.