GasFuzzer: Fuzzing Ethereum Smart Contract Binaries to Expose Gas-Oriented Exception Security Vulnerabilities
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...
Main Authors: | , , , |
---|---|
Format: | Article |
Language: | English |
Published: |
IEEE
2020-01-01
|
Series: | IEEE Access |
Subjects: | |
Online Access: | https://ieeexplore.ieee.org/document/9094680/ |
id |
doaj-b0cd475f10184c34a9459ecc692a36fb |
---|---|
record_format |
Article |
spelling |
doaj-b0cd475f10184c34a9459ecc692a36fb2021-03-30T02:29:38ZengIEEEIEEE Access2169-35362020-01-018995529956410.1109/ACCESS.2020.29951839094680GasFuzzer: Fuzzing Ethereum Smart Contract Binaries to Expose Gas-Oriented Exception Security VulnerabilitiesImran Ashraf0https://orcid.org/0000-0002-5603-0191Xiaoxue Ma1Bo Jiang2W. K. Chan3Department of Computer Science, City University of Hong Kong, Hong KongDepartment of Computer Science, City University of Hong Kong, Hong KongSchool of Computer Science and Engineering, Beihang University, Beijing, ChinaDepartment of Computer Science, City University of Hong Kong, Hong KongEthereum 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.https://ieeexplore.ieee.org/document/9094680/BlockchainEthereumsmart contractfuzzingsoftware testingFuzzer |
collection |
DOAJ |
language |
English |
format |
Article |
sources |
DOAJ |
author |
Imran Ashraf Xiaoxue Ma Bo Jiang W. K. Chan |
spellingShingle |
Imran Ashraf Xiaoxue Ma Bo Jiang W. K. Chan GasFuzzer: Fuzzing Ethereum Smart Contract Binaries to Expose Gas-Oriented Exception Security Vulnerabilities IEEE Access Blockchain Ethereum smart contract fuzzing software testing Fuzzer |
author_facet |
Imran Ashraf Xiaoxue Ma Bo Jiang W. K. Chan |
author_sort |
Imran Ashraf |
title |
GasFuzzer: Fuzzing Ethereum Smart Contract Binaries to Expose Gas-Oriented Exception Security Vulnerabilities |
title_short |
GasFuzzer: Fuzzing Ethereum Smart Contract Binaries to Expose Gas-Oriented Exception Security Vulnerabilities |
title_full |
GasFuzzer: Fuzzing Ethereum Smart Contract Binaries to Expose Gas-Oriented Exception Security Vulnerabilities |
title_fullStr |
GasFuzzer: Fuzzing Ethereum Smart Contract Binaries to Expose Gas-Oriented Exception Security Vulnerabilities |
title_full_unstemmed |
GasFuzzer: Fuzzing Ethereum Smart Contract Binaries to Expose Gas-Oriented Exception Security Vulnerabilities |
title_sort |
gasfuzzer: fuzzing ethereum smart contract binaries to expose gas-oriented exception security vulnerabilities |
publisher |
IEEE |
series |
IEEE Access |
issn |
2169-3536 |
publishDate |
2020-01-01 |
description |
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. |
topic |
Blockchain Ethereum smart contract fuzzing software testing Fuzzer |
url |
https://ieeexplore.ieee.org/document/9094680/ |
work_keys_str_mv |
AT imranashraf gasfuzzerfuzzingethereumsmartcontractbinariestoexposegasorientedexceptionsecurityvulnerabilities AT xiaoxuema gasfuzzerfuzzingethereumsmartcontractbinariestoexposegasorientedexceptionsecurityvulnerabilities AT bojiang gasfuzzerfuzzingethereumsmartcontractbinariestoexposegasorientedexceptionsecurityvulnerabilities AT wkchan gasfuzzerfuzzingethereumsmartcontractbinariestoexposegasorientedexceptionsecurityvulnerabilities |
_version_ |
1724185107693043712 |