买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:烟台大学
摘要:本发明涉及网络安全技术领域,具体为基于静态分析与模糊测试结合的智能合约漏洞检测方法;该漏洞检测方法,首先基于关键变量静态提取函数调用序列,以引导产生符合交易序列的测试用例;然后,基于函数调用序列生成初始测试用例,接着将测试用例进行交叉变换和经函数层面的变异处理和交易层面的变异处理,生成高质量的变异测试用例;最后,根据测试预言,利用变异测试用例遍历智能合约执行路径,得到漏洞检测结果;该检测方法,与现有工具相比,具有较高的代码覆盖率,能检测到更多数量的漏洞,且检测效果更为准确,平均准确率提高了约10%,同时平均代码覆盖率比目前较为先进的模糊测试工具提高了约14%。
主权项:1.一种基于静态分析与模糊测试结合的智能合约漏洞检测方法,其特征在于,包括如下操作:S1、获取待检智能合约的控制流程图,将所述控制流程图中含有关键指令的基本块,作为关键块;获取所述控制流程图中,包含有所述关键块的路径,得到关键路径;所有关键路径,形成了关键路径集;S2、遍历所述关键路径集中,每个关键路径上的所有基本块,获取当前基本块中PUSH4指令的操作数,得到当前函数选择器;所有函数选择器按照函数调用顺序进行排列,得到函数调用序列;S3、基于所述函数调用序列中,当前函数选择器对应函数的输入参数类型和输入参数大小,得到当前初始测试用例;所有初始测试用例,形成了初始测试用例集;获取所述初始测试用例集中,每个初始测试用例的代码与分支覆盖率;按照代码与分支覆盖率从大到小的顺序,将相邻初始测试用例进行相同位置处内容的交叉互换处理,得到交叉测试用例组;所有交叉测试用例组,形成了交叉测试用例集;所述交叉测试用例集中,每个交叉测试用例经函数层面的变异处理和交易层面的变异处理,得到变异测试用例集;S4、基于测试预言,所述变异测试用例集中,所有变异测试用例遍历所述待检智能合约的执行路径,得到漏洞检测结果;S4中测试预言包括:若所述待检智能合约中,存在指令CALL调用、且有满足调用者的重复调用的gas、且发送的虚拟货币值大于零、且同一指令存储位置的值被改变,则所述待检智能合约中存在重入漏洞;在所述待检智能合约中,若检测到当前算术指令时,前一个算术指令的栈中最近执行的两个操作数,执行当前算术指令得到的运算结果与标准值不符,且所述待检智能合约中不存在异常处理机制,则所述待检智能合约中存在整数溢出漏洞;若所述待检智能合约执行期间,调用了TIMESTAMP操作码或NUMBER操作码,且有大于零的虚拟货币转移,则所述待检智能合约中存在区块状态依赖漏洞;若所述待检智能合约执行期间,调用了delegatecall,且所述delegatecall传入的参数能被攻击者利用,则所述待检智能合约中存在不安全委托调用漏洞;若所述待检智能合约,能够接收虚拟货币,但所述待检智能合约内不包含转账函数,则所述待检智能合约中存在冻结漏洞。
全文数据:
权利要求:
百度查询: 烟台大学 基于静态分析与模糊测试结合的智能合约漏洞检测方法
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。