[发明专利]智能合约重入漏洞检测方法、装置、存储介质及相关设备在审
申请号: | 202210264344.8 | 申请日: | 2022-03-17 |
公开(公告)号: | CN114595464A | 公开(公告)日: | 2022-06-07 |
发明(设计)人: | 郑子彬;钟志杰 | 申请(专利权)人: | 中山大学 |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06Q40/04;G06F16/903;G06F16/9038;G06F16/27 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 陈嘉雯 |
地址: | 510275 *** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 智能 合约 漏洞 检测 方法 装置 存储 介质 相关 设备 | ||
1.一种智能合约重入漏洞检测方法,其特征在于,所述方法包括:
构建与待检测的智能合约源代码对应的抽象语法树,并确定所述抽象语法树的原始控制流信息和原始数据流信息;
利用预先构建的重入漏洞关键词库对所述原始控制流信息和所述原始数据流信息进行筛选,得到关键控制流信息和关键数据流信息;
根据所述关键控制流信息和所述关键数据流信息,在所述抽象语法树上添加关键控制流边和关键数据流边,形成代码属性图;
将所述代码属性图输入至预先配置的重入漏洞检测模型中,得到所述重入漏洞检测模型输出的检测结果,根据所述检测结果确定所述智能合约源代码中是否包含重入漏洞。
2.根据权利要求1所述的方法,其特征在于,所述将所述代码属性图输入至预先配置的重入漏洞检测模型中之前,还包括:
对所述代码属性图进行压缩,得到压缩后的代码属性图;其中,所述压缩后的代码属性图中的智能合约函数节点少于压缩前的代码属性图中的智能合约函数节点。
3.根据权利要求2所述的方法,其特征在于,所述对所述代码属性图进行压缩,得到压缩后的代码属性图,包括:
按照智能合约函数粒度对所述代码属性图进行划分,得到划分后的代码属性图,所述划分后的代码属性图为不包含任何边的多个孤立函数节点;
依据所述关键控制流边和所述关键数据流边的起始函数节点和指向函数节点,对所述划分后的代码属性图中的孤立函数节点添加边,得到添加边后的代码属性图;
计算所述添加边后的代码属性图的连通分量,并根据计算得到的连通分量中的最大连通分量,确定压缩后的代码属性图。
4.根据权利要求3所述的方法,其特征在于,所述依据所述关键控制流边和所述关键数据流边的起始函数节点和指向函数节点,对所述划分后的代码属性图中的孤立函数节点添加边,包括:
根据所述关键控制流边和所述关键数据流边确定多个起始函数节点和多个指向函数节点;
针对每一起始函数节点,将所述划分后的代码属性图的孤立函数节点中与所述起始函数节点,以及所述起始函数节点关联的指向函数节点相同的孤立函数节点进行连接,形成表示各孤立函数节点之间关联关系的边。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述确定所述抽象语法树的原始控制流信息和原始数据流信息,包括:
对所述抽象语法树进行遍历,确定所述抽象语法树中定义的函数名和函数调用信息,以及变量名和变量调用及赋值信息;
根据所述抽象语法树中定义的函数名和函数调用信息,确定所述抽象语法树的原始控制流信息;
根据所述抽象语法树中定义的变量名和变量调用及赋值信息,确定所述抽象语法树的原始数据流信息。
6.根据权利要求1-4中任一项所述的方法,其特征在于,所述利用预先构建的重入漏洞关键词库对所述原始控制流信息和所述原始数据流信息进行筛选,得到关键控制流信息和关键数据流信息,包括:
将预先构建的重入漏洞关键词库中的各个关键词,分别与所述原始控制流信息中的函数名,以及所述原始数据流信息中的变量名进行比对;
将与所述关键词重合的函数名对应的原始控制流信息作为关键控制流信息,将与所述关键词重合的变量名对应的原始数据流信息作为关键数据流信息。
7.根据权利要求1-4中任一项所述的方法,其特征在于,所述根据所述关键控制流信息和所述关键数据流信息,在所述抽象语法树上添加关键控制流边和关键数据流边,形成代码属性图,包括:
确定所述关键控制流信息中的起始函数节点和指向函数节点,并根据所述关键控制流信息中的起始函数节点和指向函数节点在所述抽象语法树上添加关键控制流边;
确定所述关键数据流信息中的起始函数节点和指向函数节点,并根据所述关键数据流信息中的起始函数节点和指向函数节点在所述抽象语法树上添加关键数据流边;
依据添加关键控制流边和关键数据流边后的抽象语法树形成代码属性图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中山大学,未经中山大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210264344.8/1.html,转载请声明来源钻瓜专利网。