sFuzz2.0: Storage-access pattern guided smart contract fuzzing

Smart contracts are distributed self-enforcing programs which execute on top of blockchain networks. They have the potential to revolutionize many industries and have already been adopted for applications such as distributed finance and crowdfunding. Because smart contracts are immutable once they a...

Full description

Saved in:
Bibliographic Details
Main Authors: WANG, Haoyu, WANG, Zan, LIU, Shuang, SUN, Jun, ZHAO, Yingquan, WAN, Yan, NGUYEN, Duy Tai
Format: text
Language:English
Published: Institutional Knowledge at Singapore Management University 2024
Subjects:
Online Access:https://ink.library.smu.edu.sg/sis_research/8752
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Singapore Management University
Language: English
id sg-smu-ink.sis_research-9755
record_format dspace
spelling sg-smu-ink.sis_research-97552024-05-03T06:06:03Z sFuzz2.0: Storage-access pattern guided smart contract fuzzing WANG, Haoyu WANG, Zan LIU, Shuang SUN, Jun ZHAO, Yingquan WAN, Yan NGUYEN, Duy Tai Smart contracts are distributed self-enforcing programs which execute on top of blockchain networks. They have the potential to revolutionize many industries and have already been adopted for applications such as distributed finance and crowdfunding. Because smart contracts are immutable once they are deployed, it is important to identify and eliminate code vulnerabilities in smart contracts systematically. In this work, we propose sFuzz2.0, a storage-access-pattern guided adaptive fuzzer based on sFuzz. sFuzz2.0 is motivated by the fact that certain vulnerabilities only manifest in the presence of certain function call sequences (as well as particular arguments). Given that there are exponentially many function call sequences, sFuzz randomly generates sequences without guidance. As a result, the probability of discovering those vulnerabilities is negligible. sFuzz2.0 tackles the problem with two approaches, that is, by generating function call sequences that trigger different storage-access patterns passively (i.e., by prioritizing seeds which cover new patterns) or actively (i.e., by actively seeking out different patterns). The experiment results suggest that the passive strategy outperforms sFuzz by achieving better code coverage (i.e., 37.53%) and discovering more vulnerabilities (i.e., 20.49%). 2024-04-01T07:00:00Z text https://ink.library.smu.edu.sg/sis_research/8752 info:doi/10.1002/smr.2557 Research Collection School Of Computing and Information Systems eng Institutional Knowledge at Singapore Management University Coverage criteria fuzzing smart contract security Databases and Information Systems Software Engineering
institution Singapore Management University
building SMU Libraries
continent Asia
country Singapore
Singapore
content_provider SMU Libraries
collection InK@SMU
language English
topic Coverage criteria
fuzzing
smart contract security
Databases and Information Systems
Software Engineering
spellingShingle Coverage criteria
fuzzing
smart contract security
Databases and Information Systems
Software Engineering
WANG, Haoyu
WANG, Zan
LIU, Shuang
SUN, Jun
ZHAO, Yingquan
WAN, Yan
NGUYEN, Duy Tai
sFuzz2.0: Storage-access pattern guided smart contract fuzzing
description Smart contracts are distributed self-enforcing programs which execute on top of blockchain networks. They have the potential to revolutionize many industries and have already been adopted for applications such as distributed finance and crowdfunding. Because smart contracts are immutable once they are deployed, it is important to identify and eliminate code vulnerabilities in smart contracts systematically. In this work, we propose sFuzz2.0, a storage-access-pattern guided adaptive fuzzer based on sFuzz. sFuzz2.0 is motivated by the fact that certain vulnerabilities only manifest in the presence of certain function call sequences (as well as particular arguments). Given that there are exponentially many function call sequences, sFuzz randomly generates sequences without guidance. As a result, the probability of discovering those vulnerabilities is negligible. sFuzz2.0 tackles the problem with two approaches, that is, by generating function call sequences that trigger different storage-access patterns passively (i.e., by prioritizing seeds which cover new patterns) or actively (i.e., by actively seeking out different patterns). The experiment results suggest that the passive strategy outperforms sFuzz by achieving better code coverage (i.e., 37.53%) and discovering more vulnerabilities (i.e., 20.49%).
format text
author WANG, Haoyu
WANG, Zan
LIU, Shuang
SUN, Jun
ZHAO, Yingquan
WAN, Yan
NGUYEN, Duy Tai
author_facet WANG, Haoyu
WANG, Zan
LIU, Shuang
SUN, Jun
ZHAO, Yingquan
WAN, Yan
NGUYEN, Duy Tai
author_sort WANG, Haoyu
title sFuzz2.0: Storage-access pattern guided smart contract fuzzing
title_short sFuzz2.0: Storage-access pattern guided smart contract fuzzing
title_full sFuzz2.0: Storage-access pattern guided smart contract fuzzing
title_fullStr sFuzz2.0: Storage-access pattern guided smart contract fuzzing
title_full_unstemmed sFuzz2.0: Storage-access pattern guided smart contract fuzzing
title_sort sfuzz2.0: storage-access pattern guided smart contract fuzzing
publisher Institutional Knowledge at Singapore Management University
publishDate 2024
url https://ink.library.smu.edu.sg/sis_research/8752
_version_ 1814047501744865280