
Desmistificando Bugs Exploráveis em Smart Contracts

Este projeto tem como objetivo fornecer um recurso valioso para desenvolvedores Web3 e analistas de segurança, facilitando a compreensão de bugs exploráveis em contratos inteligentes. Conduzimos uma análise aprofundada de bugs exploráveis extraídos do code4rena e classificamos cada bug de acordo com sua natureza.
Nossa pesquisa inicial sugere que uma proporção notável de bugs exploráveis em contratos inteligentes são bugs funcionais, que não podem ser detectados usando oráculos simples e gerais, como reentrância. Nosso objetivo é aumentar a conscientização sobre a importância desses bugs e incentivar os profissionais a desenvolverem oráculos semânticos automáticos mais sofisticados e matizados para detectá-los.
Um número significativo de bugs exploráveis em contratos inteligentes se enquadra na categoria de bugs funcionais, que não podem ser detectados usando oráculos simples e gerais.
Por favor, esteja ciente de que este repositório está atualmente em desenvolvimento ativo, e os dados podem mudar ao longo do tempo devido aos concursos contínuos da code4rena.
O conjunto de dados está organizado em quatro pastas:
Classificamos os bugs pesquisados em três categorias principais com base em sua natureza:
Como a classificação de bugs funcionais pode ser ambígua, aceitamos sugestões para melhorar nossos padrões de classificação. Você pode encontrar informações mais detalhadas sobre os rótulos em nossa documentação, e incentivamos você a consultar nossas diretrizes atuais de classificação para obter mais informações.
Nosso objetivo é criar uma lista abrangente de técnicas de detecção de vulnerabilidades que será um recurso valioso para desenvolvedores Web3 e analistas de segurança. Vamos nos concentrar em duas categorias principais:
Aceitamos calorosamente quaisquer sugestões ou contribuições adicionais da comunidade para ajudar a expandir e melhorar a lista.
Acreditamos que os futuros esforços de segurança web3 priorizarão a identificação de bugs funcionais e o desenvolvimento de oráculos correspondentes. Para tanto, pretendemos compilar uma lista de técnicas que ofereçam orientação na criação de oráculos semânticos automáticos. Essas técnicas serão provenientes de diversos materiais, como artigos de pesquisa revisados por pares, pré-impressões, ferramentas da indústria e recursos online.
| Technique | Bug Category |
|---|---|
| Finding Permission Bugs in Smart Contracts with Role Mining | Controle de Acesso |
| AChecker: Statically Detecting Smart Contract Access Control Vulnerabilities | Controle de Acesso |
| Towards Automated Verification of Smart Contract Fairness | Propriedade de Justiça |
| Clockwork Finance: Automated Analysis of Economic Security in Smart Contracts | A definir |
| Confusum Contractum: Confused Deputy Vulnerabilities in Ethereum Smart Contracts | Deputado Confuso |
| Not your Type! Detecting Storage Collision Vulnerabilities in Ethereum Smart Contracts | Colisão de Armazenamento |
Esta seção incluirá técnicas de código aberto que estão publicamente disponíveis e em desenvolvimento ativo. Essas técnicas podem ser usadas diretamente por desenvolvedores Web3 e analistas de segurança ou como blocos de construção para outras ferramentas. Damos prioridade a técnicas no nível do código-fonte, que são mais adequadas aos contextos de desenvolvimento e auditoria Web3.