[发明专利]程序漏洞检测方法、终端设备及存储介质在审
申请号: | 202210741646.X | 申请日: | 2022-06-28 |
公开(公告)号: | CN115146279A | 公开(公告)日: | 2022-10-04 |
发明(设计)人: | 胡玉鹏;关翔予;温杰凌;辛钰雯;齐园 | 申请(专利权)人: | 湖南大学 |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F8/75;G06F8/41;G06F16/36;G06N3/04 |
代理公司: | 长沙正奇专利事务所有限责任公司 43113 | 代理人: | 王娟;马强 |
地址: | 410083 湖*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 程序 漏洞 检测 方法 终端设备 存储 介质 | ||
1.一种程序漏洞检测方法,其特征在于,包括以下步骤:
对源程序进行静态分析,获取源程序的中间代码;
提取可能造成漏洞的关键点,生成切片标准,利用所述切片标准对所述中间代码进行切片,合并前向切片和后向切片,得到程序的代码片段;
使用IR2vec,对所述程序的代码片段进行词嵌入,得到编码后的向量;
利用所述编码后的向量训练神经网络,得到漏洞检测模型。
2.根据权利要求1所述的程序漏洞检测方法,其特征在于,对源程序进行静态分析,获取源程序的中间代码的具体实现过程包括:解析源代码,使用Clang命令获取源代码对应的中间代码表示形式,即得到源程序的中间代码。
3.根据权利要求1所述的程序漏洞检测方法,其特征在于,提取可能造成漏洞的关键点的具体实现过程包括:
初始化词法单元集Y,将源程序P分成多个函数,多个函数集合为F;Y初始化为空;
对每个函数fi∈F,建立抽象语法树Ai;
遍历每个词法单元tj,tj∈Ai,判断tj与Z中的四个特征是否匹配;
若匹配,则将Y∪{tj}并存入Y;Z={zapi,zarray,zpointer,zarithmetic},其中zapi,zarray,zpointer,zarithmetic分别为库函数、数组、指针和表达式四种特殊标记;输出Y,Y即可能造成漏洞的关键点。
4.根据权利要求1所述的程序漏洞检测方法,其特征在于,程序的代码片段获取过程包括:
在语句sw中给定一个特殊的词法单元收集并定义语句sw的后置顶点集为Ss;Y为可能造成漏洞的关键点;
对于任意语句ss∈Ss,判断ss是否通过对sw存在数据或者控制依赖,若存在依赖,则提取出语句ss为前向切片;
收集并定义语句sw的前置顶点集为Sp;对于任意语句sp∈Sp,判断
sp是否通过对sw存在数据或者控制依赖,若存在依赖则提取出语句sp为后向切片;
合并前向切片和后向切片,得到合并后的切片将所述切片作为程序的代码片段。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于湖南大学,未经湖南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210741646.X/1.html,转载请声明来源钻瓜专利网。
- 上一篇:读出电路及图像传感器
- 下一篇:可适配眼镜架的调节式骨传导助听器