AIセキュリティポータル K Program
DogeFuzz: A Simple Yet Efficient Grey-box Fuzzer for Ethereum Smart Contracts
Share
Abstract
Ethereum is a distributed, peer-to-peer blockchain infrastructure that has attracted billions of dollars. Perhaps due to its success, Ethereum has become a target for various kinds of attacks, motivating researchers to explore different techniques to identify vulnerabilities in EVM bytecode (the language of the Ethereum Virtual Machine), including formal verification, symbolic execution, and fuzz testing. Although recent studies empirically compare smart contract fuzzers, there is a lack of literature investigating how simpler greybox fuzzers compare to more advanced ones. To fill this gap, in this paper, we present DogeFuzz, an extensible infrastructure for fuzzing Ethereum smart contracts, currently supporting black-box fuzzing and two grey-box fuzzing strategies: coverage-guided grey-box fuzzing (DogeFuzz-G) and directed grey-box fuzzing (DogeFuzz-DG). We conduct a series of experiments using benchmarks already available in the literature and compare the DogeFuzz strategies with state-of-the-art fuzzers for smart contracts. Surprisingly, although DogeFuzz does not leverage advanced techniques for improving input generation (such as symbolic execution or machine learning), DogeFuzz outperforms sFuzz and ILF, two state-of-the-art fuzzers. Nonetheless, the Smartian fuzzer shows higher code coverage and bug-finding capabilities than DogeFuzz.
A survey of attacks on ethereum smart contracts (sok)
N. Atzei, M. Bartoletti, T. Cimoli
Published: 2017
Directed greybox fuzzing
M. Böhme, V. Pham, M. Nguyen, A. Roychoudhury
Published: 2017
Coverage-based greybox fuzzing as markov chain
M. Böhme, V.-T. Pham, A. Roychoudhury
Published: 2016
Grey-box concolic testing on binary code
J. Choi, J. Jang, C. Han, S. K. Cha
Published: 2019
Smartian: Enhancing smart contract fuzzing with static and dynamic dataflow analyses
J. Choi, D. Kim, S. Kim, G. Grieco, A. Groce, S. K. Cha
Published: 2021
A survey on smart contract vulnerabilities: Data sources, detection and repair
H. Chu, P. Zhang, H. Dong, Y. Xiao, S. Ji, W. Li
Published: 2023
Empirical review of automated analysis tools on 47,587 Ethereum smart contracts
T. Durieux, J. F. Ferreira, R. Abreu, P. Cruz
Published: 2020
Echidna: effective, usable, and fast fuzzing for smart contracts
G. Grieco, W. Song, A. Cygan, J. Feist, A. Groce
Published: 2020
Learning to fuzz from symbolic execution with application to smart contracts
J. He, M. Balunovic, N. Ambroladze, P. Tsankov, M. Vechev
Published: 2019
Imitation learning: A survey of learning methods
A. Hussein, M. M. Gaber, E. Elyan, C. Jayne
Published: 2017
Effuzz: Efficient fuzzing by directed search for smart contracts
S. Ji, J. Wu, J. Qiu, J. Dong
Published: 2023
ContractFuzzer: fuzzing smart contracts for vulnerability detection
B. Jiang, Y. Liu, W. K. Chan
Published: 2018
teEther: Gnawing at ethereum to automatically exploit smart contracts
J. Krupp, C. Rossow
Published: 2018
Redefender: detecting reentrancy vulnerabilities in smart contracts automatically
B. Li, Z. Pan, T. Hu
Published: 2022
Making smart contracts smarter
L. Luu, D.-H. Chu, H. Olickel, P. Saxena, A. Hobor
Published: 2016
An empirical study of the reliability of UNIX utilities
B. P. Miller, L. Fredriksen, B. So
Published: 1990
sfuzz: An efficient adaptive fuzzer for solidity smart contracts
T. D. Nguyen, L. H. Pham, J. Sun, Y. Lin, Q. T. Minh
Published: 2020
Are we there yet? unraveling the state-of-the-art smart contract fuzzers
S. Wu, Z. Li, L. Yan, W. Chen, M. Jiang, C. Wang, X. Luo, H. Zhou
Published: 2024
Harvey: a greybox fuzzer for smart contracts
V. Wüstholz, M. Christakis
Published: 2020
xFuzz: Machine Learning Guided Cross-Contract Fuzzing
Yinxing Xue, Jiaming Ye, Wei Zhang, Jun Sun, Lei Ma, Haijun Wang, Jianjun Zhao
Published: 2021.11.24
Fuzzing: Breaking things with random inputs
A. Zeller, R. Gopinath, M. Böhme, G. Fraser, C. Holler
Published: 2024
Share