CN114676435A - 一种基于知识图谱的软件漏洞可利用性预测方法 - Google Patents
一种基于知识图谱的软件漏洞可利用性预测方法 Download PDFInfo
- Publication number
- CN114676435A CN114676435A CN202210208277.8A CN202210208277A CN114676435A CN 114676435 A CN114676435 A CN 114676435A CN 202210208277 A CN202210208277 A CN 202210208277A CN 114676435 A CN114676435 A CN 114676435A
- Authority
- CN
- China
- Prior art keywords
- software vulnerability
- graph
- availability
- software
- vulnerability
- 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.)
- Pending
Links
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
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
- G06F40/295—Named entity recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种基于知识图谱的软件漏洞可利用性预测方法,所述可利用性预测方法具体为根据软件漏洞库数据获取漏洞描述文本,从中提取实体、实体属性和实体间的关系,并构建软件漏洞知识图谱,然后对其进行专家修订;构建软件漏洞可利用性预测模型,将专家修订后的软件漏洞知识图谱进行图嵌入处理,并以此构建训练集,对软件漏洞可利用性预测模型进行训练;获取待预测软件漏洞描述文本,并获取待预测软件漏洞描述文本的实体、实体属性和实体间的关系,并将其输入软件漏洞可利用性预测模型,软件漏洞可利用性预测模型输出对应的软件漏洞可利用性预测结果。本发明对于已知数据集的软件漏洞可利用性预测的准确度很高,具有非常优秀的泛化能力。
Description
技术领域
本发明涉及网络安全技术领域,尤其是指一种基于知识图谱的软件漏洞可利用性预测方法。
背景技术
软件漏洞的存在使得计算机信息系统的运行存在着诸多安全隐患,在当前的互联网环境下,安全问题显得尤为重要。对于每天公布的众多软件漏洞,计算机信息系统运维人员如何针对公布的软件漏洞进行漏洞维护优化是一个重点和难点问题。而这些被公布的软件漏洞中,也并非所有的软件漏洞都能够被利用至进行违法行为,信息系统运维人员可以对能够被利用的软件漏洞进行筛选,并对其优先处理,从而有效降低网络安全风险。而现有技术中存在对于软件漏洞可利用性预测方法,现有的预测方法在一定程度上可以进行软件漏洞可利用性预测,但该类方法只是考虑了漏洞描述文本中的词频等信息,未考虑词与词之间深层的语义信息,仍旧存在着预测效果差、准确率低等问题。
发明内容
本发明的目的是克服现有技术中的缺点,提供一种基于知识图谱的软件漏洞可利用性预测方法。
本发明的目的是通过下述技术方案予以实现:
一种基于知识图谱的软件漏洞可利用性预测方法,包括以下步骤:
步骤一,采集软件漏洞库数据,并根据软件漏洞库数据获取漏洞描述文本,对漏洞表述文本进行预处理,从漏洞描述文本中提取实体、实体属性和实体间的关系,并根据提取出的实体、实体属性和实体间的关系构建软件漏洞知识图谱;
步骤二,对构建所得软件漏洞知识图谱进行专家修订,并将修订后的软件漏洞知识图谱以图数据库的方式进行储存;
步骤三,构建软件漏洞可利用性预测模型,并将储存的软件漏洞知识图谱进行图嵌入处理,根据图嵌入处理后的软件漏洞知识图谱构建训练集,对软件漏洞可利用性预测模型进行训练;
步骤四,获取待预测软件漏洞描述文本,并对其进行预处理,获取待预测软件漏洞描述文本的实体、实体属性和实体间的关系,并将其输入软件漏洞可利用性预测模型,软件漏洞可利用性预测模型输出对应的软件漏洞可利用性预测结果。
进一步的,步骤三中对储存的软件漏洞知识图谱进行的图嵌入处理包括词嵌入、一阶关系嵌入和复杂路径嵌入。
进一步的,步骤三中在构建训练集前,还对步骤一中采集的软件漏洞知识图谱进行可利用性标注,并根据可利用性标注后获取的软件漏洞知识图谱的标签数据以及图嵌入处理后的知识图谱构建训练集。
进一步的,所述软件漏洞可利用性预测模型为深度堆栈自编码网络。
进一步的,所述软件漏洞可利用性预测模型包括一个输入层、若干个隐层和一个输出层,每个隐层均为一个自编码网络,每个隐层均包括若干个神经元。
进一步的,软件漏洞可利用性预测模型中每一层的自编码网络模型为:
Yk=σk(Wk×Yk-1+bk)
其中,k指第k个隐层,Wk和bk分别为第k层自编码网络的权重和偏置,Yk-1和Yk分别为第k-1层、第k层自编码网络的输出。
进一步的,所述输出层采用Softmax函数对输入软件漏洞可利用性预测模型的软件漏洞知识图谱进行分类,所述Softmax函数的计算公式为:
其中,X为包含M个元素的数组,M为隐层的数量,Xi为数组X中的第i个元素,Si为Xi的softmax值。
进一步的,步骤四中在待预测软件漏洞描述文本的软件漏洞可利用性预测结果后,还将待预测软件漏洞描述文本以及其可利用性结果与软件漏洞库数据进行对比,若待预测软件漏洞描述文本以及其可利用性结果不能与软件漏洞库数据中的数据匹配,则将待预测软件漏洞描述文本以及其可利用性结果作为新数据添加至软件漏洞库数据中,对软件漏洞库数据进行更新,并根据更新后的软件漏洞库数据重新训练软件漏洞可利用性预测模型。
本发明的有益效果是:
通过对知识图谱的图嵌入操作,能够使得所得到的特征具有更强的语义表征能力。且通过引入深度堆栈自编码网络,能够保证在相对少的调参时间情况下,进一步保持更多的软件漏洞描述的语义特征。而对于软件可利用性的预测结果能够为软件漏洞处理提供辅助依据,能够将软件漏洞的可利用性作为软件漏洞处理依据,提高软件处理效率。且对于新的软件漏洞,能够以此对预测模型进行优化更新,能够适应更多情况下的软件漏洞处理场景。对于已知数据集的软件漏洞可利用性预测的准确度很高,具有非常优秀的泛化能力。
附图说明
图1是本发明的一种流程示意图;
图2是本发明实施例的一种软件漏洞知识图谱构建流程图;
图3是本发明实施例的一种软件漏洞知识图谱片段示意图;
图4是本发明实施例中的一种深度堆栈自编码网络模型示意图。
具体实施方式
下面结合附图和实施例对本发明进一步描述。
实施例:
一种基于知识图谱的软件漏洞可利用性预测方法,如图1所示,包括以下步骤:
步骤一,采集软件漏洞库数据,并根据软件漏洞库数据获取漏洞描述文本,对漏洞表述文本进行预处理,从漏洞描述文本中提取实体、实体属性和实体间的关系,并根据提取出的实体、实体属性和实体间的关系构建软件漏洞知识图谱;
步骤二,对构建所得软件漏洞知识图谱进行专家修订,并将修订后的软件漏洞知识图谱以图数据库的方式进行储存;
步骤三,构建软件漏洞可利用性预测模型,并将储存的软件漏洞知识图谱进行图嵌入处理,根据图嵌入处理后的软件漏洞知识图谱构建训练集,对软件漏洞可利用性预测模型进行训练;
步骤四,获取待预测软件漏洞描述文本,并对其进行预处理,获取待预测软件漏洞描述文本的实体、实体属性和实体间的关系,并将其输入软件漏洞可利用性预测模型,软件漏洞可利用性预测模型输出对应的软件漏洞可利用性预测结果。
本实施例中具体采用图数据库Neo4J对于修订后的软件漏洞知识图谱进行存储和管理,能够有效节省存储空间、增加数据访问效率。
步骤一中所述预处理具体为分词处理。
步骤一中所建立的软件漏洞知识图谱能够形式化表示为KG=(N,R,E),其中N表示所有实体的集合,R是所有关系的集合,E是软件漏洞知识图谱中实体间的关系集合;E中每个元素由三元组(eh,r,et)组成,eh为头实体、et为尾实体、r表示之间的关系。
软件漏洞知识图谱的构件流程具体如图2所示,针对软件漏洞数据库中的每条漏洞描述文本,自动进行分词处理,抽取文本中的实体、实体间的关系、以及他们的属性,并在此基础上构建并更新软件漏洞知识图谱,直到软件漏洞库中的所有漏洞描述文本都被处理完成。
步骤二中需要由领域专家对自动构建的软件漏洞知识图谱进行修订,从而消除里面错误信息,增加遗漏信息,从而获取准确性更高的软件漏洞知识图谱。本实施例中所构建的知识图谱片段如图3所示。
步骤三中对储存的软件漏洞知识图谱进行的图嵌入处理包括词嵌入、一阶关系嵌入和复杂路径嵌入。
词嵌入也称为实体嵌入,将软件漏洞领域的实体进行嵌入操作,将其变为计算可以理解的向量;一阶关系嵌入将知识图谱中实体与其直接邻居以及他们之间的关系进行转换操作,变成计算机可以理解的向量;复杂路径嵌入将知识图谱中实体与其直接邻居、间接邻居,以及他们之间的关系,变换为计算机可以理解的向量。复杂路径是指知识图谱中实体和关系交替构成的序列,如:复杂路径{e1,r12,e2,r23,e3,…,en-1,r(n-1)n,en}包含n个实体、n-1个关系,这n个实体{e1,e2,…,en}通过关系{r12,r23,r(n-1)n}连接起来,构成一条路径;路径的长度n可以根据实际需要进行配置。
步骤三中在构建训练集前,还对步骤一中采集的软件漏洞知识图谱进行可利用性标注,并根据可利用性标注后获取的软件漏洞知识图谱的标签数据以及图嵌入处理后的知识图谱构建训练集。本实施例中具体采用ExploitDB(漏洞利用程序集)数据库中的数据进行可利用性标注,所述ExploitDB数据库为由Offensive Security(信息安全培训和渗透测试服务提供商)提供的漏洞利用程序集的数据库。
在确定网络参数模型的过程中,采用逐层学习策略,将相邻的层级作为简单的两层神经网络进行训练,再逐层将学习后的层级叠加在一起形成深度神经网络,从而使得软件漏洞可利用性预测模型具备较快的学习效率和泛化能力。
所述软件漏洞可利用性预测模型为深度堆栈自编码网络,所述深度堆栈自编码网络模型如图4所示。
所述软件漏洞可利用性预测模型包括一个输入层、若干个隐层和一个输出层,所述输入层内数据为步骤三中由图嵌入处理后软件漏洞知识图谱所提供的图嵌入向量,以及根据ExploitDB数据库进行可利用性标注后获取的标签数据;而软件漏洞可利用性预测模型的每个隐层均为一个自编码网络,每个隐层都包含多个神经元,神经元数量记为Numi,i∈{1,2,…,M},M为本实施例中软件漏洞可利用性预测模型的隐层的数量,神经元激活函数采用Relu函数;输出层则具体采用Softmax函数进行分类。
软件漏洞可利用性预测模型中每一层的自编码网络模型为:
Yk=σk(Wk×Yk-1+bk)
其中,k指第k个隐层,Wk和bk分别为第k层自编码网络的权重和偏置,Yk-1和Yk分别为第k-1层、第k层自编码网络的输出。
所述输出层采用Softmax函数对输入软件漏洞可利用性预测模型的软件漏洞知识图谱进行分类,所述Softmax函数的计算公式为:
其中,X为包含M个元素的数组,M为隐层的数量,Xi为数组X中的第i个元素,Si为Xi的softmax值。
步骤四中在待预测软件漏洞描述文本的软件漏洞可利用性预测结果后,还将待预测软件漏洞描述文本以及其可利用性结果与软件漏洞库数据进行对比,若待预测软件漏洞描述文本以及其可利用性结果不能与软件漏洞库数据中的数据匹配,则将待预测软件漏洞描述文本以及其可利用性结果作为新数据添加至软件漏洞库数据中,对软件漏洞库数据进行更新,并根据更新后的软件漏洞库数据重新训练软件漏洞可利用性预测模型。
以上所述的实施例只是本发明的一种较佳的方案,并非对本发明作任何形式上的限制,在不超出权利要求所记载的技术方案的前提下还有其它的变体及改型。
Claims (8)
1.一种基于知识图谱的软件漏洞可利用性预测方法,其特征在于,包括以下步骤:
步骤一,采集软件漏洞库数据,并根据软件漏洞库数据获取漏洞描述文本,对漏洞表述文本进行预处理,从漏洞描述文本中提取实体、实体属性和实体间的关系,并根据提取出的实体、实体属性和实体间的关系构建软件漏洞知识图谱;
步骤二,对构建所得软件漏洞知识图谱进行专家修订,并将修订后的软件漏洞知识图谱以图数据库的方式进行储存;
步骤三,构建软件漏洞可利用性预测模型,并将储存的软件漏洞知识图谱进行图嵌入处理,根据图嵌入处理后的软件漏洞知识图谱构建训练集,对软件漏洞可利用性预测模型进行训练;
步骤四,获取待预测软件漏洞描述文本,并对其进行预处理,获取待预测软件漏洞描述文本的实体、实体属性和实体间的关系,并将其输入软件漏洞可利用性预测模型,软件漏洞可利用性预测模型输出对应的软件漏洞可利用性预测结果。
2.根据权利要求1所述的一种基于知识图谱的软件漏洞可利用性预测方法,其特征在于,步骤三中对储存的软件漏洞知识图谱进行的图嵌入处理包括词嵌入、一阶关系嵌入和复杂路径嵌入。
3.根据权利要求1所述的一种基于知识图谱的软件漏洞可利用性预测方法,其特征在于,步骤三中在构建训练集前,还对步骤一中采集的软件漏洞知识图谱进行可利用性标注,并根据可利用性标注后获取的软件漏洞知识图谱的标签数据以及图嵌入处理后的知识图谱构建训练集。
4.根据权利要求1所述的一种基于知识图谱的软件漏洞可利用性预测方法,其特征在于,所述软件漏洞可利用性预测模型为深度堆栈自编码网络。
5.根据权利要求1所述的一种基于知识图谱的软件漏洞可利用性预测方法,其特征在于,所述软件漏洞可利用性预测模型包括一个输入层、若干个隐层和一个输出层,每个隐层均为一个自编码网络,每个隐层均包括若干个神经元。
6.根据权利要求5所述的一种基于知识图谱的软件漏洞可利用性预测方法,其特征在于,软件漏洞可利用性预测模型中每一层的自编码网络模型为:
Yk=σk(Wk×Yk-1+bk)
其中,k指第k个隐层,Wk和bk分别为第k层自编码网络的权重和偏置,Yk-1和Yk分别为第k-1层、第k层自编码网络的输出。
8.根据权利要求1所述的一种基于知识图谱的软件漏洞可利用性预测方法,其特征在于,步骤四中在待预测软件漏洞描述文本的软件漏洞可利用性预测结果后,还将待预测软件漏洞描述文本以及其可利用性结果与软件漏洞库数据进行对比,若待预测软件漏洞描述文本以及其可利用性结果不能与软件漏洞库数据中的数据匹配,则将待预测软件漏洞描述文本以及其可利用性结果作为新数据添加至软件漏洞库数据中,对软件漏洞库数据进行更新,并根据更新后的软件漏洞库数据重新训练软件漏洞可利用性预测模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210208277.8A CN114676435A (zh) | 2022-03-04 | 2022-03-04 | 一种基于知识图谱的软件漏洞可利用性预测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210208277.8A CN114676435A (zh) | 2022-03-04 | 2022-03-04 | 一种基于知识图谱的软件漏洞可利用性预测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114676435A true CN114676435A (zh) | 2022-06-28 |
Family
ID=82072551
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210208277.8A Pending CN114676435A (zh) | 2022-03-04 | 2022-03-04 | 一种基于知识图谱的软件漏洞可利用性预测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114676435A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115033894A (zh) * | 2022-08-12 | 2022-09-09 | 中国电子科技集团公司第三十研究所 | 一种基于知识图谱的软件组件供应链安全检测方法及装置 |
CN115470126A (zh) * | 2022-09-05 | 2022-12-13 | 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) | 软件安全漏洞模式数据库构建与软件渗透测试方法 |
CN117294472A (zh) * | 2023-09-05 | 2023-12-26 | 四川大学 | 一种针对可公开获取漏洞的协同利用预测方法 |
-
2022
- 2022-03-04 CN CN202210208277.8A patent/CN114676435A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115033894A (zh) * | 2022-08-12 | 2022-09-09 | 中国电子科技集团公司第三十研究所 | 一种基于知识图谱的软件组件供应链安全检测方法及装置 |
CN115033894B (zh) * | 2022-08-12 | 2022-12-09 | 中国电子科技集团公司第三十研究所 | 一种基于知识图谱的软件组件供应链安全检测方法及装置 |
CN115470126A (zh) * | 2022-09-05 | 2022-12-13 | 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) | 软件安全漏洞模式数据库构建与软件渗透测试方法 |
CN115470126B (zh) * | 2022-09-05 | 2023-06-20 | 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) | 软件安全漏洞模式数据库构建与软件渗透测试方法 |
CN117294472A (zh) * | 2023-09-05 | 2023-12-26 | 四川大学 | 一种针对可公开获取漏洞的协同利用预测方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114676435A (zh) | 一种基于知识图谱的软件漏洞可利用性预测方法 | |
CN113434357B (zh) | 基于序列预测的日志异常检测方法及装置 | |
CN113312447A (zh) | 基于概率标签估计的半监督日志异常检测方法 | |
Dong et al. | Towards interpreting recurrent neural networks through probabilistic abstraction | |
CN112966100B (zh) | 一种数据分类分级模型的训练方法、装置及电子设备 | |
CN113010683B (zh) | 基于改进图注意力网络的实体关系识别方法及系统 | |
US20210201270A1 (en) | Machine learning-based change control systems | |
CN115277587B (zh) | 网络流量识别方法、装置、设备及介质 | |
CN115983274B (zh) | 一种基于两阶段标签校正的噪声事件抽取方法 | |
CN112819024B (zh) | 模型处理方法、用户数据处理方法及装置、计算机设备 | |
CN111709225B (zh) | 一种事件因果关系判别方法、装置和计算机可读存储介质 | |
Jeon et al. | BlackEye: automatic IP blacklisting using machine learning from security logs | |
Zhang et al. | An intrusion detection method based on stacked sparse autoencoder and improved gaussian mixture model | |
Xu et al. | TLS-WGAN-GP: A generative adversarial network model for data-driven fault root cause location | |
CN117236698A (zh) | 基于图神经网络的产业链风险评估模型、方法及介质 | |
CN112001484A (zh) | 一种基于多任务深度学习的安全缺陷报告预测方法 | |
Yi et al. | Trust but verify: an information-theoretic explanation for the adversarial fragility of machine learning systems, and a general defense against adversarial attacks | |
US11727109B2 (en) | Identifying adversarial attacks with advanced subset scanning | |
CN114579761A (zh) | 信息安全知识实体关系连接预测方法、系统及介质 | |
Visalli et al. | ESG Data Collection with Adaptive AI. | |
Chen et al. | Efficient and interpretable SRU combined with TabNet for network intrusion detection in the big data environment | |
Sameki et al. | BUOCA: budget-optimized crowd worker allocation | |
Althar et al. | BERT-Based Secure and Smart Management System for Processing Software Development Requirements from Security Perspective | |
Nakajima et al. | Ai extension of square data quality model | |
CN117725597B (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 |