- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
(19)中华人民共和国国家知识产权局
(12)发明专利说明书
(10)申请公布号CN113901474A
(43)申请公布日2022.01.07
(21)申请号CN202111071388.0
(22)申请日2021.09.13
(71)申请人四川大学
地址610065四川省成都市武侯区一环路南一段24号
(72)发明人黄诚赵倩崇郭勇延
(74)专利代理机构
代理人
(51)Int.CI
G06F21/57
权利要求说明书说明书幅图
(54)发明名称
一种基于函数级代码相似性的漏洞
检测方法
(57)摘要
本发明公开了一种基于函数级代码
相似性的漏洞检测方法,属于计算机网络
安全技术领域,该方法包括:首先使用自
定义的语法抽象化和规范化规则对开源漏
洞函数和待检测函数源代码进行预处理;
然后利用漏洞函数体和相应patch文件中的
增加行代码和删除行代码生成漏洞函数指
纹和待检测函数指纹;最后基于基于
WagnerFischer算法的模糊匹配和基于
Aho‑Corasick算法的多模态精确匹配,实
现函数指纹的漏洞检测。本发明避免生成
复杂的中间表示,同时保留了基本的语法
结构,保证了检测模型的性能,尤其是检
测精度不受语法上无意义的修改的影响。
在保证低误报率和漏报率的同时,提升了
漏洞检测的可扩展性。
法律状态
法律状态公告日法律状态信息法律状态
2022-01-25实质审查的生效实质审查的生效
2022-01-07公开公开
2022-07-26授权发明专利权授予
权利要求说明书
1.一种基于函数级代码相似性的漏洞检测方法,其特征包括以下步骤:
A.漏洞函数指纹库构建模块面向C语言的包含漏洞的代码,采用Python正则表达式
进行匹配移除提取到的源代码中的注释,从Github的CVEproject库中收集所有
CVE漏洞的commit文件和相应patch文件建立漏洞数据库,从中提取所有漏洞函数
和相应patch文件中的增加行和删除行;
B.使用Antlr4编写C语言的语法规则文件,从C语言的源代码文件中生成所有函数
的抽象语法树,然后将其转化为token序列,进行语法抽象化和规范化;
C.经过语法的抽象化和规范化处理之后生成的漏洞函数语法结构包括差异结构和函
数体结构两部分,对于后者,生成基于CTPH算法的模糊哈希值;
D.目标函数的指纹生成模块生成目标函数指纹:面向待检测C语言源代码,移除注释,
对待检测的目标函数进行语法的抽象化和规范化,保留生成的目标函数的语法结构,
同时生成基于CTPH算法的模糊哈希,二者共同构成待检测函数中间表示,详细步骤
同漏洞函数指纹库构建模块;
E.基于函数指纹的漏洞检测共包括两步匹配:基于WagnerFischer算法的模糊匹配和
基于Aho-Corasick算法的多模态精确匹配,两步匹配都成功后可以成功检测出漏洞。
2.根据权利要求1所述的一种基于函数级代码相似性的漏洞检测方法,其语法抽象化
和规范化的具体步骤在于:
(1)从token序列中提取函数体和漏洞来源(所属文件位置),函数名字,形式参数列表,
局部变量列表,数据类型列表,函数调用列表;
(2)用符号FUNNAME替换函数名,用符号FORPARA替换体内每个出现的参数变
量,用符号LOVAR替换出现在函数主体中的所有局部变量,用CUSTYPE替换除了
在
文档评论(0)