[发明专利]一种基于对比学习的源代码漏洞检测方法及系统在审
申请号: | 202210748624.6 | 申请日: | 2022-06-29 |
公开(公告)号: | CN115033890A | 公开(公告)日: | 2022-09-09 |
发明(设计)人: | 孙小兵;闻身威;吴潇雪;薄莉莉;李斌;曹思聪;杨超 | 申请(专利权)人: | 扬州大学 |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F8/41;G06K9/62;G06N3/04;G06N3/08 |
代理公司: | 南京苏高专利商标事务所(普通合伙) 32204 | 代理人: | 张弛 |
地址: | 225009 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 对比 学习 源代码 漏洞 检测 方法 系统 | ||
本发明公开了一种基于对比学习的源代码漏洞检测方法,通过定制语义保留启发式生成所需样本对,同时通过从代码令牌到语句到图的角度对漏洞代码进行表示,利用代码属性图能更好地表示漏洞深层次的语义信息,充分挖掘漏洞代码与上下文的关系,采用对比学习技术,在小样本上进行训练,实现小样本数据的高精度需求,本发明对应提供一种基于对比学习的源代码漏洞检测系统。
技术领域
本发明涉及软件安全领域,尤其是一种基于对比学习的源代码漏洞检测方法及系统。
背景技术
漏洞检测是软件维护过程中的重要组成部分。现有的深度学习模型依赖于大量的有标记的漏洞样本,有标记的漏洞样本在实际的开发过程中很难获取,人工标记会造成大量资源浪费且正确性有待考究。已有的标记数据集样本量不大,不足以去训练一个检测率较高的检测模型。因此基于已有的有标签数据集方法训练出来的检测模型检测精度低,难以用于实际环境下的漏洞检测任务。
目前已有一些工作使用对比学习的方法来检测软件漏洞及其类型,如文献《CONTRASTIVE LEARNING FOR SOURCE CODE WITH STRUCTURAL AND FUNCTIONALPROPERTIES》通过人工注入漏洞代码形式来构造漏洞样本,这种方式仍然依赖于先验的专家经验,仍然需要手工的工作在里面。也有一些工作使用深度学习的方法来检测软件漏洞,如文献《Deep Learning based Vulnerability Detection:Are We There Yet?》没有全面考虑源代码中丰富的语义信息,很难覆盖不同类型的漏洞语义特征,因此在捕获代码深层次的语义信息方面存在一定局限性。
发明内容
发明目的:本发明的目的在于提供一种基于对比学习的源代码漏洞检测方法及系统,实现小样本数据的高精度需求,同时通过定制语义保留启发式自动生成所需样本对,利用漏洞深层次的语义信息,充分挖掘漏洞代码与上下文的关系。
技术方案:本发明提供的一种基于对比学习的源代码漏洞检测方法,包含以下步骤:
1)采集漏洞数据库NVD和开源代码库GitHub中的漏洞数据构建漏洞数据集,对漏洞数据集进行数据增强形成正负样本对;
2)对正负样本对进行代码特征表示学习,将正负样本对转化为代码属性图,该代码属性图包含的控制流图CFG和程序依赖图PDG共同组成联合图;
3)将联合图进行图嵌入并应用对比学习,得到正负样本对的特征联合图向量,同时添加分类器,将正负样本对的特征联合图向量作为分类器的输入得到预测标签,以此构建漏洞检测模型;
4)从漏洞数据库NVD和开源代码库GitHub中抽取漏洞代码作为待测代码,利用漏洞检测模型对待测代码进行分析是否含有漏洞。
进一步的,步骤1)中,构建漏洞数据集,进行数据增强,包含如下步骤:
1.1)采集漏洞数据库NVD和开源代码库GitHub中的漏洞数据,提取漏洞文件和对应漏洞补丁文件;
1.2)对提取出的漏洞文件和对应漏洞补丁文件进行预处理,从函数级别提取漏洞文件中的漏洞代码和对应漏洞补丁文件中的补丁代码,去除多余信息,多余信息包括头文件、注释以及声明的全局参数,得到漏洞数据集;
1.3)从漏洞数据集中选择漏洞代码作为硬负样本,对应的补丁代码作为原始样本,对原始样本的应用语义保留启发式使原始样本的语法结构发生改变而语义不变,从而生成正样本,把对应的正样本、原始样本、硬负样本组合作为正负样本对。
进一步的,步骤2)具体包含以下步骤:
2.1)将每个正负样本对中的所有样本进行代码表征,通过工具Joern为正负样本对生成代码属性图CPG,其中代码属性图CPG包含抽象语法树AST、控制流图CFG和程序依赖图PDG;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于扬州大学,未经扬州大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210748624.6/2.html,转载请声明来源钻瓜专利网。