首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

基于执行路径和堆栈事件的智能合约漏洞检测方法和设备 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:烟台大学

摘要:本申请涉及电数字数据处理技术领域,具体为基于执行路径和堆栈事件的智能合约漏洞检测方法和设备,为解决现有技术中漏洞检准确率低的问题,本申请首先通过控制流图获取执行路径,并将执行路径中含有运算指令和或调用指令的执行路径,作为待检执行路径;同时根据EVM指令与栈的交互信息,得到堆栈事件;然后将待检执行路径、堆栈事件、参数性质和指令性质结合,进行动态分析处理,得到潜在漏洞路径和初步漏洞检测结果;最后,根据潜在漏洞路径的性质,以及算数指令运算结果,转账金额、费用消耗进行符号执行处理,得到漏洞检测结果;该检测方法误报率低,具有较高的准确度,召回率和F1分数值。

主权项:1.一种基于执行路径和堆栈事件的智能合约漏洞检测方法,其特征在于,包括如下操作:S1、将待检智能合约的源代码编译成字节码,所述字节码经反汇编处理,得到操作码;基于所述操作码,得到控制流图;具体为:将操作码分成若干个基本块,根据跳转指令,将基本块进行连接,形成控制流图;基于所述控制流图中的控制流信息,获取头部基本块至尾部基本块的所有执行路径;将所有执行路径中,含有运算指令和或调用指令的执行路径,作为待检执行路径;模拟执行待检智能合约的EVM指令,记录模拟执行过程中每条EVM指令与栈的交互信息,得到堆栈事件;S2、基于参数性质和或指令性质,对所述堆栈事件与待检执行路径进行动态分析处理,得到潜在漏洞路径;S3、若潜在漏洞路径与整数溢出漏洞或重入漏洞或拒绝服务漏洞有关,基于算数指令运算结果,和或转账金额、和或费用消耗,对所述潜在漏洞路径进行符号执行处理,得到整数溢出漏洞检测结果或重入漏洞检测结果或拒绝服务漏洞检测结果;在动态分析处理的过程中,若堆栈事件中算数指令所在待检执行路径中,算数指令对应调用参数未执行过是否为0的判断操作,则所述算数指令对应待检执行路径为与整数溢出漏洞有关的潜在漏洞路径;对与整数溢出漏洞有关的潜在漏洞路径进行符号执行处理的过程中,若所述与整数溢出漏洞有关的潜在漏洞路径中,算数指令运算结果处于对应求解范围内,则所述待检智能合约存在整数溢出漏洞;在动态分析处理的过程中,若所述堆栈事件中CALL指令所在待检执行路径中,SLOAD指令与CALLER指令目的相同,且SLOAD指令的地址CALL指令的地址SSTORE指令的地址,且SLOAD指令的参数地址和SSTORE指令的参数地址相同,则所述CALL指令所在待检执行路径为与重入漏洞有关的潜在漏洞路径;对与重入漏洞有关的潜在漏洞路径进行符号执行处理的过程中,若所述与重入漏洞有关的潜在漏洞路径中,0转账金额调用者账户余额,或费用消耗超过消耗阈值,则所述待检智能合约存在重入漏洞;所述待检智能合约在动态分析处理的过程中,若堆栈事件中以CALL指令开头的栈顶元素所在待检执行路径中,以CALL指令开头的栈顶元素执行过是否为0的判断操作,则以CALL指令开头的栈顶元素所在待检执行路径为与拒绝服务漏洞有关的潜在漏洞路径;若与拒绝服务漏洞有关的潜在漏洞路径中,不存在循环结构,则所述待检智能合约存在拒绝服务漏洞;若与拒绝服务漏洞有关的潜在漏洞路径中,存在循环结构,且所述循环结构在执行符号执行处理的过程中,所述循环结构中含有被访问次数超过访问阈值的基本块,且循环结构中包含CALL指令的转账金额大于0的基本块,则所述待检智能合约存在拒绝服务漏洞;所述待检智能合约在动态分析处理过程中,若堆栈事件中CALL指令所在待检执行路径中,以CALL指令开头的栈顶元素执行过是否为0的判断操作,则CALL指令对应待检执行路径为与未检查外部调用漏洞有关的潜在漏洞路径,则待检智能合约存在未检查外部调用漏洞。

全文数据:

权利要求:

百度查询: 烟台大学 基于执行路径和堆栈事件的智能合约漏洞检测方法和设备

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。