软件漏洞异常智能检测系统及方法与流程

文档序号:21319629发布日期:2020-06-30 20:50阅读:284来源:国知局
软件漏洞异常智能检测系统及方法与流程

本发明涉及计算机网络安全技术领域,具体地讲,涉及一种软件漏洞异常智能检测系统及方法。



背景技术:

随着互联网的发展和人们生活水平的不断提高,软件的生态系统得到蓬勃发展,大数据、云计算、可穿戴设备、智慧城市等技术改变了生产生活和思维模式,创建了联系更加紧密的人类社会,这必然使得软件漏洞攻击造成的影响更加普遍和深远。

软件漏洞是软件设计、规范和编程中固有缺陷或者错误。软件是技术进步的产物,而漏洞是存在于软件上的天然短板。虽然漏洞检测水平不断更新,提供商研发补丁的速度与日俱增,但由于软件产生的原因都是在短时间内无法克服的,致使软件漏洞具有普遍性和常存性。传统的漏洞检测需要人工去手动验证,繁琐的任务需要耗资大量的人力物力,同时还不能保证漏洞的误报率,随着人工智能的趋势发展,也可以通过机器学习和深度学习的方法去漏洞检测,但是,传统的机器学习模型在提取特征时,需要足够的领域知识,传统的深度学习模型需要满足足够的数据量,二者显然不能完美的解决目前存在的问题。



技术实现要素:

针对现有的机器学习特征提取依赖足够的领域知识和深度学习依赖足够的数据量问题,本发明首先提出了一种软件漏洞异常智能检测系统,具体技术方案如下:

一种软件漏洞异常智能检测系统,其关键在于,包括激活装置、学习数据存储装置、扫描器、数据收集通道、特征提取模块、离线分析模块和在线预测模块;其中:

所述激活装置:用于启动漏洞异常智能检测进程,并确定是做在线预测还是离线分析;

所述学习数据存储装置,用于离线分析时向所述数据收集通道提供存储的学习数据;

所述扫描器,用于在线预测时向所述数据收集通道提供软件的在线数据,包括漏洞和误报数据;

所述数据收集通道,用于收集学习数据和在线数据,并进行数据清洗;

所述特征提取模块,用于提取各个数据的特征向量并构建最终的特征向量集;

所述离线分析模块,根据所述学习数据对应的特征向量集训练模型,并将最佳模型加载至所述在线预测模块中;

所述在线预测模块,根据加载的最佳模型进行在线预测,得出软件漏洞异常检测结果。

进一步地,系统还包括后台调度器,所述后台调度器按照预定的时间周期触发所述激活装置。

可选地,所述数据收集通道预设有默认清洗函数以及清洗函数自定义接口,通过默认的清洗函数或自定义的清洗函数对数据进行清洗。

可选地,所述特征提取模块通过配置多个行为识别函数得到不同的特征值,所述行为识别函数包括热编码行为识别函数、权重行为识别函数、常规数值行为识别函数。

可选地,所述默认清洗函数包括去重过滤函数和缺失值过滤函数。

可选地,所述离线分析模块中建立了多种算法模型,包括朴素贝叶斯模型、逻辑回归模型、决策树模型、随机森林模型、xgboost模型、循环神经网络模型,并通过预定指标确定最佳模型。

可选地,激活离线分析时,如果离线分析模块所建立的模型达标,则将当前最佳模型加载到在线预测模块中;如果不达标,则进行模型回滚,选择上一次离线分析时的最佳模型进行加载。

基于上述系统,本发明还提出了一种软件漏洞异常智能检测方法,包括以下步骤:

s1:通过激活装置启动漏洞异常智能检测进程,并确定是做在线预测还是离线分析;如果是离线分析,则进入步骤s2;如果是在线学习,则进入步骤s3;

s2:收集需要学习的数据并提取数据特征,离线分析模块根据所述学习数据对应的特征向量集训练模型,并将最佳模型加载至所述在线预测模块中;

s3:收集数据并提取数据特征,在线预测模块根据加载的最佳模型进行在线预测,得出软件漏洞异常检测结果。

可选地,步骤s1中通过设置预定的时间周期激活所述激活装置,激活装置触发后收集系统的漏洞数据和误报数据,并通过判断漏洞数据和误报数据的比例是否满足预设阈值来确定是否触发离线分析。

可选地,所述离线分析模块中设置有多种算法模型,分别训练并进行风险分析,选择最佳模型进行合格验证,如果合格,则进行持久化,将其加载至在线预测模块中;如果不合格,则进行回滚,选择上一次离线分析时的最佳模型进行加载。

本发明的有益效果:

本发明集成了各机器学习算法和深度学习算法,支持统一配置文件,可配置,当数据集达到一定量时,可触发深度学习策略,解决了小数据集建模效果不好的缺陷。在机器学习算法方面融合多种算法,以自动化的方式选取了最佳算法模型,也可自行扩展算法,从而在一定程度上解决了算法选择问题。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。

图1为本发明的系统架构图;

图2为本发明的方法流程图;

图3为本发明具体实施例中涉及的自动化特征提取流程图;

图4为本发明具体实施例中涉及的集成策略算法的处理流程图

具体实施方式

下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只作为示例,而不能以此来限制本发明的保护范围。

需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。

如图1所示,本实施例提供一种软件漏洞异常智能检测系统,包括激活装置、学习数据存储装置、扫描器、数据收集通道、特征提取模块、离线分析模块和在线预测模块;其中:

所述激活装置:用于启动漏洞异常智能检测进程,并确定是做在线预测还是离线分析;

所述学习数据存储装置,用于离线分析时向所述数据收集通道提供存储的学习数据;

所述扫描器,用于在线预测时向所述数据收集通道提供软件的在线数据,包括漏洞和误报数据;

所述数据收集通道,用于收集学习数据和在线数据,并进行数据清洗;

所述特征提取模块,用于提取各个数据的特征向量并构建最终的特征向量集;

所述离线分析模块,根据所述学习数据对应的特征向量集训练模型,并将最佳模型加载至所述在线预测模块中;

所述在线预测模块,根据加载的最佳模型进行在线预测,得出软件漏洞异常检测结果。

具体实施时,系统还包括后台调度器,所述后台调度器按照预定的时间周期触发所述激活装置,系统收集扫描器输出的漏洞和误报数据,通过本系统进行数据清洗得到一个比较纯的数据,再把数据输入给特征提前模块进行特征提取,从而得到各自的特征向量,再把特征向量进行特征处理得到最后的特征向量,根据特征提取后的特征向量,通过集成策略算法的离线分析模块选择合适的算法模型进行模型训练,然后进行风险分析,如果各指标都达标,则把该模型加载到在线预测模块进行持久化,如果指标不达标,则进行回滚,回到上一个系统版本。

所述数据收集通道预设有默认清洗函数以及清洗函数自定义接口,通过默认的清洗函数或自定义的清洗函数对数据进行清洗,所述特征提取模块通过配置多个行为识别函数得到不同的特征值,所述行为识别函数包括热编码行为识别函数、权重行为识别函数、常规数值行为识别函数,所述特征提取模块还设有默认清洗函数以及清洗函数自定义接口,通过默认的清洗函数或自定义的清洗函数对数据特征值进行清洗,其中默认清洗函数包括去重过滤函数和缺失值过滤函数。

在一个可选的实例中,系统还可以设置数据准备通道,根据系统激活装置来确认该系统是做离线分析还是在线预测分支,如果是离线分析,则收集需要的学习数据;如果是在线预测,则收集扫描器需要过滤的数据,该数据均由激活装置来生成;当数据集达到某个峰值时,则可设定阈值触发深度学习节点;

数据清洗通道,该通道中提供默认清洗函数,也可自定义清洗函数,对外开放扩展接口,主要过滤掉一些特殊或自身不需要的特征;

行为函数识别通道,该通道是特征提取的关键,实现的目的就是怎么把字符串转换成后续算法需要计算的数值,提供默认行为识别函数有:热编码行为识别函数、权重行为识别函数、常规数值行为识别函数,同时该通道也支持对外开放扩展接口,最后由该通道统一处理器进行整合,只要传入提供的相应参数即可,针对不同的特征维度选取对应的行为识别函数;

特征向量通道,收集各节点的行为函数识别通道输出数据,并根据各节点生成对应的特征向量;

特征处理通道,分别收集特征向量通道的输出数据,对各节点数据进行归一化、降噪和相关性处理,达到一个比较纯的节点向量,同时对外提供扩展接口;

向量集通道,合并各个特征处理通道的向量,生成最终的向量集,为建模做准备。

具体实施时,所述离线分析模块中建立了多种算法模型,包括朴素贝叶斯模型、逻辑回归模型、决策树模型、随机森林模型、xgboost模型、循环神经网络模型,并通过预定指标确定最佳模型。

在激活离线分析时,如果离线分析模块所建立的模型达标,则将当前最佳模型加载到在线预测模块中;如果不达标,则进行模型回滚,选择上一次离线分析时的最佳模型进行加载。

如图2所示,本实施例还公开一种软件漏洞异常智能检测方法,采用上述的系统,主要包括以下步骤:

s1:通过激活装置启动漏洞异常智能检测进程,并确定是做在线预测还是离线分析;如果是离线分析,则进入步骤s2;如果是在线学习,则进入步骤s3;

s2:收集需要学习的数据并提取数据特征,离线分析模块根据所述学习数据对应的特征向量集训练模型,并将最佳模型加载至所述在线预测模块中;

s3:收集数据并提取数据特征,在线预测模块根据加载的最佳模型进行在线预测,得出软件漏洞异常检测结果。

所述离线分析模块中设置有多种算法模型,分别训练并进行风险分析,选择最佳模型进行合格验证,如果合格,则进行持久化,将其加载至在线预测模块中;如果不合格,则进行回滚,选择上一次离线分析时的最佳模型进行加载。

如图3所示,具体实施时,可通过后台激活机制vul_activate函数判断数据分支,并将数据推送至input_piplines管道,在feature_clean_module中做数据清洗,再推送至vectorize_module,最后数据流入feature_extract_piplines管道为建模做准备;根据build_module进行策略建模,将建立的好的模型推送至risk_evaluate_module,根据指标判断是模型持久化还是模型回滚。

具体地,s1.1,数据准备通道,根据系统激活机制状态vul_activate判断分支,如果是离线分析,则收集需要的学习数据;如果是在线预测,则收集扫描器需要过滤的数据,该数据均由激活装置来生成;

s1.2,统计样本个数,当样本达到1万条时,触发深度学习节点;

s2.1,进入feature_clean_module管道,其中该管道提供default_clean_func,也可自定义custom_clean_func,对外开放feature_clearn_extent_api,主要过滤掉一些特殊或自身不需要的特征;

s2.2,根据不同的特征维度选择特征管道提供的不同行为识别函数,本实施例提供默认的number_behavior_discern、onehot_behavior_discern、tfidf_behavior_discern三种特征行为识别函数,对外开放behavior_discern_extent_api,选择好对应的行为识别函数后,在behavior_discern_api中配置动作的参数,在通过以上动作生成各自维度的矩阵,得到各自维度的向量,这要处理的好处是使得程序易扩展、降低耦合度,并提供默认的特征向量化处理动作,一定程度上自动化的实现了特征提取;

s2.3,接收s2.2的数据,将各维度的数据合并成矩阵,对其进行归一化、通过皮尔逊相关系数分析特征与特征之间的相关性强度,跟据相关性进一步判断是否需要特征筛选,如果特征维度过度的话,可以选择pca进行降维;

s2.4,根据s2.3的特征矩阵,将该矩阵推送至feature_extract_piplines,为建模做准备。

更具体地,步骤s1.1还包括:

s1.1.1,在调度器的调度策略中配置hourpolicy(6,),每6小时开启一次该漏洞异常智能检测系统;

s1.1.2,激活时触发数据collect_vul_func,收集漏洞和误报具体的相关特征,具体内容包括:ip、port、url、vul_describe、vul_solution、request_msg、reponse_msg,并给样本进行数据标注,区分哪些样本属于漏洞,哪些样本属于误报,样本为漏洞的标注为0,样本为误报的标注为1,为自动化特征提取做好准备;

s1.1.3,检测数据的合理性,按漏洞和误报1:1比例,当数据满足该比例时,则触发离线分析;

s1.1.4,当后台扫描器需要进行扫描器漏洞在线预测时,收集扫描器扫面出来的具体相关特征。

步骤s2.1的具体步骤还包括:

s2.1.1,接收步骤s1.1的具体相关特征后,然后进行数据清洗,系统默认提供drop_duplicates、dropna函数,其中drop_duplicates是删除s1.1的重复样本,dropna是删除样本中的缺失值,可以自定义过滤函数:统计函数、时间分片函数等对接feature_clearn_extent_api,通过该接口参数配置对应的过滤函数。

进一步地,步骤s2.2的具体实施方案包含以下步骤:

s2.2.1,通过步骤s2.1后得到清洗后的数据,根据自身需求选择对应的行为识别函数,如果选择的是数值性识别函数,则调用函数number_behavior_discern;如果选择的是热编码,则调用onehot_behavior_discern;如果选择的是权重值计算,则调用tfidf_behavior_discern进行特征提取,得到的各自维度的矩阵。

进一步地,步骤s2.3的具体实施方案包含以下步骤:

s2.3.1,接收步骤s2.2传入的数据进一步处理,首先对数据进行归一化处理,通过对原始数据进行变换把数据映射到(默认为[0,1])之间;

s2.3.2,基于皮尔逊相关系数计算特征之间的相关性,如果该系数大于0.7,则随机删除一个特征;如果特征维度太大,则可以选择pca进行降维。

如图4所示,步骤s2的具体实施方案还包含以下步骤:

s2.5,根据数据集的大小判断是选择机器学习还是集成学习还是深度学习节点,通过integrate_model_conf()设置判断条件;

s2.6,如果选择的是ml_model,则选择的是机器学习节点;

s2.7,如果选择的是integrate_model,则选择的是集成学习节点;

s2.8,如果选择的是deep_model,则选择的是深度学习节点;

s2.9,根据风险评估阈值判断,如果指标达标,则进行模型持久化;如果不达标,则进行模型回滚;

步骤s2.5的具体实施方案包含以下步骤:

s2.5.1,如果选择机器学习,则分别计算对朴素贝叶斯、逻辑回归、决策树、随机森林模型;

s2.5.2,分别对s2.5.1的模型进行评估,根据给定的指标筛选出最佳模型,评估指标主要为模型准确率、召回率、f1score值,综合评分选取;

如图4所示,步骤s3的具体实施方案包含以下步骤:

s3.1,将提取后的特征输入模型进行预测,得到一个预测结果漏洞或误报,将该结果推送至后台,等待下一次软件漏洞异常智能检测系统激活。

在具体实施时,系统可以通过相关的配置文件,预先设置各种阈值和风险指标,具体的取值可以根据实际应用场景做适应性调整。

综上所述,本发明实现了自动化提取特征:自动化数据清洗、自动化特征行为函数识别、自动化特征向量化,解决传统机器学习特征提取过于依赖领域知识,并各节点支持灵活的扩展功能,自由的控制各策略,从工程角度上实现了高内聚、低耦合、易扩展、可维护性强、通用性强,一定程度上解决了传统机器学习的弊端。同时集成了各机器学习算法和深度学习算法,支持统一配置文件,可配置,当数据集达到一定量时,可触发深度学习策略,解决了小数据集建模效果不好的缺陷。在机器学习算法方面融合多种算法,以自动化的方式选取了最佳算法模型,也可自行扩展算法,从而在一定程度上解决了算法选择问题。

此外,以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1