Vulseye: 通过有状态定向灰盒模糊测试检测智能合约漏洞
软件工程
2024-08-20 v1
摘要
智能合约是去中心化应用的基石,在数字化变革中日益凸显。然而,智能合约中的漏洞对用户资产构成重大风险,并削弱了去中心化系统的整体信任。但现有的智能合约模糊测试器在测试效率方面有两个主要原因达不到预期。首先,智能合约是有状态程序,现有方法主要依赖覆盖率引导,缺乏来自合约状态的有效反馈。因此,它们难以有效探索合约状态空间。其次,覆盖率引导的模糊测试器旨在实现全面的程序覆盖,可能导致在良性代码区域浪费测试资源。这种浪费在智能合约测试中更为严重,因为代码空间和状态空间的混合使全面测试进一步复杂化。为了解决这些挑战,我们提出了 Vulseye,一种由漏洞引导的用于智能合约的有状态定向灰盒模糊测试器。与先前工作不同,Vulseye 通过优先将测试资源分配给更容易出现漏洞的代码区域和合约状态来实现有状态定向模糊测试。我们在模糊测试循环中引入代码目标(Code Targets)和状态目标(State Targets)作为 Vulseye 的测试目标。我们使用静态分析和模式匹配来定位代码目标,并提出一种可扩展的后向分析算法来指定状态目标。我们设计了一种新颖的适应度度量,利用来自合约代码空间和状态空间的反馈,引导模糊测试朝向这些目标。在代码目标和状态目标的引导下,Vulseye 减轻了在良性代码区域浪费测试资源的问题,并实现了有效的有状态模糊测试。与最先进的模糊测试器相比,Vulseye 展现了优越的有效性和效率。
引用
@article{arxiv.2408.10116,
title = {Vulseye: Detect Smart Contract Vulnerabilities via Stateful Directed Graybox Fuzzing},
author = {Ruichao Liang and Jing Chen and Cong Wu and Kun He and Yueming Wu and Ruochen Cao and Ruiying Du and Yang Liu and Ziming Zhao},
journal= {arXiv preprint arXiv:2408.10116},
year = {2024}
}
备注
Submitted to TIFS