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

【发明公布】一种基于中间表示的智能合约漏洞检测方法、系统和设备_烟台大学_202410304571.8 

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

申请日:2024-03-18

公开(公告)日:2024-06-14

公开(公告)号:CN118194294A

主分类号:G06F21/57

分类号:G06F21/57

优先权:

专利状态码:在审-公开

法律状态:2024.06.14#公开

摘要:本发明涉及网络安全技术领域,具体为一种基于中间表示的智能合约漏洞检测方法、系统和设备;该检测方法,将待检智能合约的Solidity代码转换为中间表示,既简化了合约分析过程,又能够保留Solidity源代码中的重要语义信息,在保证漏洞分析准确的基础上,减小计算量,提高计算稳定性;该检测方法将中间表示与不同漏洞检测逻辑结合,分别对重入漏洞、拒绝服务漏洞检测和交易顺序依赖漏洞进行检测,检测结果具有较高的精确率、召回率和F1分数。

主权项:1.一种基于中间表示的智能合约漏洞检测方法,其特征在于,包括如下操作:获取待检智能合约的抽象语法树,将所述抽象语法树转化为控制流图;将所述控制流图中基本块的语句转化为指令序列,并在所述指令序列中标记出控制流图中控制流转移的位置,得到指令序列中带有控制流转移信息的中间表示;所述中间表示结合漏洞检测逻辑,得到智能合约漏洞检测结果;所述中间表示结合漏洞检测逻辑,对重入漏洞的检测操作为:获取所述待检智能合约的中间表示中,外部调用是目标调用类型的指令序列,得到外部调用指令序列;获取所述外部调用指令序列在控制流图中对应的函数,得到外部调用函数;获取所述外部调用函数在控制流图中对应的基本块,得到待检基本块;若所述待检基本块与身份控制、重入锁、固定地址和无财务风险均无关,且执行外部调用后存在状态变量的改变,则所述待检智能合约存在重入漏洞;所述中间表示结合漏洞检测逻辑,对拒绝服务漏洞的检测操作为:获取所述待检智能合约的控制流图中,非循环结构中含有条件语句的基本块,得到非循环基本块;若所述非循环基本块在中间表示中均满足以下条件:A、属于外部调用包含所有外部调用类型;B、属于调用目标地址不是目标储存变量;C、属于调用目标地址为空;D、属于外部调用成功后能改变待检智能合约状态;则所述待检智能合约存在拒绝服务漏洞;获取所述控制流图中,循环结构中含有条件语句的基本块,得到循环基本块;若所述循环基本块在中间表示中均满足以下条件:a、属于外部调用包含所有外部调用类型;b、属于调用目标地址不是目标储存变量;c、属于调用目标地址为空;则所述待检智能合约存在拒绝服务漏洞;所述中间表示结合漏洞检测逻辑,对交易顺序依赖漏洞的检测操作为:获取所述待检智能合约的控制流图中所有函数的写入变量,得到写入变量集;所述写入变量集中,所有转账金额参数类型为数量类型的写入变量,形成转账金额参数集合,所有转账金额参数类型为数量类型的写入变量对应的函数名,形成了函数名集合;获取所述待检智能合约中含有条件语句,且在中间表示中对应指令序列为外部调用包含所有外部调用类型,的基本块,得到潜在漏洞基本块;若与潜在漏洞基本块相关的外部调用函数的转账金额参数在转账金额参数集合中,但对应函数名不在函数名集合中,则所述待检智能合约存在交易顺序依赖漏洞。

全文数据:

权利要求:

百度查询: 烟台大学 一种基于中间表示的智能合约漏洞检测方法、系统和设备

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