CN112528293A - 安全漏洞预警方法、装置、设备及计算机可读存储介质 - Google Patents
安全漏洞预警方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN112528293A CN112528293A CN202011513716.3A CN202011513716A CN112528293A CN 112528293 A CN112528293 A CN 112528293A CN 202011513716 A CN202011513716 A CN 202011513716A CN 112528293 A CN112528293 A CN 112528293A
- Authority
- CN
- China
- Prior art keywords
- code
- data
- early warning
- vulnerability
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 49
- 238000007637 random forest analysis Methods 0.000 claims abstract description 28
- 230000009467 reduction Effects 0.000 claims abstract description 21
- 238000012216 screening Methods 0.000 claims abstract description 15
- 230000008439 repair process Effects 0.000 claims description 30
- 238000012549 training Methods 0.000 claims description 30
- 238000003066 decision tree Methods 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 16
- 239000011159 matrix material Substances 0.000 claims description 13
- 238000013507 mapping Methods 0.000 claims description 9
- 238000007781 pre-processing Methods 0.000 claims description 9
- 238000004140 cleaning Methods 0.000 claims description 8
- 238000005070 sampling Methods 0.000 claims description 5
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 238000001514 detection method Methods 0.000 abstract description 3
- 238000005516 engineering process Methods 0.000 abstract description 2
- 238000004891 communication Methods 0.000 description 6
- 238000013145 classification model Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000013501 data transformation Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/213—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/243—Classification techniques relating to the number of classes
- G06F18/24323—Tree-organised classifiers
Abstract
本发明涉及漏洞检测,提供一种安全漏洞预警方法、装置、设备及计算机可读存储介质。本发明通过对获取到的代码提交数据进行预处理,使得能够去除代码提交数据中的脏数据,提高数据准确性;通过对初始代码数据采用流形学习算法进行降维处理,降低了初始代码数据的维度与冗余性,使得待分析数据更加便于分析;通过最后根据随机森林算法,筛选定位出可能存在安全漏洞的代码信息,进而生成代码漏洞预警信息,从而实现了代码漏洞预警信息的自动生成。且相关技术人员可以方便得获取到该预警信息并基于此对可能存在的安全漏洞进行排查,从而减小了系统的安全风险。此外,本发明还涉及区块链技术,上述代码漏洞预警信息可存储于区块链中。
Description
技术领域
本发明涉及漏洞检测技术领域,尤其涉及一种安全漏洞预警方法、装置、设备及计算机可读存储介质。
背景技术
代码安全漏洞扫描是保障产品项目成功发布的重要环节之一,但随着项目规模的逐渐扩大,代码量的增多,代码安全扫描和代码规范扫描的相关信息越来越多,安全漏洞的检查难度也逐渐增大。现有的安全扫描方式,无论是神兵流水线扫描方式还是线下扫描方式,即使以消耗大量软硬件资源为代价都难以准确得到有用的扫描结果信息,更无法对扫描结果的漏洞信息做到预警,也即是反映出了通过现有的代码安全扫描方式难以获取到代码安全漏洞的预警信息的技术问题。
发明内容
本发明的主要目的在于提供一种安全漏洞预警方法、装置、设备及计算机可读存储介质,旨在解决通过现有的代码安全扫描方式难以获取到代码安全漏洞的预警信息的技术问题。
为实现上述目的,本发明提供一种安全漏洞预警方法,所述安全漏洞预警方法包括以下步骤:
获取代码提交数据,对所述代码提交数据进行预处理得到初始代码数据;
基于流形学习算法对所述初始代码数据进行降维处理,得到待分析数据;
基于随机森林算法对所述待分析数据进行数据筛选,以定位出所述初始代码数据中需要进行安全漏洞预警的目标代码信息,并根据所述目标代码信息生成代码漏洞预警信息。
可选地,所述基于流形学习算法对所述初始代码数据进行降维处理,得到待分析数据的步骤包括:
将所述初始代码数据转化为多个样本点,并将每一所述样本点属性相近的样本点作为对应的近邻点;
根据所述近邻点得到出每一所述样本点的局部重建权值矩阵;
结合所述近邻点与所述局部重建权值矩阵,得到每一所述样本点的样本输出值,以作为所述待分析数据。
可选地,所述基于随机森林算法对所述待分析数据进行数据筛选,以定位出所述初始代码数据中需要进行安全漏洞预警的目标代码信息的步骤包括:
将所述待分析数据作为随机森林算法的入参,基于随机森林算法对所述待分析数据进行有放回取样,得到多个训练子集;
随机从每个所述训练子集对应的特征集合中选取特征子集,以基于所述特征子集构建每一所述训练子集的决策树;
获取每一所述决策树的决策结果,并投票得出全部所述决策结果中的最佳决策结果,以将所述最佳决策结果在所述代码提交数据中对应的代码信息作为所述目标代码信息。
可选地,所述基于随机森林算法对所述待分析数据进行数据筛选,以定位出所述初始代码数据中需要进行安全漏洞预警的目标代码信息的步骤之后,还包括:
对所述代码漏洞预警信息进行分级,以根据不同的预警级别将所述代码漏洞预警信息发送至相应的处理人终端。
可选地,所述对所述代码漏洞预警信息进行分级,以根据不同的预警级别将所述代码漏洞预警信息发送至相应的处理人终端的步骤包括:
确定所述代码漏洞预警信息的漏洞类型,并从预设的类型等级映射表中查找到与所述漏洞类型对应的风险等级,以将所述风险等级作为所述代码预警信息的预警级别;
在检测到所述代码预警信息的预警级别属于中等以上预警级别时,将所述代码预警信息进行加密得到加密预警信息,并将所述加密预警信息发送至中等以上预警级别对应的处理人终端。
可选地,所述获取代码提交数据,对所述代码提交数据进行预处理得到初始代码数据的步骤包括:
接收已对接的代码提交工具按照预设时间间隔上传的待扫描代码信息,对所述待扫描代码信息进行扫描得到代码提交数据;
对所述代码提交数据进行数据清洗,得到有效代码提交数据;
将所述有效代码提交数据按照属性信息进行排序,以得到所述初始代码数据。
可选地,所述定位出所述初始代码数据中需要进行安全漏洞预警的目标代码信息,并根据所述目标代码信息生成代码漏洞预警信息的步骤之后,还包括:
在检测到所述代码漏洞预警信息对应的安全漏洞完成修复时,获取所述安全漏洞的修复信息,并将所述代码漏洞预警信息与所述修复信息关联得到漏洞训练数据集;
利用所述漏洞训练数据集训练漏洞修复模型,以基于训练完成的漏洞修复模型得到新产生的代码漏洞预警信息所对应的建议修复方案。
此外,为实现上述目的,本发明还提供一种安全漏洞预警装置,所述安全漏洞预警装置包括:
提交数据处理模块,用于获取代码提交数据,对所述代码提交数据进行预处理得到初始代码数据;
初始数据降维模块,用于基于流形学习算法对所述初始代码数据进行降维处理,得到待分析数据;
预警漏洞定位模块,用于基于随机森林算法对所述待分析数据进行数据筛选,以定位出所述初始代码数据中需要进行安全漏洞预警的目标代码信息,并根据所述目标代码信息生成代码漏洞预警信息。
可选地,所述初始数据降维模块包括:
近邻样本确定单元,用于将所述初始代码数据转化为多个样本点,并将每一所述样本点属性相近的样本点作为对应的近邻点;
权值矩阵获取单元,用于根据所述近邻点得到出每一所述样本点的局部重建权值矩阵;
样本输出获取单元,用于结合所述近邻点与所述局部重建权值矩阵,得到每一所述样本点的样本输出值,以作为所述待分析数据。
可选地,所述预警漏洞定位模块包括:
训练子集获取单元,用于将所述待分析数据作为随机森林算法的入参,基于随机森林算法对所述待分析数据进行有放回取样,得到多个训练子集;
决策树构建单元,用于随机从每个所述训练子集对应的特征集合中选取特征子集,以基于所述特征子集构建每一所述训练子集的决策树;
最佳决策确定单元,用于获取每一所述决策树的决策结果,并投票得出全部所述决策结果中的最佳决策结果,以将所述最佳决策结果在所述代码提交数据中对应的代码信息作为所述目标代码信息。
可选地,所述安全漏洞预警装置还包括:
预警信息分级模块,用于对所述代码漏洞预警信息进行分级,以根据不同的预警级别将所述代码漏洞预警信息发送至相应的处理人终端。
可选地,所述预警信息分级模块还包括:
预警级别确定单元,用于确定所述代码漏洞预警信息的漏洞类型,并从预设的类型等级映射表中查找到与所述漏洞类型对应的风险等级,以将所述风险等级作为所述代码预警信息的预警级别;
在检测到所述代码预警信息的预警级别属于中等以上预警级别时,将所述代码预警信息进行加密得到加密预警信息,并将所述加密预警信息发送至中等以上预警级别对应的处理人终端。
可选地,所述提交数据处理模块包括:
代码信息扫描单元,用于接收已对接的代码提交工具按照预设时间间隔上传的待扫描代码信息,对所述待扫描代码信息进行扫描得到代码提交数据;
提交数据清洗单元,用于对所述代码提交数据进行数据清洗,得到有效代码提交数据;
有效数据排序单元,用于将所述有效代码提交数据按照属性信息进行排序,以得到所述初始代码数据。
可选地,所述安全漏洞预警装置还包括:
训练数据获取模块,用于在检测到所述代码漏洞预警信息对应的安全漏洞完成修复时,获取所述安全漏洞的修复信息,并将所述代码漏洞预警信息与所述修复信息关联得到漏洞训练数据集;
修复方案获取模块,用于利用所述漏洞训练数据集训练漏洞修复模型,以基于训练完成的漏洞修复模型得到新产生的代码漏洞预警信息所对应的建议修复方案。
此外,为实现上述目的,本发明还提供一种安全漏洞预警设备,所述安全漏洞预警设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的安全漏洞预警程序,其中所述安全漏洞预警程序被所述处理器执行时,实现如上述的安全漏洞预警方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有安全漏洞预警程序,其中所述安全漏洞预警程序被处理器执行时,实现如上述的安全漏洞预警方法的步骤。
本发明提供一种安全漏洞预警方法、装置、设备及计算机可读存储介质,所述安全漏洞预警方法通过对获取到的代码提交数据进行预处理,使得能够去除代码提交数据中的脏数据,提高数据准确性;通过对初始代码数据采用流形学习算法进行降维处理,降低了初始代码数据的维度与冗余性,使得待分析数据更加便于分析;通过最后根据随机森林算法,筛选定位出可能存在安全漏洞的代码信息,进而生成代码漏洞预警信息,从而实现了代码漏洞预警信息的自动生成,从而解决了通过现有的代码安全扫描方式难以获取到代码安全漏洞的预警信息的技术问题。且相关技术人员可以方便得获取到该预警信息并基于此对可能存在的安全漏洞进行排查,从而减小了系统的安全风险。
附图说明
图1为本发明实施例方案中涉及的安全漏洞预警设备的硬件结构示意图;
图2为本发明安全漏洞预警方法第一实施例的流程示意图;
图3为本发明安全漏洞预警装置的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例涉及的安全漏洞预警方法主要应用于安全漏洞预警设备,该安全漏洞预警设备可以是PC、便携计算机、移动终端等具有显示和处理功能的设备。
参照图1,图1为本发明实施例方案中涉及的安全漏洞预警设备的硬件结构示意图。本发明实施例中,安全漏洞预警设备可以包括处理器1001(例如CPU),通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信;用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard);网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口);存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器,存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的硬件结构并不构成对安全漏洞预警设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
继续参照图1,图1中作为一种计算机可读存储介质的存储器1005可以包括操作系统、网络通信模块以及安全漏洞预警程序。
在图1中,网络通信模块主要用于连接服务器,与服务器进行数据通信;而处理器1001可以调用存储器1005中存储的安全漏洞预警程序,并执行本发明实施例提供的安全漏洞预警方法。
基于上述硬件结构,提出本发明安全漏洞预警方法的各个实施例。
代码安全漏洞扫描是保障产品项目成功发布的重要环节之一,但随着项目规模的逐渐扩大,代码量的增多,代码安全扫描和代码规范扫描的相关信息越来越多,安全漏洞的检查难度也逐渐增大。现有的安全扫描方式,无论是神兵流水线扫描方式还是线下扫描方式,即使以消耗大量软硬件资源为代价都难以准确得到有用的扫描结果信息,更无法对扫描结果的漏洞信息做到预警,也即是反映出了通过现有的代码安全扫描方式难以获取到代码安全漏洞的预警信息的技术问题。
为解决上述问题,本发明提供一种安全漏洞预警方法,即通过对获取到的代码提交数据进行预处理,使得能够去除代码提交数据中的脏数据,提高数据准确性;通过对初始代码数据采用流形学习算法进行降维处理,降低了初始代码数据的维度与冗余性,使得待分析数据更加便于分析;通过最后根据随机森林算法,筛选定位出可能存在安全漏洞的代码信息,进而生成代码漏洞预警信息,从而实现了代码漏洞预警信息的自动生成,从而解决了通过现有的代码安全扫描方式难以获取到代码安全漏洞的预警信息的技术问题。且相关技术人员可以方便得获取到该预警信息并基于此对可能存在的安全漏洞进行排查,从而减小了系统的安全风险。
参照图2,图2为本发明安全漏洞预警方法第一实施例的流程示意图。
本发明第一实施例提供一种安全漏洞预警方法,所述安全漏洞预警方法包括以下步骤:
步骤S10,获取代码提交数据,对所述代码提交数据进行预处理得到初始代码数据;
在本实施例中,本方法应用于终端,通常为系统服务器。
代码提交数据指的是需要进行安全性扫描的代码信息,代码提交数据通常是通过对接代码提交工具进行扫描获取,当然终端也可根据人为发出或预设的指令自行获取,具体获取方式可根据实际情况灵活设置。
预处理的方式具体可为数据清洗、数据变换、维度整合等方式的一种或是多种组合。数据清洗的具体操作可包括格式标准化,异常数据清除,错误纠正,重复数据的清除等;数据变换的具体操作可包括通过平滑聚集,数据概化,规范化等方式将数据转换成适用于数据挖掘的形式。维度整合具体可按照数据的属性、类型等特征进行排序。
初始代码数据指的是将代码提交数据经过预处理后所得到的结果。
终端通过对接代码提交工具或是以自行获取的方式获取到开发测试过程中需要进行安全性检测的代码提交数据,并对其进行预处理,即可得到初始代码数据。
步骤S20,基于流形学习算法对所述初始代码数据进行降维处理,得到待分析数据;
在本实施例中,待分析数据指的是初始代码数据经过降维处理后得到的结果。
流形学习的观点认为:数据实际上是由一个低维流行映射到高维空间的。由于数据内部特征的限制,一些高维中的数据会产生维度上的冗余,实际上这些数据只要比较低的维度就能唯一的表示。具体可采用的流形学习算法包括:局部线性嵌入(LLE,LocallyLinear Embedding)、等距映射(Isomap)或拉普拉斯特征映射(Laplacian Eigenmap)等。
对于等距映射,具体是采用“局部具有欧式空间性质”的原因,让两点之间的距离近似等于依次多个临近点的连线的长度之和。通过这个方式,将多维空间“展开”到低维空间。
对于拉普拉斯特征映射,具体是先使用某一种方法来将所有的点构建成一个图,例如使用KNN算法,将每个点最近的K个点连上边,K是一个预先设定的值;然后确定点与点之间的权重大小,例如选用热核函数来确定;最后进行特征映射,计算拉普拉斯矩阵的特征向量与特征值,使用最小的若干个非零特征值对应的特征向量作为降维后的结果。
终端通过采用流形学习算法,对当前所获取到的初始代码数据进行数据降维处理,即可得到维度更低、冗余性更小的待分析数据。
步骤S30,基于随机森林算法对所述待分析数据进行数据筛选,以定位出所述初始代码数据中需要进行安全漏洞预警的目标代码信息,并根据所述目标代码信息生成代码漏洞预警信息。
在本实施例中,随机森林指的是利用多棵决策树对样本进行训练并预测的一种分类器。
目标代码信息指的是初始代码数据中可能存在安全漏洞的代码信息。
代码漏洞预警信息指的是用于表明目标代码信息可能存在何种安全漏洞的预警信息,代码漏洞预警信息中可包括:预警等级、安全漏洞类型、相关代码内容、代码提交日期、代码具体位置、代码所属信息、建议修复方案等信息。
终端采用随机森林算法对待分析数据进行筛选,筛选结束时即可得到最佳决策,此最佳决策所对应的代码部分为可能存在安全漏洞的代码信息,也即是找到开发人员在本次提交的代码中需要进行安全漏洞预警的代码部分。
作为一具体实施方式,根据目标代码信息生成代码漏洞预警信息的方式具体可为:终端根据实际的预警等级或是安全漏洞类型选择对应的预警信息生成模板,然后根据模板中所需要填写的信息类型查找到对应的信息内容,再将对应的信息内容填写到模板中的相应位置,例如模板为表格形式,表格中包括问题代码栏、代码提交日期栏、代码具体位置栏与安全漏洞类型栏,则终端即可根据表格中的各项栏目名称收集对应信息以将内容填入表格中,最终即可得到表格形式的代码漏洞预警信息。
在本实施例中,本发明通过获取代码提交数据,对所述代码提交数据进行预处理得到初始代码数据;基于流形学习算法对所述初始代码数据进行降维处理,得到待分析数据;基于随机森林算法对所述待分析数据进行数据筛选,以定位出所述初始代码数据中需要进行安全漏洞预警的目标代码信息,并根据所述目标代码信息生成代码漏洞预警信息。通过上述方式,本发明通过对获取到的代码提交数据进行预处理,使得能够去除代码提交数据中的脏数据,提高数据准确性;通过对初始代码数据采用流形学习算法进行降维处理,降低了初始代码数据的维度与冗余性,使得待分析数据更加便于分析;通过最后根据随机森林算法,筛选定位出可能存在安全漏洞的代码信息,进而生成代码漏洞预警信息,从而实现了代码漏洞预警信息的自动生成,从而解决了通过现有的代码安全扫描方式难以获取到代码安全漏洞的预警信息的技术问题。且相关技术人员可以方便得获取到该预警信息并基于此对可能存在的安全漏洞进行排查,从而减小了系统的安全风险。
进一步地,基于上述图2所示的第一实施例,提出本发明安全漏洞预警方法的第二实施例。本实施例中,步骤S20包括:
将所述初始代码数据转化为多个样本点,并将每一所述样本点属性相近的样本点作为对应的近邻点;
根据所述近邻点得到出每一所述样本点的局部重建权值矩阵;
结合所述近邻点与所述局部重建权值矩阵,得到每一所述样本点的样本输出值,以作为所述待分析数据。
在本实施例中,所采用流形学习算法为LLE算法。
终端以初始代码数据的属性作为维度,选取部分初始代码数据作为样本点,样本选取方式可采用随机选取或是根据人为设定规则选取。采用LLE算法对其进行降维,具体实施步骤如下:
第一步:寻找每个样本点的K个近邻点,其中,K为预设值,可根据实际需求灵活设置。即:选取某些数据作为样本点,与其属性相近的数据则为其近邻点;
第二步:由每个样本点的近邻点计算出该样本点的局部重建权值矩阵;
第三步:由该样本点的局部重建权值矩阵和其近邻点计算出该样本的样本输出值,样本输出值指的是样本点在低维空间的投影坐标,终端每一样本点的投影坐标作为即为上述待分析数据。
局部重建权值矩阵以及样本输出值的具体求解方式可参考本领域的现有文献,在此不做赘述。
进一步地,所述基于随机森林算法对所述待分析数据进行数据筛选,以定位出所述初始代码数据中需要进行安全漏洞预警的目标代码信息的步骤包括:
将所述待分析数据作为随机森林算法的入参,基于随机森林算法对所述待分析数据进行有放回取样,得到多个训练子集;
随机从每个所述训练子集对应的特征集合中选取特征子集,以基于所述特征子集构建每一所述训练子集的决策树;
获取每一所述决策树的决策结果,并投票得出全部所述决策结果中的最佳决策结果,以将所述最佳决策结果在所述代码提交数据中对应的代码信息作为所述目标代码信息。
在本实施例中,终端将通过流形算法得到的待分析数据(例如投影坐标数据)作为随机森林的入参,进行数据筛选。用N来表示训练用例(投影坐标)的个数,M表示特征数目。m表示输入特征数据的数目,用于确定决策树上一节点的决策结果,其中,m应远小于M。终端从N个训练用例中以有放回抽样的方式取样N次,得到多个训练子集,并用未抽到的用例作为测试子集,以评估其误差。终端构建训练子集的决策树:对于决策树上的每一个节点,随机选择m个特征,决策树上每个节点的决定都是基于这些特征确定的。根据这m个特征,计算其最佳的分裂方式。每课决策树都会完整成长不会剪枝。利用这些决策树进行对待分析数据(例如投影坐标数据)进行投票,以选出最佳决策结果,这里的最佳决策结果即为可能存在安全漏洞的目标代码信息。
进一步地,步骤S30之后,还包括:
对所述代码漏洞预警信息进行分级,以根据不同的预警级别将所述代码漏洞预警信息发送至相应的处理人终端。
在本实施例中,代码漏洞预警信息中可包括可能存在安全漏洞的实际代码内容与安全漏洞类型,以及其对应的代码提交时间、代码行数、代码提交人等信息。终端还需分析目标代码信息中可能存在的安全漏洞的具体类型选择其对应的预警级别,具体的预警级别可根据实际需求灵活设置,例如高、中、低预警级别。预警级别确定可根据当前的安全漏洞类型、代码运行报错信息或是代码中的若干语句确定。
具体的不同级别预警信息发送规则可为:预先将所有具有代码漏洞预警信息获取权限的相关人员按照预警等级进行分类,终端在生成了预警信息时即根据该预警信息实际的漏洞类型以邮件、短信等方式发送到对应类型的处理人终端,以供此类处理人及时看到该预警信息进而修复漏洞。
需要强调的是,为进一步保证上述代码漏洞预警信息的私密和安全性,上述代码漏洞预警信息还可以存储于一区块链的节点中。
进一步地,所述对所述代码漏洞预警信息进行分级,以根据不同的预警级别将所述代码漏洞预警信息发送至相应的处理人终端的步骤包括:
确定所述代码漏洞预警信息的漏洞类型,并从预设的类型等级映射表中查找到与所述漏洞类型对应的风险等级,以将所述风险等级作为所述代码预警信息的预警级别;
在检测到所述代码预警信息的预警级别属于中等以上预警级别时,将所述代码预警信息进行加密得到加密预警信息,并将所述加密预警信息发送至中等以上预警级别对应的处理人终端。
在本实施例中,漏洞类型具体可包括:跨站脚本攻击、路径篡改攻击、空指针攻击等。风险等级为通常可设置为高、中、低,或是极高、高、中、低、极低;预警级别则参照风险级别对应设置,通常也可设置为高、中、低三个等级,两者均可根据实际需求进行设置与调整。预设的类型等级映射表指的是预先设置的漏洞类型与风险等级的对应关系,例如高风险等级对应高预警级别,或是高风险等级与极高风险等级对应高风险级别等,加密预警信息指的是中等以上预警级别,例如高等预警级别、极高等预警级别、危险预警级别等的代码预警信息经过加密后所得到的预警信息,此类预警信息中通常包含有个人或是企业的敏感信息,因此需要对其进行加密。具体加密方式可为公钥加密方式或私钥加密方式。
漏洞类型的确定方式具体可采用预训练的漏洞分类模型,将存在漏洞的代码内容作为模型的入参,模型即可输出其对应的漏洞类型;也可采用查找存在漏洞的代码中预设特定关键字的方式,若查找到存在某些特定关键字,则将该关键字所对应的漏洞类型作为代码的漏洞类型。
加密预警信息可以邮件、短信等方式推送到对应的处理人终端,并可设置定时提醒,追踪该预警信息的阅读情况,直至对应处理人已阅读该预警信息。
进一步地,通过LLE算法这一流形学习算法,得到初始代码数据对应的样本输出值作为待分析数据,降低了初始代码数据的维度以及冗余性,便于进一步的数据分析;通过采用随机森林算法构建决策树进行投票选出待分析数据中的最佳决策,使得能够快速定位到可能存在安全漏洞的代码部分;通过对预警信息进行分级,并将其推送至对应的处理人终端,使得对应处理人能够及时获知到预警信息以进行漏洞修复;通过漏洞类型确定预警级别,并对中等级以上的预警信息进行加密后再推送,进一步保证了系统安全性。
进一步地,基于上述图2所示的第一实施例,提出本发明安全漏洞预警方法的第三实施例。本实施例中,步骤S10包括:
接收已对接的代码提交工具按照预设时间间隔上传的待扫描代码信息,对所述待扫描代码信息进行扫描得到代码提交数据;
对所述代码提交数据进行数据清洗,得到有效代码提交数据;
将所述有效代码提交数据按照属性信息进行排序,以得到所述初始代码数据。
在本实施例中,预设时间间隔也即是代码安全性扫描周期,可根据实际情况灵活设置。待扫描代码信息中除了包括需要扫描的代码内容之外,还可包括提交的相关细节信息,例如提交次数、提交时间、提交行数、提交类型(增加、删除、修改)、提交人等。代码提交工具具体可采用GIT,SVN(Subversion)等。终端定时从当前所对接的代码提交工具中获取到开发人员提交的待扫描代码信息,每隔一段时间进行代码提交信息采集的目的是确保扫描信息的及时性。终端在获取到待扫描代码信息后,对其进行扫描得到需要进行安全性扫描的代码提交数据。
终端可通过格式标准化,异常数据清除,错误纠正,重复数据等方式对代码提交数据中的脏数据进行清洗,得到有效代码提交数据,然后在对有效代码提交数据进行维度整合,也即是将其中类别或属性不同的信息进行有序排序,排序后即可得到初始代码数据。
进一步地,步骤S30之后,还包括:
在检测到所述代码漏洞预警信息对应的安全漏洞完成修复时,获取所述安全漏洞的修复信息,并将所述代码漏洞预警信息与所述修复信息关联得到漏洞训练数据集;
利用所述漏洞训练数据集训练漏洞修复模型,以基于训练完成的漏洞修复模型得到新产生的代码漏洞预警信息所对应的建议修复方案。
在本实施例中,终端可收集预测成功的代码漏洞以及其对应的修复措施,并在收集到一定数据量的时候基于此训练分类模型,训练好的分类模型后,在检测到新的代码漏洞预警信息后,即可自动将其作为该模型的入参,模型即可输出新的代码漏洞预警信息对应的建议修复方案,技术人员可在获知新的代码漏洞预警信息的同时得到对应的建议修复方案,并参考该修复方案对新的漏洞进行修复,从而大大提升了代码漏洞的修复效率。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
进一步地,通过对代码提交数据进行数据清洗与属性排序,提升了代码提交数据的有效性;通过收集预警成功并修复完成的代码信息训练漏洞修复模型,使得在后续检测到新的预警漏洞时刻借助该模型得到其对应的建议修复方案,从而提高了漏洞修复的处理效率。
此外,如图3所示,为实现上述目的,本发明还提供一种安全漏洞预警装置,所述安全漏洞预警装置包括:
提交数据处理模块10,用于获取代码提交数据,对所述代码提交数据进行预处理得到初始代码数据;
初始数据降维模块20,用于基于流形学习算法对所述初始代码数据进行降维处理,得到待分析数据;
预警漏洞定位模块30,用于基于随机森林算法对所述待分析数据进行数据筛选,以定位出所述初始代码数据中需要进行安全漏洞预警的目标代码信息,并根据所述目标代码信息生成代码漏洞预警信息。
本发明还提供一种安全漏洞预警设备。
所述安全漏洞预警设备包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的安全漏洞预警程序,其中所述安全漏洞预警程序被所述处理器执行时,实现如上所述的安全漏洞预警方法的步骤。
其中,所述安全漏洞预警程序被执行时所实现的方法可参照本发明安全漏洞预警方法的各个实施例,此处不再赘述。
此外,本发明实施例还提供一种计算机可读存储介质。
本发明计算机可读存储介质上存储有安全漏洞预警程序,其中所述安全漏洞预警程序被处理器执行时,实现如上述的安全漏洞预警方法的步骤。
其中,安全漏洞预警程序被执行时所实现的方法可参照本发明安全漏洞预警方法的各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种安全漏洞预警方法,其特征在于,所述安全漏洞预警方法包括:
获取代码提交数据,对所述代码提交数据进行预处理得到初始代码数据;
基于流形学习算法对所述初始代码数据进行降维处理,得到待分析数据;
基于随机森林算法对所述待分析数据进行数据筛选,以定位出所述初始代码数据中需要进行安全漏洞预警的目标代码信息,并根据所述目标代码信息生成代码漏洞预警信息。
2.如权利要求1所述的安全漏洞预警方法,其特征在于,所述基于流形学习算法对所述初始代码数据进行降维处理,得到待分析数据的步骤包括:
将所述初始代码数据转化为多个样本点,并将每一所述样本点属性相近的样本点作为对应的近邻点;
根据所述近邻点得到出每一所述样本点的局部重建权值矩阵;
结合所述近邻点与所述局部重建权值矩阵,得到每一所述样本点的样本输出值,以作为所述待分析数据。
3.如权利要求1所述的安全漏洞预警方法,其特征在于,所述基于随机森林算法对所述待分析数据进行数据筛选,以定位出所述初始代码数据中需要进行安全漏洞预警的目标代码信息的步骤包括:
将所述待分析数据作为随机森林算法的入参,基于随机森林算法对所述待分析数据进行有放回取样,得到多个训练子集;
随机从每个所述训练子集对应的特征集合中选取特征子集,以基于所述特征子集构建每一所述训练子集的决策树;
获取每一所述决策树的决策结果,并投票得出全部所述决策结果中的最佳决策结果,以将所述最佳决策结果在所述代码提交数据中对应的代码信息作为所述目标代码信息。
4.如权利要求1所述的安全漏洞预警方法,其特征在于,所述基于随机森林算法对所述待分析数据进行数据筛选,以定位出所述初始代码数据中需要进行安全漏洞预警的目标代码信息的步骤之后,还包括:
对所述代码漏洞预警信息进行分级,以根据不同的预警级别将所述代码漏洞预警信息发送至相应的处理人终端。
5.如权利要求4所述的安全漏洞预警方法,其特征在于,所述对所述代码漏洞预警信息进行分级,以根据不同的预警级别将所述代码漏洞预警信息发送至相应的处理人终端的步骤包括:
确定所述代码漏洞预警信息的漏洞类型,并从预设的类型等级映射表中查找到与所述漏洞类型对应的风险等级,以将所述风险等级作为所述代码预警信息的预警级别;
在检测到所述代码预警信息的预警级别属于中等以上预警级别时,将所述代码预警信息进行加密得到加密预警信息,并将所述加密预警信息发送至中等以上预警级别对应的处理人终端。
6.如权利要求1所述的安全漏洞预警方法,其特征在于,所述获取代码提交数据,对所述代码提交数据进行预处理得到初始代码数据的步骤包括:
接收已对接的代码提交工具按照预设时间间隔上传的待扫描代码信息,对所述待扫描代码信息进行扫描得到代码提交数据;
对所述代码提交数据进行数据清洗,得到有效代码提交数据;
将所述有效代码提交数据按照属性信息进行排序,以得到所述初始代码数据。
7.如权利要求1-6中任一项所述的安全漏洞预警方法,其特征在于,所述定位出所述初始代码数据中需要进行安全漏洞预警的目标代码信息,并根据所述目标代码信息生成代码漏洞预警信息的步骤之后,还包括:
在检测到所述代码漏洞预警信息对应的安全漏洞完成修复时,获取所述安全漏洞的修复信息,并将所述代码漏洞预警信息与所述修复信息关联得到漏洞训练数据集;
利用所述漏洞训练数据集训练漏洞修复模型,以基于训练完成的漏洞修复模型得到新产生的代码漏洞预警信息所对应的建议修复方案。
8.一种安全漏洞预警装置,其特征在于,所述安全漏洞预警装置包括:
提交数据处理模块,用于获取代码提交数据,对所述代码提交数据进行预处理得到初始代码数据;
初始数据降维模块,用于基于流形学习算法对所述初始代码数据进行降维处理,得到待分析数据;
预警漏洞定位模块,用于基于随机森林算法对所述待分析数据进行数据筛选,以定位出所述初始代码数据中需要进行安全漏洞预警的目标代码信息,并根据所述目标代码信息生成代码漏洞预警信息。
9.一种安全漏洞预警设备,其特征在于,所述安全漏洞预警设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的安全漏洞预警程序,其中所述安全漏洞预警程序被所述处理器执行时,实现如权利要求1至7中任一项所述的安全漏洞预警方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有安全漏洞预警程序,其中所述安全漏洞预警程序被处理器执行时,实现如权利要求1至7中任一项所述的安全漏洞预警方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011513716.3A CN112528293B (zh) | 2020-12-18 | 2020-12-18 | 安全漏洞预警方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011513716.3A CN112528293B (zh) | 2020-12-18 | 2020-12-18 | 安全漏洞预警方法、装置、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112528293A true CN112528293A (zh) | 2021-03-19 |
CN112528293B CN112528293B (zh) | 2024-04-30 |
Family
ID=75001846
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011513716.3A Active CN112528293B (zh) | 2020-12-18 | 2020-12-18 | 安全漏洞预警方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112528293B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108959368A (zh) * | 2018-05-22 | 2018-12-07 | 深圳壹账通智能科技有限公司 | 一种信息监控方法、存储介质和服务器 |
CN109388551A (zh) * | 2017-08-07 | 2019-02-26 | 北京京东尚科信息技术有限公司 | 预测代码存在漏洞概率的方法、漏洞检测方法、相关装置 |
CN110417709A (zh) * | 2018-04-27 | 2019-11-05 | 南宁富桂精密工业有限公司 | 勒索软件攻击的预警方法、服务器及计算机可读存储介质 |
CN111339535A (zh) * | 2020-02-17 | 2020-06-26 | 扬州大学 | 面向智能合约代码的漏洞预测方法、系统、计算机设备和存储介质 |
US10762200B1 (en) * | 2019-05-20 | 2020-09-01 | Sentinel Labs Israel Ltd. | Systems and methods for executable code detection, automatic feature extraction and position independent code detection |
CN112016098A (zh) * | 2020-09-01 | 2020-12-01 | 中国平安财产保险股份有限公司 | 扫描结果的处理方法、装置、计算机设备和存储介质 |
-
2020
- 2020-12-18 CN CN202011513716.3A patent/CN112528293B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109388551A (zh) * | 2017-08-07 | 2019-02-26 | 北京京东尚科信息技术有限公司 | 预测代码存在漏洞概率的方法、漏洞检测方法、相关装置 |
CN110417709A (zh) * | 2018-04-27 | 2019-11-05 | 南宁富桂精密工业有限公司 | 勒索软件攻击的预警方法、服务器及计算机可读存储介质 |
CN108959368A (zh) * | 2018-05-22 | 2018-12-07 | 深圳壹账通智能科技有限公司 | 一种信息监控方法、存储介质和服务器 |
US10762200B1 (en) * | 2019-05-20 | 2020-09-01 | Sentinel Labs Israel Ltd. | Systems and methods for executable code detection, automatic feature extraction and position independent code detection |
CN111339535A (zh) * | 2020-02-17 | 2020-06-26 | 扬州大学 | 面向智能合约代码的漏洞预测方法、系统、计算机设备和存储介质 |
CN112016098A (zh) * | 2020-09-01 | 2020-12-01 | 中国平安财产保险股份有限公司 | 扫描结果的处理方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112528293B (zh) | 2024-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107122483B (zh) | 基础地理信息数据质检方法、装置及系统 | |
CN109684847B (zh) | 脚本漏洞的自动修复方法、装置、设备及存储介质 | |
CN113298497A (zh) | 基于建筑信息模型的图纸审查方法及系统 | |
JP2007058514A (ja) | 情報処理装置及び情報処理方法及びプログラム | |
Zhang et al. | Large-scale empirical study of important features indicative of discovered vulnerabilities to assess application security | |
CN108009080B (zh) | 一种代码扫描工具的评估方法及装置 | |
CN113221960B (zh) | 一种高质量漏洞数据收集模型的构建方法及收集方法 | |
CN115409395B (zh) | 一种水利施工工程的质量验收检查方法及系统 | |
CN114519498A (zh) | 一种基于bim模型的质量验评方法和系统 | |
CN113434485A (zh) | 一种基于多维分析技术的数据质量健康度分析方法及系统 | |
Yang et al. | Vuldigger: A just-in-time and cost-aware tool for digging vulnerability-contributing changes | |
Panter et al. | To clean or not to clean: Cleaning open‐source data improves extinction risk assessments for threatened plant species | |
Flemström et al. | Similarity-based prioritization of test case automation | |
CN112990281A (zh) | 异常投标识别模型训练方法、异常投标识别方法及装置 | |
CN113868498A (zh) | 数据存储方法、电子装置、装置及可读存储介质 | |
CN114090556B (zh) | 一种电力营销数据采集方法及系统 | |
CN113609216A (zh) | 基于区块链的产品质量诊断方法、装置、设备及存储介质 | |
CN110414241A (zh) | 隐私策略检测方法、装置、计算机设备及存储介质 | |
CN113220588A (zh) | 一种数据处理的自动化测试方法、装置、设备及存储介质 | |
CN112528293B (zh) | 安全漏洞预警方法、装置、设备及计算机可读存储介质 | |
CN111858236A (zh) | 知识图谱监控方法、装置、计算机设备及存储介质 | |
CN111240978A (zh) | 数据报告生成与分析方法 | |
CN115659214A (zh) | 一种基于PaaS平台的能源行业数据可信评价方法 | |
CN112632247A (zh) | 工时报告检测方法、装置、计算机设备及存储介质 | |
CN111754103A (zh) | 企业风险画像方法、装置、计算机设备和可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |