Reentrancy vulnerability as one of the most notorious vulnerabilities, has been a prominent topic in smart contract security research. Research shows that existing vulnerability detection presents a range of challenges, especially as smart contracts continue to increase in complexity. Existing tools perform poorly in terms of efficiency and successful detection rates for vulnerabilities in complex contracts. To effectively detect reentrancy vulnerabilities in contracts with complex logic, we propose a tool named SliSE. SliSE's detection process consists of two stages: Warning Search and Symbolic Execution Verification. In Stage I, SliSE utilizes program slicing to analyze the Inter-contract Program Dependency Graph (I-PDG) of the contract, and collects suspicious vulnerability information as warnings. In Stage II, symbolic execution is employed to verify the reachability of these warnings, thereby enhancing vulnerability detection accuracy. SliSE obtained the best performance compared with eight state-of-the-art detection tools. It achieved an F1 score of 78.65%, surpassing the highest score recorded by an existing tool of 9.26%. Additionally, it attained a recall rate exceeding 90% for detection of contracts on Ethereum. Overall, SliSE provides a robust and efficient method for detection of Reentrancy vulnerabilities for complex contracts.
翻译:重入漏洞作为最臭名昭著的漏洞之一,一直是智能合约安全研究中的重点议题。研究表明,现有漏洞检测面临一系列挑战,尤其是在智能合约复杂度持续增加的情况下。现有工具在检测复杂合约漏洞时,其效率和成功检测率表现欠佳。为有效检测含复杂逻辑的合约中的重入漏洞,我们提出名为SliSE的工具。SliSE的检测流程包含两个阶段:警告搜索与符号执行验证。在第一阶段,SliSE利用程序切片分析合约的合约间程序依赖图(I-PDG),并收集可疑漏洞信息作为警告。在第二阶段,采用符号执行验证这些警告的可达性,从而提升漏洞检测精度。与八种先进检测工具相比,SliSE取得了最佳性能,其F1分数达78.65%,超过现有工具最高记录9.26个百分点。此外,该工具在以太坊合约检测中实现了超过90%的召回率。总体而言,SliSE为复杂合约的重入漏洞检测提供了一种稳健且高效的方法。