
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.
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.
| Technique | Language | Description | Security-related Keywords |
|---|---|---|---|
| Move Prover | Move | Especificação e Verificação Formal | Verificação Formal |
Recebemos todos os tipos de contribuições para o nosso projeto, incluindo, mas não se limitando a:
results/contests.csvMais detalhes podem ser encontrados nas nossas diretrizes de contribuição.
Se você estiver usando nosso conjunto de dados para uma publicação acadêmica, agradeceríamos muito uma citação para o seguinte trabalho:``` @inproceedings{DBLP:conf/icse/ZhangZXL23, author = {Zhuo Zhang and Brian Zhang and Wen Xu and Zhiqiang Lin}, title = {Demystifying Exploitable Bugs in Smart Contracts}, booktitle = {{ICSE}}, pages = {615--627}, publisher = {{IEEE}}, year = {2023} }
## Esclarecimento
Consulte nossa [documentação](https://github.com/zhangzhuosjtu/web3bugs/blob/HEAD/docs/classification.md) de classificação.
## Agradecimentos
Gostaríamos de expressar nossos sinceros agradecimentos à [code4rena](https://code4rena.com/) por disponibilizar publicamente estas informações valiosas.
<details>
<summary>Nossa gratidão também se estende aos seguintes contribuidores por suas valiosas contribuições.</summary></br>
+ [__ItsNio__](https://github.com/niothefirst)
+ [__Wen Xu__](https://github.com/tarafans)
+ [__Patrick Collins__](https://github.com/PatrickAlphaC)
+ [__Meng Xu__](https://twitter.com/meng_xu_cs)
+ [__y3s0n__](https://github.com/CharesFang)
+ [__William Aaron Cheung__](https://github.com/Troublor)
+ [__soaphorn__](https://github.com/soaphorn)
+ [__Fabio Gritti__](https://github.com/degrigis)
+ [__Yannick__](https://twitter.com/MillusPontius)
</details>
| Technique | Bug Category |
|---|
| Technique | Developer(s) | Description | Security-related Keywords |
|---|
| Slither | Trail of Bits | Estrutura de Análise Estática | Detectores de Vulnerabilidades, SlithIR |
| Aderyn | Cyfrin | Estrutura de Análise Estática | Analisador Estático, Detectores Personalizados, Relatórios em Markdown |
| Foundry | Paradigm | Kit de Ferramentas de Desenvolvimento | Fuzzing, Fuzzing Stateful (Teste de Invariantes), Teste Diferencial |
| Echidna | Trail of Bits | Fuzzer | Fuzzing , Fuzzing Stateful (Teste de Invariantes), CI/CD |
| Optik | Trail of Bits | Fuzzer Híbrido (Execução Simbólica + Fuzzing) | Fuzzing, Fuzzing Stateful, Execução Simbólica |
| Woke | Ackee Blockchain | Kit de Ferramentas de Desenvolvimento | Testes Cross-chain, Teste de Invariantes, Detectores de Vulnerabilidades, IR |
| 4naly3er | Picodes | Scanner Estático | Teste de Pré-conteúdo da Code4rena |
| Manticore | Trail of Bits | Ferramenta de Execução Simbólica | Execução Simbólica, Teste de Propriedades |
| Halmos | a16z | Verificador de Modelo Limitado Simbólico | Execução Simbólica, Verificador de Limites |
| Solidity SMTChecker | Ethereum Foundation | Verificação Formal por Execução Simbólica | Solidity, Verificação Formal, Execução Simbólica |
| Mythril | Consensys | Ferramenta de Execução Simbólica | Execução Simbólica, Análise On-Chain, Detectores de Vulnerabilidades, Análise de Taint |
| Pyrometer [WIP] | Nascent | Ferramenta de Execução Simbólica | Execução Simbólica, Interpretação Abstrata |
| greed | UCSB Seclab | Estrutura de Análise Estática/Simbólica | Execução Simbólica, Verificador de Limites, Análises Estáticas, Teste de Propriedades |
| ethpwn | ethpwn | Análise Dinâmica/Depuração | Simulações EVM, Depuração EVM |
| Resource | Keywords |
|---|
| Academic Smart Contract Papers | Lista de Artigos Acadêmicos |
| DeFi Hacks Reproduce - Foundry | Reprodução de Ataques |
| Smart Contract Security Verification Standard | Lista de Verificação de Segurança |
| Awesome MythX Smart Contract Security Tools | Serviço de Análise de Segurança |
| Common Security Properties of Smart Contracts | Suíte de Conformidade de Segurança |
| Immunefi PoC Templates | Modelos de PoC |
| Awesome MEV Resources | Recursos de MEV |
| Front-Running Attack Benchmark Construction and Vulnerability Detection Technique Evaluation | Conjunto de Dados de Front-Running |
| Ultimate DeFi & Blockchain Research Base | Segurança Blockchain Tudo-em-Um |
| Common Fork Bugs | Conjunto de Dados de Exploits |