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...

Full description

Bibliographic Details
Main Authors: Imran Ashraf, Xiaoxue Ma, Bo Jiang, W. K. Chan
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