TY - JOUR
T1 - xFuzz
T2 - Machine Learning Guided Cross-Contract Fuzzing
AU - Xue, Yinxing
AU - Ye, Jiaming
AU - Zhang, Wei
AU - Sun, Jun
AU - Ma, Lei
AU - Wang, Haijun
AU - Zhao, Jianjun
N1 - Publisher Copyright:
© 2004-2012 IEEE.
PY - 2024/3/1
Y1 - 2024/3/1
N2 - Smart contract transactions are increasingly interleaved by cross-contract calls. While many tools have been developed to identify a common set of vulnerabilities, the cross-contract vulnerability is overlooked by existing tools. Cross-contract vulnerabilities are exploitable bugs that manifest in the presence of more than two interacting contracts. Existing methods are however limited to analyze a maximum of two contracts at the same time. Detecting cross-contract vulnerabilities is highly non-trivial. With multiple interacting contracts, the search space is much larger than that of a single contract. To address this problem, we present xFuzz, a machine learning guided smart contract fuzzing framework. The machine learning models are trained with novel features (e.g., word vectors and instructions) and are used to filter likely benign program paths. Comparing with existing static tools, machine learning model is proven to be more robust, avoiding directly adopting manually-defined rules in specific tools. We compare xFuzz with three state-of-the-art tools on 7,391 contracts. xFuzz detects 18 exploitable cross-contract vulnerabilities, of which 15 vulnerabilities are exposed for the first time. Furthermore, our approach is shown to be efficient in detecting non-cross-contract vulnerabilities as well - using less than 20% time as that of other fuzzing tools, xFuzz detects twice as many vulnerabilities.
AB - Smart contract transactions are increasingly interleaved by cross-contract calls. While many tools have been developed to identify a common set of vulnerabilities, the cross-contract vulnerability is overlooked by existing tools. Cross-contract vulnerabilities are exploitable bugs that manifest in the presence of more than two interacting contracts. Existing methods are however limited to analyze a maximum of two contracts at the same time. Detecting cross-contract vulnerabilities is highly non-trivial. With multiple interacting contracts, the search space is much larger than that of a single contract. To address this problem, we present xFuzz, a machine learning guided smart contract fuzzing framework. The machine learning models are trained with novel features (e.g., word vectors and instructions) and are used to filter likely benign program paths. Comparing with existing static tools, machine learning model is proven to be more robust, avoiding directly adopting manually-defined rules in specific tools. We compare xFuzz with three state-of-the-art tools on 7,391 contracts. xFuzz detects 18 exploitable cross-contract vulnerabilities, of which 15 vulnerabilities are exposed for the first time. Furthermore, our approach is shown to be efficient in detecting non-cross-contract vulnerabilities as well - using less than 20% time as that of other fuzzing tools, xFuzz detects twice as many vulnerabilities.
KW - Cross-contract vulnerability
KW - fuzzing
KW - machine learning
KW - smart contract
UR - https://www.scopus.com/pages/publications/85132779777
U2 - 10.1109/TDSC.2022.3182373
DO - 10.1109/TDSC.2022.3182373
M3 - 文章
AN - SCOPUS:85132779777
SN - 1545-5971
VL - 21
SP - 515
EP - 529
JO - IEEE Transactions on Dependable and Secure Computing
JF - IEEE Transactions on Dependable and Secure Computing
IS - 2
ER -