IEEE Access · 2020 · 51 citations · 16 references
Gas ConsumptionEngineeringInformation SecuritySoftware EngineeringSoftware AnalysisFormal VerificationGas Allowance ManipulationBinary AnalysisFuzzingComputer EngineeringComputer ScienceStatic Program AnalysisSmart ContractSecurity Testing MethodData SecuritySoftware SecurityProgram AnalysisSoftware TestingPublic Ethereum BlockchainBlockchainFault Injection
Ethereum is a kind of blockchain platform where developers may develop and run programs called smart contracts. It inherently relies on gas consumption within a specified allowance to constrain code execution, making every instruction along an execution path to be a location for raising an exception. In this paper, we present GasFuzzer, the first work in exploring the effects of gas allowance manipulation to expose gas-oriented exception security vulnerabilities. GasFuzzer consists of two phases. The first phase introduces a gas-greedy strategy to favor transactions having higher gas consumption for mutation to obtain test transactions with different gas consumptions. The second phase introduces a novel notion of fractional gas consumption coverage and a novel gas-leveling strategy. It applies them to mutate the gas allowances of some of these transactions resulting in the highest gas consumptions produced in the first phase followed by applying these allowance-mutated transactions together with those which remained non-mutated to fuzz test the smart contract. We report an evaluation of GasFuzzer via an experiment on 3170 real-world smart contracts deployed on the public Ethereum Blockchain between October 2017 and July 2019. The findings show that GasFuzzer with gas-greedy strategy can detect more Exceptions Disorder kind of security vulnerabilities (7 more cases) than the previous state-of-the-art black-box fuzzer, and GasFuzzer with gas-leveling strategy and gas coverage criterion can detect 6 additional cases of Exceptions Disorder security vulnerabilities, which is significant.
16
Making Smart Contracts Smarter
Loi Luu, Duc-Hiep Chu, Hrishi Olickel et al. · 2016 · 2.2K citations
Petar Tsankov, Andrei Dan, Dana Drachsler-Cohen et al. · 2018 · 969 citations
ContractFuzzer: fuzzing smart contracts for vulnerability detection
Bo Jiang, Ye Liu, W. K. Chan · 2018 · 778 citations · Full text
ZEUS: Analyzing Safety of Smart Contracts
Sukrit Kalra, Seep Goel, Mohan Dhawan et al. · 2018 · 693 citations · Full text
Sergei Tikhomirov, Ekaterina Voskresenskaya, Ivan Ivanitskiy et al. · 2018 · 634 citations · Full text