一种智能合约漏洞检测方法
摘要文本
本发明公开一种智能合约漏洞检测方法,首先将智能合约作为静态处理阶段的输入,其次,模糊测试系统会通过可疑漏洞代码行逆向构建的包含数据流依赖事实的测试用例,分配到固定测试用例池中。同时,沿用优化的思想随机构建测试用例并将其分配到非固定测试用例池。最后,模糊测试系统动态执行两个测试用例池中的测试用例。对于非固定测试用例池,测试用例的优化包含交易序列优化和参数突变,并通过本发明所提出的覆盖信息全面的测试用例价值量判断公式来指导该测试用例池的优化过程。本发明有效地提升了智能合约模糊测试的测试效率,能探索到被测智能合约中更多路径,并能发现更多合约漏洞。 微信公众号马克 数据网
申请人信息
- 申请人:杭州电子科技大学
- 申请人地址:310018 浙江省杭州市钱塘区白杨街道2号大街1158号
- 发明人: 杭州电子科技大学
专利详细信息
| 项目 | 内容 |
|---|---|
| 专利名称 | 一种智能合约漏洞检测方法 |
| 专利类型 | 发明申请 |
| 申请号 | CN202310589095.4 |
| 申请日 | 2023/5/24 |
| 公告号 | CN117332420A |
| 公开日 | 2024/1/2 |
| IPC主分类号 | G06F21/57 |
| 权利人 | 杭州电子科技大学 |
| 发明人 | 徐向华; 王顺 |
| 地址 | 浙江省杭州市钱塘区白杨街道2号大街1158号 |
专利主权项内容
1.一种智能合约漏洞检测方法,其特征在于,包括以下步骤:静态处理阶段,将智能合约作为静态处理阶段的输入包括:,通过静态手段分析智能合约中的数据依赖事实和各函数关键字节码指令数;通过在待测智能合约上运行静态分析工具,获得可疑漏洞代码行;在该阶段所产生的阶段结果用于分池阶段中不同测试用例的分配和动态执行阶段中不同用例池的执行;分池阶段,构造不同类型测试用例池,并通过可疑漏洞代码行逆向构建的包含数据流依赖事实的测试用例,分配到固定测试用例池中;同时,利用随机方式构建测试用例并分配到非固定测试用例池;动态分析阶段,模糊测试系统动态执行两个测试用例池中的测试用例,为了保障固定用例池中测试用例的长度,不对其中的测试用例进行优化,仅在动态执行过程中对该测试用例进行参数的突变;对于非固定测试用例池,测试用例的优化包含交易序列优化和参数突变,并通过所提出的覆盖信息全面的测试用例价值量判断公式来指导该测试用例池的优化过程;最后通过执行测试用例获取字节码序列相关信息并进行分析来确定漏洞是否存在。 马 克 数 据 网