Cross-Contract Static Analysis for Detecting Practical Reentrancy Vulnerabilities in Smart Contracts

被引:55
|
作者
Xue, Yinxing [1 ]
Ma, Mingliang [1 ]
Lin, Yun [2 ]
Sui, Yulei [3 ]
Ye, Jiaming [1 ]
Peng, Tianyong [1 ]
机构
[1] Univ Sci & Technol China, Hefei, Peoples R China
[2] Natl Univ Singapore, Singapore, Singapore
[3] Univ Technol Sydney, Sydney, NSW, Australia
基金
澳大利亚研究理事会; 中国国家自然科学基金;
关键词
reentrancy vulnerabilities; static taint analysis; cross-contract analysis; smart contracts;
D O I
10.1145/3324884.3416553
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Reentrancy bugs, one of the most severe vulnerabilities in smart contracts, have caused huge financial loss in recent years. Researchers have proposed many approaches to detecting them. However, empirical studies have shown that these approaches suffer from undesirable false positives and false negatives, when the code under detection involves the interaction between multiple smart contracts. In this paper, we propose an accurate and efficient cross-contract reentrancy detection approach in practice. Rather than design rule-of-thumb heuristics, we conduct a large empirical study of 11714 real-world contracts from Etherscan against three well-known general-purpose security tools for reentrancy detection. We manually summarized the reentrancy scenarios where the state-of-the-art approaches cannot address. Based on the empirical evidence, we present CLAIRVOYANCE, a cross-function and cross-contract static analysis to detect reentrancy vulnerabilities in real world with significantly higher accuracy. To reduce false negatives, we enable, for the first time, a cross-contract call chain analysis by tracking possibly tainted paths. To reduce false positives, we systematically summarized five major path protective techniques (PPTs) to support fast yet precise path feasibility checking. We implemented our approach and compared CLAIRVOYANCE with five state-of-the-art tools on 17770 real-worlds contracts. The results show that CLAIRVOYANCE yields the best detection accuracy among all the five tools and also finds 101 unknown reentrancy vulnerabilities.
引用
收藏
页码:1029 / 1040
页数:12
相关论文
共 50 条
  • [1] Clairvoyance: Cross-contract Static Analysis for Detecting Practical Reentrancy Vulnerabilities in Smart Contracts
    Ye, Jiaming
    Ma, Mingliang
    Lin, Yun
    Sui, Yulei
    Xue, Yinxing
    2020 ACM/IEEE 42ND INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING: COMPANION PROCEEDINGS (ICSE-COMPANION 2020), 2020, : 274 - 275
  • [2] ReDefender: Detecting Reentrancy Vulnerabilities in Smart Contracts Automatically
    Li, Bixin
    Pan, Zhenyu
    Hu, Tianyuan
    IEEE TRANSACTIONS ON RELIABILITY, 2022, 71 (02) : 984 - 999
  • [3] ReDefender: A Tool for Detecting Reentrancy Vulnerabilities in Smart Contracts Effectively
    Pan, Zhenyu
    Hu, Tianyuan
    Qian, Chen
    Li, Bixin
    2021 IEEE 21ST INTERNATIONAL CONFERENCE ON SOFTWARE QUALITY, RELIABILITY AND SECURITY (QRS 2021), 2021, : 915 - 925
  • [4] Formal Analysis of Reentrancy Vulnerabilities in Smart Contract Based on CPN
    He, Yaqiong
    Dong, Hanjie
    Wu, Huaiguang
    Duan, Qianheng
    ELECTRONICS, 2023, 12 (10)
  • [5] SmartDagger: A Bytecode-Based Static Analysis Approach for Detecting Cross-Contract Vulnerability
    Liao, Zeqin
    Zheng, Zibin
    Chen, Xiao
    Nan, Yuhong
    PROCEEDINGS OF THE 31ST ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON SOFTWARE TESTING AND ANALYSIS, ISSTA 2022, 2022, : 752 - 764
  • [6] Test Case Generation for Ethereum Smart Contracts Based on Cross-Contract Data Flow Analysis
    Wang, Xingya
    Yang, Yumao
    Liu, Linwei
    Chen, Zhenyu
    Huang, Song
    IEEE TRANSACTIONS ON RELIABILITY, 2024,
  • [7] SafeCheck: Detecting smart contract vulnerabilities based on static program analysis methods
    Chen, Haiyue
    Zhao, Xiangfu
    Wang, Yichen
    Zhen, Zixian
    SECURITY AND PRIVACY, 2024, 7 (05):
  • [8] CrossFuzz: Cross-contract fuzzing for smart contract vulnerability detection
    Yang, Huiwen
    Gu, Xiguo
    Chen, Xiang
    Zheng, Liwei
    Cui, Zhanqi
    SCIENCE OF COMPUTER PROGRAMMING, 2024, 234
  • [9] EvoFuzzer: An Evolutionary Fuzzer for Detecting Reentrancy Vulnerability in Smart Contracts
    Li, Bixin
    Pan, Zhenyu
    Hu, Tianyuan
    IEEE TRANSACTIONS ON NETWORK SCIENCE AND ENGINEERING, 2024, 11 (06): : 5790 - 5802
  • [10] WASMOD: Detecting vulnerabilities in Wasm smart contracts
    Zhou J.
    Chen T.
    IET Blockchain, 2023, 3 (04): : 172 - 181