Simple Science

Ciência de ponta explicada de forma simples

# Informática# Criptografia e segurança# Engenharia de software

Vulnerabilidades de Verificação de Endereço em Contratos Inteligentes do Ethereum

Um estudo sobre falhas de segurança na verificação de endereços de contratos inteligentes e um método de detecção proposto.

― 7 min ler


Falhas de Segurança emFalhas de Segurança emContratos EthereumExpostasem contratos inteligentes do Ethereum.Nova abordagem revela vulnerabilidades
Índice

No mundo da tecnologia blockchain, o Ethereum se destaca como uma plataforma líder que permite a criação de Contratos Inteligentes. Esses contratos são acordos autoexecutáveis com termos escritos diretamente em código. Um aspecto importante dos contratos inteligentes é a verificação de endereços, que é crucial para sua segurança e funcionalidade. A verificação de endereços garante que apenas endereços legítimos possam interagir com o contrato inteligente, evitando ataques potenciais e o uso indevido de fundos.

Foi observado que falhas na forma como os endereços são verificados podem criar riscos sérios de segurança. Já aconteceram casos na comunidade onde uma verificação fraca de endereços resultou em perdas financeiras significativas. No entanto, essas Vulnerabilidades não foram estudadas completamente, deixando uma lacuna na nossa compreensão. Este artigo tem como objetivo esclarecer essas vulnerabilidades e apresentar um método para detectá-las de forma eficaz.

A Importância da Verificação de Endereços

Quando um contrato inteligente é lançado no Ethereum, ele frequentemente interage com vários endereços, seja para transferir fundos ou chamar funções. Se um desenvolvedor não conseguir verificar corretamente um endereço antes de usá-lo, isso pode levar a resultados inesperados e prejudiciais. Por exemplo, um atacante pode explorar uma falha no processo de verificação para redirecionar fundos do contrato inteligente para sua própria conta. Portanto, garantir que os endereços usados nas transações sejam válidos é essencial para a segurança de qualquer contrato inteligente.

No Ethereum, existem dois tipos de contas: contas de propriedade externa (EOAs) e contratos inteligentes. As EOAs são controladas por uma chave privada, enquanto os contratos inteligentes são regidos por código. As interações entre essas contas acontecem por meio de transações, que carregam dados necessários para executar funções dentro dos contratos inteligentes.

Dado o envolvimento financeiro, identificar e resolver potenciais vulnerabilidades em contratos inteligentes é uma prioridade. Relatórios recentes indicam que houve muitos ataques significativos a contratos conhecidos do Ethereum, resultando em bilhões de dólares perdidos.

Métodos Atuais de Verificação de Endereços

Muitos ferramentas estão em uso atualmente para analisar e verificar a segurança dos contratos inteligentes. A maioria dessas ferramentas se concentra em identificar automaticamente vulnerabilidades usando vários métodos, incluindo Análise Estática e dinâmica.

  1. Análise Estática: Esse método examina o código sem executá-lo. Ferramentas como Mythril e Slither analisam o código do contrato inteligente para encontrar vulnerabilidades potenciais. Elas utilizam execução simbólica, que tenta explorar todos os caminhos de execução possíveis para identificar problemas.

  2. Análise Dinâmica: Diferente da análise estática, esse método testa o contrato em tempo real, executando-o com várias entradas para ver como ele se comporta. Embora isso possa revelar problemas que a análise estática pode perder, geralmente é mais intensivo em recursos e pode ser demorado.

Apesar das várias técnicas em uso, nenhuma das ferramentas existentes consegue identificar efetivamente vulnerabilidades relacionadas especificamente à verificação de endereços. Como resultado, os atacantes podem explorar essa fraqueza, levando a perdas financeiras.

Uma Nova Abordagem para Detectar Vulnerabilidades de Verificação de Endereços

Para lidar com a questão das vulnerabilidades de verificação de endereços, propomos uma nova estrutura. Essa estrutura é baseada em um método leve de análise de contaminação que opera por meio de simulação estática do bytecode do Ethereum. Essa abordagem nos permite identificar vulnerabilidades sem precisar executar o código, tornando tudo mais eficiente.

Nossa estrutura emprega uma estratégia de detecção em três fases para melhorar a precisão e reduzir falsos positivos. A primeira fase examina a forma como os endereços são validados. A segunda fase verifica se o endereço pode ser usado em chamadas externas. A terceira fase avalia se alguma mudança de estado na cadeia pode ocorrer como resultado dessas chamadas.

Usando essa abordagem estruturada, podemos analisar contratos inteligentes de forma mais eficaz e descobrir vulnerabilidades que poderiam passar despercebidas.

Resultados das Avaliações de Contratos

Para testar a eficácia do nosso método, aplicamos a uma quantidade significativa de contratos Ethereum, totalizando mais de cinco milhões. Essa avaliação em grande escala nos permitiu identificar vários contratos com vulnerabilidades previamente não divulgadas. Nossos achados revelaram que havia 812 contratos vulneráveis dentro do conjunto analisado, com um valor total bloqueado superior a 11,2 bilhões de dólares.

Além disso, quando comparamos nosso método com ferramentas existentes, notamos melhorias em eficiência e precisão. Nossa abordagem reduz significativamente o tempo necessário para analisar contratos, mantendo altas taxas de precisão e recuperação. Como resultado, superou ferramentas tradicionais que enfrentaram dificuldades com tarefas semelhantes.

Capacidades de Detecção em Tempo Real

Uma das principais vantagens da nossa estrutura é sua capacidade de funcionar como um detector em tempo real. Isso significa que ela pode avaliar contratos assim que são lançados e fornecer feedback imediato aos desenvolvedores. Fazendo isso, conseguimos ajudar a detectar vulnerabilidades antes que possam ser exploradas.

Por exemplo, durante um teste prático, nossa estrutura emitiu um alerta sobre um contrato vulnerável 1,5 horas antes de um ataque real ocorrer. Isso demonstra que alertas em tempo hábil podem permitir que os desenvolvedores tomem ações preventivas, potencialmente salvando perdas financeiras significativas.

Mecanismos de Verificação de Endereços

A verificação de endereços pode ser feita por vários métodos, e muitos contratos utilizam essas técnicas. Os métodos mais comuns incluem:

  1. Comparações Hard-coded: Neste método, o contrato compara diretamente o endereço passado com um endereço válido conhecido. Se não coincidem, um erro ocorre.

  2. Validação de Mapeamento: Essa abordagem usa uma estrutura de mapeamento para manter uma lista de endereços aprovados. Uma função verifica o endereço fornecido em relação a esse mapeamento para verificar sua validade.

  3. Listas de Endereços Enumerados: Nesse caso, endereços válidos são armazenados em um array. O contrato verifica se o endereço passado existe dentro desse array.

Embora esses métodos ajudem a melhorar a segurança, eles não são infalíveis. Atacantes habilidosos frequentemente conseguem encontrar formas de contornar essas verificações, especialmente se algum dos métodos for implementado de forma inadequada.

Desafios na Verificação de Endereços

Identificar e resolver vulnerabilidades de verificação de endereços apresenta vários desafios:

  1. Falta de Informação Semântica: O bytecode do contrato inteligente é muitas vezes difícil de interpretar. Essa falta de clareza pode dificultar a determinação se um endereço está sendo verificado corretamente.

  2. Complexidade das Interações: Contratos inteligentes frequentemente chamam outros contratos, levando a dependências complicadas. Rastrear essas interações com sucesso requer técnicas de análise avançadas.

  3. Manipulação de Dados Dinâmicos: Contratos frequentemente usam alocações de memória dinâmicas, complicando ainda mais a análise e dificultando o rastreamento da propagação de endereços.

Devido a esses desafios, as ferramentas tradicionais têm dificuldades em identificar falhas específicas de verificação de endereços.

Conclusão

A segurança dos contratos inteligentes é de extrema importância, pois eles gerenciam ativos financeiros significativos. A verificação de endereços é um componente crítico dessa segurança, mas vulnerabilidades nessa área podem levar a consequências severas. Nossa estrutura proposta oferece uma solução promissora para detectar e abordar essas vulnerabilidades de forma mais eficaz do que as ferramentas existentes.

Ao empregar uma abordagem simples e eficiente baseada em análise de contaminação, podemos melhorar significativamente a segurança dos contratos inteligentes no Ethereum. Este trabalho destaca a necessidade de pesquisa contínua nessa área e a importância de manter práticas de segurança robustas à medida que o ecossistema blockchain continua a evoluir.

Fonte original

Título: All Your Tokens are Belong to Us: Demystifying Address Verification Vulnerabilities in Solidity Smart Contracts

Resumo: In Ethereum, the practice of verifying the validity of the passed addresses is a common practice, which is a crucial step to ensure the secure execution of smart contracts. Vulnerabilities in the process of address verification can lead to great security issues, and anecdotal evidence has been reported by our community. However, this type of vulnerability has not been well studied. To fill the void, in this paper, we aim to characterize and detect this kind of emerging vulnerability. We design and implement AVVERIFIER, a lightweight taint analyzer based on static EVM opcode simulation. Its three-phase detector can progressively rule out false positives and false negatives based on the intrinsic characteristics. Upon a well-established and unbiased benchmark, AVVERIFIER can improve efficiency 2 to 5 times than the SOTA while maintaining a 94.3% precision and 100% recall. After a large-scale evaluation of over 5 million Ethereum smart contracts, we have identified 812 vulnerable smart contracts that were undisclosed by our community before this work, and 348 open source smart contracts were further verified, whose largest total value locked is over $11.2 billion. We further deploy AVVERIFIER as a real-time detector on Ethereum and Binance Smart Chain, and the results suggest that AVVERIFIER can raise timely warnings once contracts are deployed.

Autores: Tianle Sun, Ningyu He, Jiang Xiao, Yinliang Yue, Xiapu Luo, Haoyu Wang

Última atualização: 2024-05-30 00:00:00

Idioma: English

Fonte URL: https://arxiv.org/abs/2405.20561

Fonte PDF: https://arxiv.org/pdf/2405.20561

Licença: https://creativecommons.org/licenses/by/4.0/

Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.

Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.

Mais de autores

Artigos semelhantes