xFuzz: Machine Learning Guided Cross-Contract Fuzzing

被引:15
作者
Xue, Yinxing [1 ]
Ye, Jiaming [2 ]
Zhang, Wei [1 ]
Sun, Jun [3 ]
Ma, Lei [2 ,4 ]
Wang, Haijun [5 ]
Zhao, Jianjun [2 ]
机构
[1] Univ Sci & Technol China, Hefei 230026, Anhui, Peoples R China
[2] Kyushu Univ, Fukuoka 8190395, Japan
[3] Singapore Management Univ, Singapore 188065, Singapore
[4] Univ Alberta, Alberta Machine Intelligence Inst, Edmonton T6G 2R3, AB, Canada
[5] Nanyang Technol Univ, Nanyang 639798, Singapore
关键词
Cross-contract vulnerability; fuzzing; machine learning; smart contract;
D O I
10.1109/TDSC.2022.3182373
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
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.
引用
收藏
页码:515 / 529
页数:15
相关论文
共 54 条
  • [1] code2vec: Learning Distributed Representations of Code
    Alon, Uri
    Zilberstein, Meital
    Levy, Omer
    Yahav, Eran
    [J]. PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2019, 3 (POPL):
  • [2] [Anonymous], 2020, Machine learning guided cross-contract fuzzing
  • [3] [Anonymous], 2018, Decentralized application security project
  • [4] [Anonymous], 2017, Ethereum daily transaction chart
  • [5] [Anonymous], 2018, Solhint
  • [6] [Anonymous], 2020, Security technology for smart contracts
  • [7] [Anonymous], 2019, Ethereum virtual machine opcodes
  • [8] A Survey of Attacks on Ethereum Smart Contracts (SoK)
    Atzei, Nicola
    Bartoletti, Massimo
    Cimoli, Tiziana
    [J]. PRINCIPLES OF SECURITY AND TRUST (POST 2017), 2017, 10204 : 164 - 186
  • [9] SMOTE: Synthetic minority over-sampling technique
    Chawla, Nitesh V.
    Bowyer, Kevin W.
    Hall, Lawrence O.
    Kegelmeyer, W. Philip
    [J]. 2002, American Association for Artificial Intelligence (16)
  • [10] A Survey on Ethereum Systems Security: Vulnerabilities, Attacks, and Defenses
    Chen, Huashan
    Pendleton, Marcus
    Njilla, Laurent
    Xu, Shouhuai
    [J]. ACM COMPUTING SURVEYS, 2020, 53 (03)