Slither: A Static Analysis Framework For Smart Contracts
arXiv:1908.09878 · doi:10.1109/WETSEB.2019.00008
Abstract
This paper describes Slither, a static analysis framework designed to provide rich information about Ethereum smart contracts. It works by converting Solidity smart contracts into an intermediate representation called SlithIR. SlithIR uses Static Single Assignment (SSA) form and a reduced instruction set to ease implementation of analyses while preserving semantic information that would be lost in transforming Solidity to bytecode. Slither allows for the application of commonly used program analysis techniques like dataflow and taint tracking. Our framework has four main use cases: (1) automated detection of vulnerabilities, (2) automated detection of code optimization opportunities, (3) improvement of the user's understanding of the contracts, and (4) assistance with code review. In this paper, we present an overview of Slither, detail the design of its intermediate representation, and evaluate its capabilities on real-world contracts. We show that Slither's bug detection is fast, accurate, and outperforms other static analysis tools at finding issues in Ethereum smart contracts in terms of speed, robustness, and balance of detection and false positives. We compared tools using a large dataset of smart contracts and manually reviewed results for 1000 of the most used contracts.
Cited by in corpus (35)
- Empirical Review of Automated Analysis Tools on 47,587 Ethereum Smart Contracts
- Combining Graph Neural Networks with Expert Knowledge for Smart Contract Vulnerability Detection
- How Effective are Smart Contract Analysis Tools? Evaluating Smart Contract Static Analysis Tools Using Bug Injection
- GPTScan: Detecting Logic Vulnerabilities in Smart Contracts by Combining GPT with Program Analysis
- xFuzz: Machine Learning Guided Cross-Contract Fuzzing
- solc-verify: A Modular Verifier for Solidity Smart Contracts
- When ChatGPT Meets Smart Contract Vulnerability Detection: How Far Are We?
- Smart Contract and DeFi Security Tools: Do They Meet the Needs of Practitioners?
- DAppSCAN: Building Large-Scale Datasets for Smart Contract Weaknesses in DApp Projects
- Definition and Detection of Defects in NFT Smart Contracts
- 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
- SmartAxe: Detecting Cross-Chain Vulnerabilities in Bridge Smart Contracts via Fine-Grained Static Analysis
- OpenSCV: An Open Hierarchical Taxonomy for Smart Contract Vulnerabilities
- FlashSyn: Flash Loan Attack Synthesis via Counter Example Driven Approximation
- SmartState: Detecting State-Reverting Vulnerabilities in Smart Contracts via Fine-Grained State-Dependency Analysis
- ÐArcher: Detecting On-Chain-Off-Chain Synchronization Bugs in Decentralized Applications
- A Large-Scale Exploratory Study on the Proxy Pattern in Ethereum
- SmartLLMSentry: A Comprehensive LLM Based Smart Contract Vulnerability Detection Framework
- Identifying Smart Contract Security Issues in Code Snippets from Stack Overflow
- FORAY: Towards Effective Attack Synthesis against Deep Logical Vulnerabilities in DeFi Protocols
- Detect Llama -- Finding Vulnerabilities in Smart Contracts using Large Language Models
- Do Automated Fixes Truly Mitigate Smart Contract Exploits?
- Solvent: liquidity verification of smart contracts
- HighGuard: Cross-Chain Business Logic Monitoring of Smart Contracts
- Bridging the Gap: A Comparative Study of Academic and Developer Approaches to Smart Contract Vulnerabilities
- Trusting a Smart Contract Means Trusting Its Owners: Understanding Centralization Risk
- PhishingHook: Catching Phishing Ethereum Smart Contracts leveraging EVM Opcodes
- Deep Smart Contract Intent Detection
- Identifying Vulnerabilities in Smart Contracts using Interval Analysis
- Leveraging Slither and Interval Analysis to build a Static Analysis Tool
- Solidity Meets LLMs: A Transformer-Based Approach to Smart Contract Vulnerability Detection
- Automated Attack Synthesis for Constant Product Market Makers
- An empirical analysis of vulnerability detection tools for solidity smart contracts
- Validating Solidity Code Defects using Symbolic and Concrete Execution powered by Large Language Models