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...
Saved in:
Main Authors: | , , , , , , |
---|---|
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 |