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
来源
2020 35TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE 2020) | 2020年
基金
中国国家自然科学基金; 澳大利亚研究理事会;
关键词
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
相关论文
共 46 条
  • [1] Adrian Manning, 2018, SOL SEC COMPR LIST K
  • [2] [Anonymous], 2015, ETHEREUM BLOCKCHAIN
  • [3] [Anonymous], 2019, LLVM LANGUAGE REFERE
  • [4] [Anonymous], 2019, Octopus
  • [5] [Anonymous], 2020, CLAIRVOYANCE
  • [6] [Anonymous], 2019, BLOCK EXPLORER ANALY
  • [7] Arzt S, 2014, ACM SIGPLAN NOTICES, V49, P259, DOI [10.1145/2666356.2594299, 10.1145/2594291.2594299]
  • [8] Atzei N., 2016, IACR Cryptology ePrint Archive, V2016, P1007
  • [9] Fast static analysis of C++ virtual function calls
    Bacon, DF
    Sweeney, PF
    [J]. ACM SIGPLAN NOTICES, 1996, 31 (10) : 324 - 341
  • [10] ChainSecurity, 2019, SMART CHECK