TY - GEN
T1 - Increasing Fuzz Testing Coverage for Smart Contracts with Dynamic Taint Analysis
AU - Ji, Songyan
AU - Dong, Jian
AU - Qiu, Junfu
AU - Gu, Bowen
AU - Wang, Ye
AU - Wang, Tongqi
N1 - Publisher Copyright:
© 2021 IEEE.
PY - 2021
Y1 - 2021
N2 - Nowadays, smart contracts manage more and more digital assets and have become an attractive target for adversaries. To prevent smart contracts from malicious attacks, a thorough test is indispensable and must be finished before deployment because smart contracts cannot be modified after being deployed. Fuzzing is an important testing approach, but most existing smart contract fuzzers can hardly solve the constraints which involve deeply nested conditional statements, resulting in low coverage. To address this problem, we propose Targy, an efficient targeted mutation strategy based on dynamic taint analysis. We obtain the taint flow by dynamic taint propagation, and generate a more accurate mutation strategy for the input parameters of functions to simultaneously satisfy all conditional statements. We implemented Targy on sFuzz with 3.6 thousand smart contracts running on Ethereum. The numbers of covered branches and detected vulnerabilities increase by 6% and 7% respectively, and the average time required for covering a branch is reduced by 11 %.
AB - Nowadays, smart contracts manage more and more digital assets and have become an attractive target for adversaries. To prevent smart contracts from malicious attacks, a thorough test is indispensable and must be finished before deployment because smart contracts cannot be modified after being deployed. Fuzzing is an important testing approach, but most existing smart contract fuzzers can hardly solve the constraints which involve deeply nested conditional statements, resulting in low coverage. To address this problem, we propose Targy, an efficient targeted mutation strategy based on dynamic taint analysis. We obtain the taint flow by dynamic taint propagation, and generate a more accurate mutation strategy for the input parameters of functions to simultaneously satisfy all conditional statements. We implemented Targy on sFuzz with 3.6 thousand smart contracts running on Ethereum. The numbers of covered branches and detected vulnerabilities increase by 6% and 7% respectively, and the average time required for covering a branch is reduced by 11 %.
KW - Ethereum
KW - dynamic taint analysis
KW - fuzz testing
KW - smart contracts
UR - https://www.scopus.com/pages/publications/85141668950
U2 - 10.1109/QRS54544.2021.00035
DO - 10.1109/QRS54544.2021.00035
M3 - 会议稿件
AN - SCOPUS:85141668950
T3 - IEEE International Conference on Software Quality, Reliability and Security, QRS
SP - 243
EP - 247
BT - Proceedings - 2021 21st International Conference on Software Quality, Reliability and Security, QRS 2021
PB - Institute of Electrical and Electronics Engineers
T2 - 21st International Conference on Software Quality, Reliability and Security, QRS 2021
Y2 - 6 December 2021 through 10 December 2021
ER -