本发明专利技术公开了一种提高源代码审计漏洞命中率开发方法,包括以下步骤:源代码审计、漏洞特征提取、过滤漏洞误报、专家审核与反馈、扩增漏洞数据集、训练误报过滤器。本发明专利技术通过使用代码分析技术提取语法和语义信息,使用特征工程技术提取语法和语义特征,机器学习技术过滤漏洞报告中的误报,向用户提供一种低误报率的源代码审计方法,提高了静态扫描系统的可用性,来协助开发者交付更健壮的代码。
【技术实现步骤摘要】
一种提高源代码审计漏洞命中率开发方法
本专利技术涉及计算机领域,尤其涉及一种提高源代码审计漏洞命中率开发方法。
技术介绍
如果把网络信息安全工作比作一场战争的话,漏洞扫描就是这场战争中,盘旋在终端设备,网络设备上空的“全球鹰”。网络安全工作是防守和进攻的博弈,是保证信息安全,工作顺利开展的奠基石。及时和准确地审视自己信息化工作的弱点,审视自己信息平台的漏洞和问题,才能在这场信息安全战争中,处于先机,立于不败之地。只有做到自身的安全,才能立足本职,保证公司业务稳健的运行。对于开发者而言,在使用源代码漏洞静态扫描系统时,面对包含大量误报的漏洞报告,审核漏洞难度大,会消耗大量时间,甚至会因为无法发现真实漏洞失去耐心,放弃使用扫描系统;但是软件中依然存在真实漏洞,虽然真实漏洞数量较少,但是危害性高,不及时解决容易被恶意开发者利用,造成巨大经济损失。
技术实现思路
本专利技术的目的在于克服现有技术的不足,提供提高源代码审计漏洞命中率开发方法。本专利技术的目的是通过以下技术方案来实现的:一种提高源代码审计漏洞命中率开发方法,其特征在于,包括以下步骤:对源代码进行审计,获取漏洞报告,将漏洞报告映射到漏洞数据集;融合漏洞报告并对其进行向后程序切片,获取切片代码语法特征向量;过滤器获取漏洞报告,并对漏洞数据集进行漏洞扫描,过滤掉漏洞报告中的误报;其中,所述过滤器的训练,包括以下步骤:漏洞专家对漏洞报告进行人工审核,并将误报的漏洞进行标记;将经过漏洞专家审核得到的正报和误报数据存储至数据集;系统对漏洞数据集进行扫描获取漏洞数据,并对每一个漏洞项进行特征提取,获取漏洞项的语法特征向量;将漏洞项的语法特征向量以及正报或误报标签作为训练集,用于DNN模型训练;系统将训练得到的误报过滤模型存入到MongoDB,进行持久化存储;过滤器对漏洞报告进行误报过滤时,只需要提取切片代码对应的语法和语义特征向量,即可使用已有的误报过滤模型进行误报过滤。进一步的,所述所述代码审计使用开源源代码静态扫描工具SONARQUBE。进一步的,所述获取切片代码语法特征向量包括以下子步骤:S101,对融合漏洞报告中的漏洞代码进行后向程序切片,切片起点为漏洞代码行,终点为函数入口,获取切片代码;S102,使用代码分析工具将切片代码转换为抽象语法树,并先序遍历抽象语法树获取标识符序列;S103,使用Word2Vec进行词嵌入获取标识符对应特征向量;S104,进行平均池化获取切片代码语法特征向量。进一步的,所述获取切片代码包括以下步骤:S201,通过代码分析工具提取漏洞函数的控制流图和数据流图;S202,从漏洞代码行对应节点开始,遍历控制流图和数据流图;S203,去除与漏洞代码行无数据流管连接点。进一步的,所述代码分析工具为JOERN。进一步的,所述专家审核漏洞报告包括以下子步骤:S201,系统从每一种漏洞类型中随机选择部分漏洞,并交给漏洞专家进行人工审核;S202,对于漏洞专家审核出来的误报漏洞,使用相似度算法搜索与误报漏洞相似的漏洞,并将其标记为误报。本专利技术的有益效果:通过使用代码分析技术提取语法和语义信息,特征工程技术提取语法和语义特征,机器学习技术过滤漏洞报告中的误报,改善开发者漏洞审核流程,降低漏洞审核难度,实现了低误报率的源代码漏洞静态扫描系统来协助开发者交付更健壮的代码。附图说明图1是本专利技术的方法流程图。具体实施方式为了对本专利技术的技术特征、目的和效果有更加清楚的理解,现对照附图说明本专利技术的具体实施方式。本实施例中,如图1所示,一种提高源代码审计漏洞命中率开发方法,包括以下子步骤:源代码审计;漏洞特征提取;过滤漏洞误报;专家审核与反馈;扩增漏洞数据集;训练误报过滤器。优选的,S1中所述的源代码审计,主要步骤如下:S101,使用SONARQUBE进行源代码审计;S102,获取SONARQUBE审计报告;S103,将审计报告中的漏洞想对应到CWE漏洞项ID。优选的,所述的漏洞特征提取,主要步骤如下:S201,系统对融合漏洞报告中的漏洞代码进行后向程序切片,切片起点为漏洞代码行,终点为函数入口;S202,程序切片通过代码分析工具提取漏洞函数的控制流图和数据流图;S203,从漏洞代码行对应节点开始,遍历控制流图和数据流图,去除与漏洞代码行无数据流管连接点。获取切片代码;S204,对于语法特征,系统首先使用JOERN获取切片代码AST(抽象语法树),并先序遍历AST获取标识符序列;S205,使用Word2Vec进行词嵌入获取标识符对应特征向量;S206,进行平均池化获取切片代码语法特征向量。优选的,所述的过滤漏洞误报,使用系统训练的漏洞误报过滤器,对漏洞数据集进行漏洞扫描,获取漏洞报告,判断漏洞报告中的漏洞为正报和误报。优选的,所述的专家审核与反馈,主要步骤如下:S301,系统从每一种漏洞类型中随机选择部分漏洞,并交给漏洞专家进行人工审核;S302,对于漏洞专家审核出来的误报漏洞,使用相似度算法搜索与误报漏洞相似的漏洞,并将其标记为误报。优选的,所述的扩增漏洞数据集,将由漏洞专家审核出来的误报漏洞存储至数据集,供机器学习使用。优选的,所述的训练误报过滤器,主要步骤如下:S401,对数据集进行漏洞扫描,获取漏洞报告,并根据数据标签将漏洞报告中的漏洞项判定为正报和误报;S402,对漏洞项进行特征提取,提取每一个漏洞项对应的语法特征和语义特征向量;S403,将漏洞项的语法和语义特征向量以及正报或误报标签作为训练集,用于DNN模型训练;S404,系统将训练得到的误报过滤模型进行持久化存储;S405,之后对漏洞报告进行误报过滤时,只需要提取切片代码对应的语法和语义特征向量,即可使用已有的误报过滤模型进行误报过滤。优选的,所述使用训练后的过滤器对漏洞报告进行误报过滤时,只需要提取切片代码对应的语法和语义特征向量,即可使用已有的误报过滤模型进行误报过滤。本专利技术通过使用代码分析技术提取语法和语义信息,特征工程技术提取语法和语义特征,机器学习技术过滤漏洞报告中的误报。向用户提供一种低误报率的源代码审计方法,提高了静态扫描系统的可用性,来协助开发者交付更健壮的代码。以上显示和描述了本专利技术的基本原理和主要特征和本专利技术的优点。本行业的技术人员应该了解,本专利技术不受上述实施例的限制,上述实施例和说明书中描述的只是说明本专利技术的原理,在不脱离本专利技术精神和范围的前提下,本专利技术还会有各种变化和改进,这些变化和改进都落入要求保护的本专利技术范围内。本专利技术要求保护的范围由所附的权利要求书及其等效物界定。本文档来自技高网...
【技术保护点】
1.一种提高源代码审计漏洞命中率开发方法,其特征在于,包括以下步骤:/n对源代码进行审计,获取漏洞报告,将漏洞报告映射到漏洞数据集;/n融合漏洞报告并对其进行向后程序切片,获取切片代码语法特征向量;/n过滤器获取漏洞报告,并对漏洞数据集进行漏洞扫描,过滤掉漏洞报告中的误报;/n其中,所述过滤器的训练,包括以下步骤:/n漏洞专家对漏洞报告进行人工审核,并将误报的漏洞进行标记;/n将经过漏洞专家审核得到的正报和误报数据存储至数据集;/n系统对漏洞数据集进行扫描获取漏洞数据,并对每一个漏洞项进行特征提取,获取漏洞项的语法特征向量;/n将漏洞项的语法特征向量以及正报或误报标签作为训练集,用于DNN模型训练;/n系统将训练得到的误报过滤模型存入到 MongoDB,进行持久化存储;/n过滤器对漏洞报告进行误报过滤时,只需要提取切片代码对应的语法和语义特征向量,即可使用已有的误报过滤模型进行误报过滤。/n
【技术特征摘要】
1.一种提高源代码审计漏洞命中率开发方法,其特征在于,包括以下步骤:
对源代码进行审计,获取漏洞报告,将漏洞报告映射到漏洞数据集;
融合漏洞报告并对其进行向后程序切片,获取切片代码语法特征向量;
过滤器获取漏洞报告,并对漏洞数据集进行漏洞扫描,过滤掉漏洞报告中的误报;
其中,所述过滤器的训练,包括以下步骤:
漏洞专家对漏洞报告进行人工审核,并将误报的漏洞进行标记;
将经过漏洞专家审核得到的正报和误报数据存储至数据集;
系统对漏洞数据集进行扫描获取漏洞数据,并对每一个漏洞项进行特征提取,获取漏洞项的语法特征向量;
将漏洞项的语法特征向量以及正报或误报标签作为训练集,用于DNN模型训练;
系统将训练得到的误报过滤模型存入到MongoDB,进行持久化存储;
过滤器对漏洞报告进行误报过滤时,只需要提取切片代码对应的语法和语义特征向量,即可使用已有的误报过滤模型进行误报过滤。
2.根据权利要求1所述的一种提高源代码审计漏洞命中率开发方法,其特征在于,所述代码审计使用开源源代码静态扫描工具SONARQUBE。
3.根据权利要求1所述的一种提高源代码审计漏洞命中率开发方法,其特征在于,所述获取切片代码语法特征向量包括以...
【专利技术属性】
技术研发人员:曹亮,刘魁,吴腾达,肖辉,
申请(专利权)人:成都信息工程大学,
类型:发明
国别省市:四川;51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。