How Effective are Smart Contract Analysis Tools? Evaluating Smart Contract Static Analysis Tools Using Bug Injection
arXiv:2005.11613 · doi:10.1145/3395363.3397385
Abstract
Security attacks targeting smart contracts have been on the rise, which have led to financial loss and erosion of trust. Therefore, it is important to enable developers to discover security vulnerabilities in smart contracts before deployment. A number of static analysis tools have been developed for finding security bugs in smart contracts. However, despite the numerous bug-finding tools, there is no systematic approach to evaluate the proposed tools and gauge their effectiveness. This paper proposes SolidiFI, an automated and systematic approach for evaluating smart contract static analysis tools. SolidiFI is based on injecting bugs (i.e., code defects) into all potential locations in a smart contract to introduce targeted security vulnerabilities. SolidiFI then checks the generated buggy contract using the static analysis tools, and identifies the bugs that the tools are unable to detect (false-negatives) along with identifying the bugs reported as false-positives. SolidiFI is used to evaluate six widely-used static analysis tools, namely, Oyente, Securify, Mythril, SmartCheck, Manticore and Slither, using a set of 50 contracts injected by 9369 distinct bugs. It finds several instances of bugs that are not detected by the evaluated tools despite their claims of being able to detect such bugs, and all the tools report many false positives
ISSTA 2020
References in corpus (3)
Cited by in corpus (13)
- xFuzz: Machine Learning Guided Cross-Contract Fuzzing
- Static Application Security Testing (SAST) Tools for Smart Contracts: How Far Are We?
- Combatting Front-Running in Smart Contracts: Attack Mining, Benchmark Construction and Vulnerability Detector Evaluation
- OpenSCV: An Open Hierarchical Taxonomy for Smart Contract Vulnerabilities
- ÐArcher: Detecting On-Chain-Off-Chain Synchronization Bugs in Decentralized Applications
- Blockchain Security Risk Assessment in Quantum Era, Migration Strategies and Proactive Defense
- A Comprehensive Study on Quality Assurance Tools for Java
- Leveraging Large Language Models and Machine Learning for Smart Contract Vulnerability Detection
- Do Automated Fixes Truly Mitigate Smart Contract Exploits?
- Abstract interpretation of Michelson smart-contracts
- Bridging the Gap: A Comparative Study of Academic and Developer Approaches to Smart Contract Vulnerabilities
- PhishingHook: Catching Phishing Ethereum Smart Contracts leveraging EVM Opcodes
- An empirical analysis of vulnerability detection tools for solidity smart contracts