CN116955768A - 漏洞推荐方法、装置、设备及存储介质 - Google Patents
漏洞推荐方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116955768A CN116955768A CN202211264046.5A CN202211264046A CN116955768A CN 116955768 A CN116955768 A CN 116955768A CN 202211264046 A CN202211264046 A CN 202211264046A CN 116955768 A CN116955768 A CN 116955768A
- Authority
- CN
- China
- Prior art keywords
- vulnerability
- user
- similarity
- vulnerabilities
- determining
- 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
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000003860 storage Methods 0.000 title claims abstract description 12
- 230000003993 interaction Effects 0.000 claims abstract description 76
- 238000010586 diagram Methods 0.000 claims abstract description 35
- 239000013598 vector Substances 0.000 claims description 37
- 239000011159 matrix material Substances 0.000 claims description 26
- 238000005259 measurement Methods 0.000 claims description 13
- 238000001914 filtration Methods 0.000 claims description 12
- 238000013528 artificial neural network Methods 0.000 claims description 9
- 238000009826 distribution Methods 0.000 claims description 7
- 238000012549 training Methods 0.000 claims description 7
- 238000011156 evaluation Methods 0.000 claims description 5
- 238000007781 pre-processing Methods 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 230000002776 aggregation Effects 0.000 description 8
- 238000004220 aggregation Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000010276 construction Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 239000004973 liquid crystal related substance Substances 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 238000006116 polymerization reaction Methods 0.000 description 3
- 238000013139 quantization Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000012502 risk assessment Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000012038 vulnerability analysis Methods 0.000 description 2
- 241000721662 Juniperus Species 0.000 description 1
- 241001201614 Prays Species 0.000 description 1
- 101100042631 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SIN3 gene Proteins 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000002238 attenuated effect Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000011524 similarity measure Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于计算机领域,公开了一种漏洞推荐方法、装置、设备及存储介质。该方法包括:根据目标用户的漏洞兴趣信息和预设漏洞库中各漏洞之间的漏洞相似度选取第一漏洞集合;确定目标用户与交集用户之间的用户相似度,并根据用户相似度从交集用户对应的漏洞选取第二漏洞集合,交集用户与目标用户之间存在至少一个共同漏洞;构建目标用户与用户兴趣漏洞之间的交互关系图,并基于交互关系图确定第三漏洞集合;根据第一漏洞集合、第二漏洞集合以及第三漏洞集合确定推荐漏洞。相对于现有的根据用户的偏好为用户推荐漏洞的方式,本发明上述方式能够在进行漏洞推荐时考虑漏洞的众多特征,提高漏洞推荐效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种漏洞推荐方法、装置、设备及存储介质。
背景技术
推荐算法的诞生是解决信息过载问题的有效手段,其根据用户的喜好、兴趣和交互行为,分析推荐用户真正感兴趣的信息。推荐算法的发展主要有三个阶段:经典模型、神经模型和基于图的模型。经典模型又可以被分为基于内容的推荐算法、基于知识的推荐算法和基于模型的算法等等,这些方法诞生时间早,应用广泛,可解释性强,然而也面临着用户行为复杂度提升、数据输入困难等种种挑战。在机器学习和数据挖掘技术的影响下,基于神经网络的推荐模型也随之诞生。然而,这些方法仍旧十分有限,因此,如何高效的进行漏洞推荐成为了亟待解决的技术问题。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提供了一种漏洞推荐方法、装置、设备及存储介质,旨在解决现有技术漏洞推荐效率不高的技术问题。
为实现上述目的,本发明提供了一种漏洞推荐方法,所述方法包括以下步骤:
根据目标用户的漏洞兴趣信息和预设漏洞库中各漏洞之间的漏洞相似度选取第一漏洞集合;
确定目标用户与交集用户之间的用户相似度,并根据所述用户相似度从所述交集用户对应的漏洞选取第二漏洞集合,所述交集用户与所述目标用户之间存在至少一个共同漏洞;
构建所述目标用户与用户兴趣漏洞之间的交互关系图,并基于所述交互关系图确定第三漏洞集合;
根据所述第一漏洞集合、所述第二漏洞集合以及所述第三漏洞集合确定推荐漏洞。
可选地,所述根据目标用户的漏洞兴趣信息和预设漏洞库中各漏洞之间的漏洞相似度选取第一漏洞集合的步骤之前,还包括:
根据漏洞信息中的漏洞描述文本生成漏洞词向量,并基于所述漏洞词向量确定各个漏洞之间的文本相似度;
根据所述漏洞信息中的漏洞特征信息确定各个漏洞之间的特征相似度,所述漏洞特征信息包括漏洞的数值特征、产品特征以及类型特征中的至少一种;
根据所述文本相似度和所述特征相似度确定各个漏洞之间的相似度并根据所述各个漏洞之间的相似度生成预设漏洞库。
可选地,所述根据所述漏洞信息中的漏洞特征信息确定各个漏洞之间的特征相似度的步骤,包括:
根据所述产品特征和预设相似度衡量算法确定各个漏洞之间的产品特征相似度;
根据所述数值特征和预设距离衡量算法确定各个漏洞之间的数值特征相似度;
根据所述类型特征和预设层析结构树关系算法确定各个漏洞之间的类型特征相似度;
根据所述产品特征相似度、所述数值特征相似度、所述类型特征相似度和预设权重分配信息确定各个漏洞之间的特征相似度。
可选地,所述根据漏洞信息中的漏洞描述文本生成漏洞词向量,并基于所述漏洞词向量确定各个漏洞之间的文本相似度的步骤,包括:
对漏洞信息中的漏洞描述文本进行预处理,获得漏洞描述词序列;
根据所述漏洞描述词序列确定漏洞词向量;
对所述漏洞词向量进行语义训练,得到漏洞描述文本的语义特征;
根据所述语义特征确定各个漏洞之间的文本相似度。
可选地,所述构建所述目标用户与用户兴趣漏洞之间的交互关系图,并基于所述交互关系图确定第三漏洞集合的步骤,包括:
根据所述目标用户的漏洞兴趣信息和用户兴趣漏洞构建交互关系图;
根据图神经网络协同过滤算法和所述交互关系图确定漏洞交互链路分值;
根据所述漏洞交互链路分值确定第三漏洞集合。
可选地,所述确定目标用户与交集用户之间的用户相似度,并根据所述用户相似度从所述交集用户对应的漏洞选取第二漏洞集合的步骤,包括:
根据目标用户的漏洞兴趣信息和交集用户对应的漏洞构建漏洞评价矩阵;
根据所述漏洞评价矩阵确定漏洞关联集合;
根据所述漏洞关联集合确定目标用户与交集用户之间的用户相似度,并将所述用户相似度作为所述目标用户与交集用户对应的漏洞之间的相似度;
根据所述用户相似度从所述交集用户对应的漏洞中选取第二漏洞集合。
可选地,所述根据所述第一漏洞集合、所述第二漏洞集合以及所述第三漏洞集合确定推荐漏洞的步骤,包括:
根据所述第一漏洞集合、所述第二漏洞集合以及所述第三漏洞集合确定目标漏洞;
确定所述目标漏洞的平均相似度;
根据所述平均相似度确定推荐漏洞。
此外,为实现上述目的,本发明还提供一种漏洞推荐装置,所述装置包括:
第一漏洞集合确定模块,用于根据目标用户的漏洞兴趣信息和预设漏洞库中各漏洞之间的漏洞相似度选取第一漏洞集合;
第二漏洞集合确定模块,用于确定目标用户与交集用户之间的用户相似度,并根据所述用户相似度从所述交集用户对应的漏洞选取第二漏洞集合,所述交集用户与所述目标用户之间存在至少一个共同漏洞;
第三漏洞集合确定模块,用于构建所述目标用户与用户兴趣漏洞之间的交互关系图,并基于所述交互关系图确定第三漏洞集合;
推荐漏洞确定模块,用于根据所述第一漏洞集合、所述第二漏洞集合以及所述第三漏洞集合确定推荐漏洞。
此外,为实现上述目的,本发明还提出一种漏洞推荐设备,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的漏洞推荐程序,所述漏洞推荐程序配置为实现如上文所述的漏洞推荐方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有漏洞推荐程序,所述漏洞推荐程序被处理器执行时实现如上文所述的漏洞推荐方法的步骤。
本发明根据目标用户的漏洞兴趣信息和预设漏洞库中各漏洞之间的漏洞相似度选取第一漏洞集合;确定目标用户与交集用户之间的用户相似度,并根据用户相似度从交集用户对应的漏洞选取第二漏洞集合,交集用户与目标用户之间存在至少一个共同漏洞;构建目标用户与用户兴趣漏洞之间的交互关系图,并基于交互关系图确定第三漏洞集合;根据第一漏洞集合、第二漏洞集合以及第三漏洞集合确定推荐漏洞。相对于现有的根据用户的偏好为用户推荐漏洞的方式,本发明上述方式能够在进行漏洞推荐时考虑漏洞的众多特征,提高漏洞推荐效率。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的漏洞推荐设备的结构示意图;
图2为本发明漏洞推荐方法第一实施例的流程示意图;
图3为本发明漏洞推荐方法第二实施例的流程示意图;
图4为本发明漏洞推荐方法第三实施例的流程示意图;
图5为本发明漏洞推荐方法一实施例的交互关系图和高阶连通性示意图;
图6为本发明漏洞推荐装置第一实施例的结构框图。
具体实施方式
应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的漏洞推荐设备结构示意图。
如图1所示,该漏洞推荐设备可以包括:处理器1001,例如中央处理器(CentralProcessing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(Wireless-Fidelity,WI-FI)接口)。存储器1005可以是高速的随机存取存储器(RandomAccess Memory,RAM),也可以是稳定的非易失性存储器(Non-Volatile Memory,NVM),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的结构并不构成对漏洞推荐设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及漏洞推荐程序。
在图1所示的漏洞推荐设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明漏洞推荐设备中的处理器1001、存储器1005可以设置在漏洞推荐设备中,所述漏洞推荐设备通过处理器1001调用存储器1005中存储的漏洞推荐程序,并执行本发明实施例提供的漏洞推荐方法。
基于上述漏洞推荐设备,本发明实施例提供了一种漏洞推荐方法,参照图2,图2为本发明漏洞推荐方法第一实施例的流程示意图。
本实施例中,所述漏洞推荐方法包括以下步骤:
步骤S10:根据目标用户的漏洞兴趣信息和预设漏洞库中各漏洞之间的漏洞相似度选取第一漏洞集合。
需要说明的是,本实施例的执行主体可以是一种具有数据处理、网络通信以及程序运行功能的计算服务设备,例如手机、平板电脑、个人电脑等,或者是一种能够实现上述功能的电子设备或漏洞推荐程序。以下以所述漏洞推荐程序为例,对本实施例及下述各实施例进行说明。
需要说明的是,所述目标用户可以包括个人用户和产品类用户,所述个人用户可以是漏洞爱好者、漏洞挖掘专家或者漏洞安全员等关注漏洞的普通用户。所述产品类用户可以是各类软硬件产品的开发人员、维护人员和产品经理等关心产品漏洞的用户。所述漏洞兴趣信息可以是目标用户感兴趣的漏洞的相关信息。可以从所述目标用户对漏洞的关注、点赞、评论、转发或目标用户在开发、测试过程中历史出现过得与漏洞得到。产品类用户的漏洞兴趣信息主要包括曾经出现过的漏洞。于个人用户,所述漏洞兴趣信息可以是个人用户关注、收藏、转发、评论、点赞过的漏洞。所述预设漏洞库可以是预先根据收集的漏洞信息构建的漏洞集合,其中还包括各个漏洞之间的相似度。所述第一漏洞集合可以是根据所述漏洞兴趣信息从所述预设漏洞库中选取的与漏洞兴趣信息中的漏洞相似度较高的漏洞。例如,选取预设漏洞库中与漏洞兴趣信息中的漏洞的相似度大于90%的漏洞组成所述第一漏洞集合,或选取预设漏洞库中与漏洞兴趣信息中的漏洞相似度排名前十的漏洞组成所述第一漏洞集合。
需要说明的是,所述根据目标用户的漏洞兴趣信息和预设漏洞库中各漏洞之间的漏洞相似度选取第一漏洞集合可以是从预设漏洞库中选取与所述漏洞兴趣信息中漏洞的相似度大于预设相似度阈值的漏洞作为第一漏洞集合,
所述预设相似度阈值可以是预先设置的阈值,用于从预设漏洞库中选取与所述漏洞兴趣信息中漏洞的相似度较高的漏洞。所述从预设漏洞库中选取与所述漏洞兴趣信息中漏洞的相似度大于预设相似度阈值的漏洞作为第一漏洞可以是先判断目标用户是个人用户还是产品类用户,具体判断方法可以是获取用户的身份信息,根据用户的身份信息判断用户是否为各类软硬件产品的开发人员、维护人员或产品经理等关心产品漏洞的用户。若是,则判定所述用户为产品类用户,若不是,则可判定为个人用户。
若是产品类用户,则对目标用户出现过的每一个漏洞分别与预设漏洞库中的漏洞进行相似度计算,具体可参照第二实施例中计算漏洞相似度的方式,得到每个漏洞最相似的预设数量个漏洞和对应的相似值,或者是获取相似度大于预设相似度阈值的漏洞和对应的相似值,并以列表形式进行汇总。若目标用户对应的漏洞存在所述预设漏洞库中,则可直接获取预设漏洞库中与所述目标用户对应的漏洞最相似的预设数量个漏洞,或者是获取相似度大于预设相似度阈值的漏洞,由于目标用户可能对应多个漏洞,每个漏洞的相似结果可能出现重复漏洞。针对列表中重复出现的漏洞,其相似值以平均值作为其最终结果。
例如,产品类用户出现过[A,B,C]三个漏洞,每个漏洞从预设数据库中选取与其相似度大于预设相似度阈值的漏洞,A漏洞对应的有D、F、Y、T...,相似度分别为60%,70%,80%,66%;B漏洞对应的有K、F、Y、G...相似度分别为90%,70%,80%,70%;C漏洞对应的有M、F、D、T...,相似度分别为60%,70%,80%,70%;则漏洞D的相似度为(60%+0+80%)/3=46.66%。漏洞F的相似度为(70%+0+0)/3=23.33%。其他的漏洞的相似度也依据上述方式计算其平均值,根据计算的相似度的最终结果选取10个相似度最高的漏洞作为第一漏洞。也可以是选取计算结果中相似度大于预设相似度阈值的漏洞作为第一漏洞。
若是个人用户,若个人用户的漏洞交互信息中没有曾交互过的漏洞,则根据预设漏洞库中漏洞类型和受影响的产品合集两项特征,将其出现频率最高的选项整理成漏洞标签。个人用户在注册时可以选择若干个漏洞类型标签和若干个漏洞产品标签,例如3-5个漏洞类型标签和1-3个漏洞产品标签,这些信息将代表其个人漏洞兴趣。再根据用户选取的漏洞类型标签和漏洞产品标签确定个人用户感兴趣的漏洞。若个人用户的漏洞交互信息中存在用户曾交互过的漏洞,则将用户曾交互过的漏洞作为用户感兴趣的漏洞,进而参照上述产品类用户中从预设漏洞库中选取相似度大于预设相似度阈值的漏洞作为第一漏洞的方式选取个人用户对应的第一漏洞。
步骤S20:确定目标用户与交集用户之间的用户相似度,并根据所述用户相似度从所述交集用户对应的漏洞选取第二漏洞集合,所述交集用户与所述目标用户之间存在至少一个共同漏洞。
需要说明的是,所述预设漏洞库中还可以包括各个用户的漏洞兴趣信息,所述交集用户可以是交集用户的漏洞兴趣信息中的漏洞与目标用户的漏洞兴趣信息中的漏洞存在至少一个相同的漏洞。例如,目标用户的漏洞兴趣信息包括A和B漏洞,则漏洞兴趣信息包括A或B漏洞的用户即为交集用户。用户相似度可以是目标用户与交集用户的相似度,例如,目标用户的漏洞兴趣信息包括C和D漏洞,交集用户1的漏洞兴趣信息包括漏洞C和D,交集用户2的漏洞兴趣信息包括漏洞C、T和Y,则目标用户与交集用户1的用户相似度为100%,目标用户与交集用户2的用户相似度为1/2=50%。根据所述用户相似度从所述交集用户对应的漏洞选取第二漏洞集合可以是将交集用户中与目标用户的用户相似度最大的交集用户的漏洞兴趣信息中的漏洞作为第二漏洞集合。
进一步的,为了提高漏洞推荐的效率,所述步骤S20包括:根据目标用户的漏洞兴趣信息和交集用户对应的漏洞构建漏洞评价矩阵;根据所述漏洞评价矩阵确定漏洞关联集合;根据所述漏洞关联集合确定目标用户与交集用户之间的用户相似度,并将所述用户相似度作为所述目标用户与交集用户对应的漏洞之间的相似度;根据所述用户相似度从所述交集用户对应的漏洞中选取第二漏洞集合。
在具体实施中:漏洞推荐程序先进行数据处理,根据预设漏洞库中的信息和目标用户的漏洞兴趣信息填充用户-漏洞评价矩阵(UI矩阵),生成用户评分表与漏洞id表。具体可以是:对于产品类用户,漏洞兴趣信息可以包括用户曾出现过的漏洞,将UI矩阵中的数据值,以用户出现过某个漏洞用1表示,未出现过用0表示,并将UI矩阵设定为用户评分表。同时,给漏洞编号生成漏洞id表。
对于个人类用户,提取其与漏洞的交互记录数据并进行量化处理。针对每个用户-漏洞组合,将关注记5分,收藏记4分、转发记3分、评论过2分、点赞记1分,分数累计最高10分,并将总分填入UI矩阵的对应位置。个人用户的用户评分表是将UI矩阵进行归一化处理之后得到的。个人类用户与产品类用户采取一样的漏洞id表。其中,上述的计分规则可根据需要自适应设备,本实施例中只是为了说明并不代表具体限定。
然后将用户评分表数据转换为userDict,其表示某个用户的所有漏洞评分集合,具体形式为:
{'用户1':[(漏洞1,1),(漏洞2,1)...],'用户2':[...]...}
其次将用户评分表数据转换为ItemUser,即漏洞关联集合,其表示某个漏洞参与评分的所有用户的集合,具体形式为:
{'漏洞1':[用户1,用户2,...],'漏洞2':[用户3,用户4,...]...}
计算所有用户与目标用户的相似度,具体可以是:先根据ItemUser找出所有出现漏洞与目标用户有交集的用户,其次对这些用户循环计算与目标用户的相似度,具体计算方式为:根据userDict获取交集用户中每位用户与目标用户的漏洞并集,表示格式为:{'漏洞ID',[交集用户的评分,目标的评分]},所述评分可以是上述用户-漏洞评价矩阵中用户对应的各个漏洞的评分,没有评分记为0分。据此并集,计算目标用户与交集用户的余弦相似度,余弦相似度越大说明二者越相似。根据用户相似度生成推荐列表。交集用户和目标用户的相似值被赋予每一个交集用户的每个漏洞上,并将重复出现的漏洞的相似值累加。所有漏洞以相似值降序生成推荐列表。基于用户的协同过滤推荐会根据推荐列表中相似值最高的预设数量个漏洞构建第二漏洞集合,预设数量可自定义设置。
应理解的是,针对产品类用户,本实施例认为出现相同漏洞的产品在设计和维护中可能还会出现相同的漏洞和风险,将这些漏洞推荐给用户可以帮助其在未来的设计中更早的考虑可能的漏洞安全问题。针对个人类用户,本实施例认为具有重合漏洞兴趣的相似用户将来可能还会有相同的漏洞兴趣,将这些漏洞推荐给用户可以更准确地满足用户的漏洞偏好。
步骤S30:构建所述目标用户与用户兴趣漏洞之间的交互关系图,并基于所述交互关系图确定第三漏洞集合。
需要说明的是,所述用户兴趣漏洞可以包括预设漏洞库中各个用户的感兴趣漏洞。所述交互关系图可以是构建的各个用户的感兴趣漏洞之间的关联关系图。所述基于所述交互关系图确定第三漏洞集合可以是基于所述交互关系图确定在交互关系图中的漏洞与目标用户的漏洞兴趣信息中的漏洞的交互链路分值,根据交互链路分值确定第三漏洞集合。
步骤S40:根据所述第一漏洞集合、所述第二漏洞集合以及所述第三漏洞集合确定推荐漏洞。
需要说明的是,所述根据所述第一漏洞集合、所述第二漏洞集合以及所述第三漏洞集合确定推荐漏洞可以是对所述第一漏洞集合、所述第二漏洞集合和所述第三漏洞集合中的漏洞按照与目标用户感兴趣的漏洞之间的相似度进行排序,从排序结果中选取相似度较大的预设数量个漏洞作为推荐漏洞。所述预设数量可以是用户预先设置的选取的推荐漏洞的个数。
进一步的,为了使推荐的漏洞符合用户期望,所述步骤S40,可包括:根据所述第一漏洞集合、所述第二漏洞集合和所述第三漏洞集合确定目标漏洞;确定所述目标漏洞的平均相似度;根据所述平均相似度确定推荐漏洞。
需要说明的是,由于所述第一漏洞集合、所述第二漏洞集合和所述第三漏洞集合中可能包括重复的漏洞,对于重复出现的漏洞,可认为其与目标用户感兴趣的漏洞的相似度较高,因此,本实施例中计算所述第一漏洞集合、所述第二漏洞集合和所述第三漏洞集合中各个漏洞的平均相似度用于漏洞推荐。所述目标漏洞可以是所述第一漏洞集合、所述第二漏洞集合和所述第三漏洞集合中包含的漏洞。所述确定所述目标漏洞的平均相似度;根据所述平均相似度确定推荐漏洞可以是对所述目标漏洞中的各个漏洞分别计算其平均相似度,根据平均相似度从目标漏洞中选取推荐漏洞。例如,目标用户对[A,B,C]三个漏洞感兴趣,第一漏洞集合中包括根据[A,B,C]生成的10个漏洞,每个漏洞存在一个相似值,第二漏洞集合中包括10个漏洞,第三漏洞集合中包括10个漏洞,但是总共并不一定是30个漏洞,因为所述第一漏洞集合、所述第二漏洞集合和所述第三漏洞集合中可能存在重复的漏洞。假设第一漏洞集合中包括D漏洞,相似值d1,第二漏洞集合中也包括D漏洞,相似值d2,第三漏洞集合中不包括D漏洞,相似值0,那最终D漏洞的相似值就是(d1+d2+0)/3。最终可能的所有推荐是小于30个的,假设是25个,那么可选取其中相似度大于预设相似度阈值的漏洞作为推荐漏洞。所述预设相似度阈值可以是用户预先设置的相似度阈值。
本实施例根据目标用户的漏洞兴趣信息和预设漏洞库中各漏洞之间的漏洞相似度选取第一漏洞集合;确定目标用户与交集用户之间的用户相似度,并根据用户相似度从交集用户对应的漏洞选取第二漏洞集合,交集用户与目标用户之间存在至少一个共同漏洞;构建目标用户与用户兴趣漏洞之间的交互关系图,并基于交互关系图确定第三漏洞集合;根据第一漏洞集合、第二漏洞集合以及第三漏洞集合确定推荐漏洞。相对于现有的根据用户的偏好为用户推荐漏洞的方式,本实施例上述方式能够在进行漏洞推荐时考虑漏洞的众多特征,提高漏洞推荐效率。
参考图3,图3为本发明漏洞推荐方法第二实施例的流程示意图。
基于上述第一实施例,在本实施例中,所述步骤S10之前,还包括:
步骤S001:根据漏洞信息中的漏洞描述文本生成漏洞词向量,并基于所述漏洞词向量确定各个漏洞之间的文本相似度。
需要说明的是,所述漏洞信息可以是从国家信息漏洞安全共享平台、国家漏洞数据库和国家信息安全漏洞库数据库中收集的漏洞的相关信息,可包括漏洞中文描述文本、漏洞严重性、漏洞类型、漏洞的六项CVSSv2基本指标、漏洞的三项CVSSv2基本评分和受漏洞影响的产品集合等特征。
其中,国家信息漏洞安全共享平台(China National Vulnerability Database,CNVD)是由国家计算机网络应急技术处理协调中心(中文简称国家互联网应急中心,英文简称CNCERT)联合国内重要信息系统单位、基础电信运营商、网络安全厂商、软件厂商和互联网企业建立的国家网络安全漏洞库。
国家信息安全漏洞库(China National Vulnerability Database ofInformation Security,CNNVD)于2009年10月18日正式成立,是中国信息安全测评中心为切实履行漏洞分析和风险评估的职能,负责建设运维的国家信息安全漏洞库,面向国家、行业和公众提供灵活多样的信息安全数据服务,为我国信息安全保障提供基础服务。CNNVD是中国信息安全测评中心为切实履行漏洞分析和风险评估职能,在国家专项经费支持下,负责建设运维的国家级信息安全漏洞数据管理平台,旨在为我国信息安全保障提供服务。
需要说明的是,所述根据漏洞信息中的漏洞描述文本确定各个漏洞之间的文本相似度可以是确定各个漏洞的漏洞描述文本之间的相似度。
进一步的,为了准确的确定各个漏洞之间的文本相似度,提高漏洞推荐的效率,所述步骤S001,可包括:对漏洞信息中的漏洞描述文本进行预处理,获得漏洞描述词序列;根据所述漏洞描述词序列确定漏洞词向量;对所述漏洞词向量进行语义训练,得到漏洞描述文本的语义特征;根据所述语义特征确定各个漏洞之间的文本相似度。
需要说明的是,所述对漏洞信息中的漏洞描述文本进行预处理可以是对所述漏洞描述文本进行jieba分词、停止词过滤等处理,获得漏洞描述词序列。所述根据所述漏洞描述词序列确定漏洞词向量可以是采用GloVe词嵌入技术对漏洞描述词序列进行训练,调用中文维基百科语料库中训练好的词向量,形成漏洞描述文本的漏洞词向量。对所述漏洞词向量进行语义训练,得到漏洞描述文本的语义特征可以是采用BIGRU深度学习自编码器对输入的漏洞词向量进行训练,获得包含语义特征的词向量,进而根据包含语义特征的词向量确定各个漏洞的之间的文本相似度。所述根据包含语义特征的词向量确定各个漏洞的之间的文本相似度可以是:对包含语义特征的词向量进行压平处理,获得压平后的词向量,进而根据以下公式计算两个漏洞之间的文本相似度:
其中,A=(A1,A2,……,An)和B=(B1,B2,……,Bn)分别为漏洞A和漏洞B经过BIGRU自编码器后再压平处理的词向量,n为压平后向量的长度。该压平操作是将矩阵展平为向量,即从第一行开始将矩阵的每行首尾相接,压平后形成的向量长度就是原始矩阵的元素个数。SimDescription(A,B)用于表征漏洞A和B之间的文本相似度。
应理解的是,这样做的原因一是由于各类自编码器编码后输出的词向量维度和大小不同,二是如果直接用矩阵形式的数据做余弦相似计算,得到的结果还是一个矩阵。因此针对高维的数据需要进行压平后再进行余弦相似度计算。
步骤S002根据所述漏洞信息中的漏洞特征信息确定各个漏洞之间的特征相似度,所述漏洞特征信息包括漏洞的数值特征、产品特征以及类型特征中的至少一种。
需要说明的是,所述漏洞特征信息可以包括收集的漏洞信息中除漏洞描述文本外的漏洞相关信息,包括漏洞严重性、漏洞类型、漏洞的六项CVSSv2基本指标、漏洞的三项CVSSv2基本评分和受漏洞影响的产品集合等特征。所述根据所述漏洞信息中的漏洞特征信息确定各个漏洞之间的特征相似度可以是根据各个漏洞的上述特征确定各个漏洞之间的特征相似度。
进一步的,为了准确的确定各个漏洞之间的特征相似度,提高漏洞推荐的效率,所述漏洞特征信息包括数值特征、产品特征和类型特征,所述步骤S002,可包括:根据所述产品特征和预设相似度衡量算法确定各个漏洞之间的产品特征相似度;根据所述数值特征和预设距离衡量算法确定各个漏洞之间的数值特征相似度;根据所述类型特征和预设层析结构树关系算法确定各个漏洞之间的类型特征相似度;根据所述产品特征相似度、所述数值特征相似度、所述类型特征相似度和预设权重分配信息确定各个漏洞之间的特征相似度。
需要说明的是,所述漏洞特征信息包括数值特征、产品特征和类型特征。其中,所述产品特征可以是漏洞影响的产品集合。所述预设相似度衡量算法可以是Jaccard相似度算法。所述根据所述产品特征确定各个漏洞之间的产品特征相似度可以是采用Jaccard相似度衡量产品集合的相似性,计算公式如下:
其中,CPE1和CPE2分别指漏洞1和漏洞2相对应的受影响产品集合,所述SimFeature product()用于表征产品特征相似度。
其中,漏洞产品标签名称与编号对应关系可以是参照下表1。表1为漏洞产品标签名称与编号对应关系表,可根据表1和各个漏洞的产品标签确定漏洞的产品特征:
表1-漏洞产品标签名称与编号对应关系表
编号 | 产品标签 | 编号 | 产品标签 | 编号 | 产品标签 | 编号 | 产品标签 |
1 | Microsoft | 17 | Foxitsoftware | 33 | Vmware | 49 | Trendmicro |
2 | Apple | 18 | Qualcomm | 34 | Ffmpeg | 50 | Tcpdump |
3 | Oracle | 19 | Siemens | 35 | Symantec | 51 | Asus |
4 | 20 | Novell | 36 | Openstack | 52 | Openssl | |
5 | Adobe | 21 | Imagemagick | 37 | Moxa | 53 | Lenovo |
6 | Ibm | 22 | Tp-link | 38 | Drupal | 54 | Sma |
7 | Redhat | 23 | Emc | 39 | Irfanview | 55 | Libtiff |
8 | Linux | 24 | Gnu | 40 | Nvidia | 56 | Mediawiki |
9 | Mozilla | 25 | Wireshark | 41 | Mcafee | 57 | Owncloud |
10 | Debian | 26 | Suse | 42 | Intel | 58 | Atlassian |
11 | Hp | 27 | Juniper | 43 | Fortinet | 59 | Joomla |
12 | Cisco | 28 | Fedoraproject | 44 | Advantech | 60 | Mysql |
13 | Canonical | 29 | D-link | 45 | Phpmyadmin | 61 | Wordpress |
14 | Opensuse | 30 | Php | 46 | Dell | 62 | 其他 |
15 | Huawei | 31 | Moodle | 47 | Cybozu | ||
16 | Apache | 32 | Sun | 48 | F5 |
需要说明的是,漏洞类型可以是采用NVD库中的CWE-id信息对漏洞类型进行表示。CWE-id就是以一个数字代码代表的各种漏洞类型,表征了各种漏洞类型之间的层级关系。NVD数据库记录了CWE-id之间的层级关系,并在不断更新。所述类型特征可以是漏洞的CWE-id特征,所述预设层析结构树关系算法可以是NVD数据库介绍的层次结构树关系算法。
根据所述类型特征确定各个漏洞之间的类型特征相似度可以是采用NVD数据库介绍的层次结构树的关系衡量其相似性,具体公式可以是:
其中,Depth函数表示该CWE-id在层次结构树中的深度,LCA函数表示两个CWE-id的最近共同祖先。SimFeature type用于表征漏洞CWE1和漏洞CWE2之间的类型特征相似度。
其中,漏洞类型标签名称与编号对应关系可以是参照下表2。表2为漏洞类型标签名称与编号对应关系表,可根据表2和各个漏洞的类型标签确定漏洞的类型特征:
表2-漏洞类型标签名称与编号对应关系表
所述数值特征可以是能够用数值表征的漏洞特征,包括六项CVSSv2漏洞基本指标、三项CVSSv2漏洞基本分数,CNVD和CNNVD中的漏洞严重性共11项漏洞特征。所述预设距离衡量算法可以是欧几里得距离衡量算法,针对上述数值特征,可采用欧几里得距离衡量其绝对差异,为了将相似度表示在(0,1)范围内,采用如下计算方式:
其中,SimFeature mmerical用于表征漏洞的数值特征相似度,Feature1用于表征漏洞1的某类数值特征,Feature2用于表征漏洞2的某类数值特征。
其中,六项CVSSv2漏洞基本指标可参照下表3,表3为漏洞的六项CVSSv2基本指标的名称、结果和赋分。根据表3中的信息,计算得到三项CVSSv2基本评分,分别是影响力分数Impact、可利用性分数Exploitability和基本分数BaseScore。具体公式可以是:
Impact=10.41*(1-(1-CI)*(1-II)*(1-AI))
Exploitability=20*AV*AC*AU
BaseScore=(0.6*Impact+0.4*Exploitability-1.5)*f(Impact)
表3-漏洞的六项CVSSv2基本指标的名称、结果和赋分表
应理解的是,由于基本评分的范围是0~10,所以实际使用时需要进行归一化处理。
需要说明的是,在本实施例中采用了CNVD和CNNVD中对漏洞的严重性评级,但两者的评级的量级和指标不一致。因此,分别对两个数据库的不同严重性等级,将处于同一等级的漏洞的CVSSv2-BaseScore的平均值作为该等级的量化值。表4记录了整理后的漏洞严重性评级量化指标:
表4-漏洞严重性评级量化指标
需要说明的是,所述根据所述数值特征确定各个漏洞之间的数值特征相似度可以是根据上述特征和公式,分别计算各个漏洞之间上述不同特征的数值特征相似度。
需要说明的是,所述根据所述产品特征相似度、所述数值特征相似度、所述类型特征相似度和预设权重分配信息确定各个漏洞之间的特征相似度可以是根据产品特征相似度、所述数值特征相似度和所述类型特征相似度以及为其分配的权重计算各个漏洞之间的特征相似度,具体可以是使用以下公式计算各个漏洞之间的特征相似度:
其中,SimFeature(V1,V2)用于表征漏洞V1和漏洞V2之间的特征相似度,W1用于表征SimFeature type即类型特征相似度对应的权重,W2用于表征SimFeature product即产品特征相似度对应的权重,Wi用于表征SimFeature mmerical即数值特征相似度中第i和数值特征对应的权重,数值特征一共有11个,因此,i的取值从3到13。其中,特征相似度权重分配表可参照下表5:
表5-特征相似度权重分配表
步骤S003:根据所述文本相似度和所述特征相似度确定各个漏洞之间的相似度并根据所述各个漏洞之间的相似度生成预设漏洞库。
需要说明的是,所述根据所述文本相似度和所述特征相似度确定各个漏洞之间的相似度可以是通过以下公式计算各个漏洞之间的相似度:
SimVulnerability(V1,V2)=0.36·SimDescription(V1,V2)+0.64·SimFeature(V1,V2)
其中,Sim Vulnerability用于表征漏洞V1和漏洞V2的相似度,
应理解的是,对于收集的各个漏洞,均需要通过上述方式确定各个漏洞两两之间的相似度。
需要说明的是,所述根据所述各个漏洞之间的相似度生成预设漏洞库可以是根据各个漏洞的漏洞描述信息和两两之间的相似度构建预设漏洞库。
本实施例根据漏洞信息中的漏洞描述文本生成漏洞词向量,并基于所述漏洞词向量确定各个漏洞之间的文本相似度;根据所述漏洞信息中的漏洞特征信息确定各个漏洞之间的特征相似度,所述漏洞特征信息包括漏洞的数值特征、产品特征以及类型特征中的至少一种;根据所述文本相似度和所述特征相似度确定各个漏洞之间的相似度并根据所述各个漏洞之间的相似度生成预设漏洞库。能够在后续为用户推荐漏洞时,从预设漏洞库中选取推荐漏洞,进而提高漏洞推荐的效率。在进行漏洞之间的相似度计算时,通过考虑漏洞的众多特征,使得相似度计算的结果更加准确。
参考图4,图4为本发明漏洞推荐方法第三实施例的流程示意图。
基于上述各实施例,在本实施例中,所述步骤S30,包括:
步骤301:根据所述目标用户的漏洞兴趣信息和用户兴趣漏洞构建交互关系图。
需要说明的是,参照图5,图5为本发明漏洞推荐方法一实施例的交互关系图和高阶连通性示意图;所述交互关系图可以是图5中的左边漏洞与用户的对应关系图,其中u1-u3用于表征3位用户,v1-v5用于表征5个漏洞
步骤S302:根据图神经网络协同过滤算法和所述交互关系图确定漏洞交互链路分值。
步骤S303:根据所述漏洞交互链路分值确定第三漏洞集合。
需要说明的是,所述根据图神经网络协同过滤算法和所述交互关系图确定漏洞交互链路分值可以是基于图神经网络的协同过滤推荐算法将漏洞推荐问题转化为二部图中交互链路的预测问题。基于图神经网络的协同过滤推荐算法通过显式建模用户与漏洞之间的高阶连通性来进行预测,并将与目标用户交互预测可能性大的漏洞推荐给用户。其中,图5中的右边即为漏洞与用户的高阶连通性示意图。l用于表征能到达的路径长度。
在具体实施中:绘制用户-交互关系图,可参照图5,令G(U,V,T)表示用户-交互关系图,其中U表示用户顶点合集,V表示漏洞顶点合集。对于每一组产生过交互的二元组(u,v),图中都有一条对应的边t(u,v),T表示所有边的合集。对于每个产品类用户,用户与各个漏洞顶点是否有交互边,由漏洞兴趣信息中该用户是否产生过该漏洞判定;对于个人用户,用户与各个漏洞顶点是否有交互边,由个人用户的漏洞交互信息中该用户是否对该漏洞产生过关注、收藏、评论等交互记录判定,也可以是个人的漏洞兴趣信息是否包括该漏洞确定。图5的左侧图展示了一个简单的用户交互关系图的示例,其中3位用户与5个漏洞产生了共计8条交互记录。嵌入用户和漏洞id。与传统的嵌入方式一致,对原始用户和漏洞id做嵌入,公式如下所示:
与传统嵌入不同之处在于,该嵌入通过在用户-漏洞交互图上传播来进行优化。由于嵌入优化可以将交互的高阶连通性注入到嵌入中,可以实现更好的嵌入效果。图5的右侧图以用户1(u1)为例,解释了交互的高阶连通性。根据图5左侧的u1的交互情况,将他的连接扩展为图5右侧的树形结构,l表示能到达的路径长度,例如l=1时表明一步到达u1的漏洞。由图可以看到,当l=3时,最外层的漏洞4(v4)和漏洞5(v5)相比,u1对于v4的兴趣要比v5高。因为对于v4有和两条路径,而对于v5只有一条路径,所以u1对v4兴趣更大。
用户交互过的漏洞会给用户的偏好带来最直接的依据。从协同过滤的思想上来说,交互过同一个的用户可以视为该漏洞的“特征”,并可以用来衡量两个漏洞的协同相似性。可以此为基础在连接的用户和项目之间执行嵌入传播,并通过两个主要操作来制定流程:消息构建和消息聚合。
消息构建:对于每一组产生交互的用户漏洞二元组(u,v),定义从v到u的消息为:
mu←v=f(ev,eu,puv)
其中,ev是漏洞v的嵌入,eu是用户u的嵌入,puv用于控制每次传播的衰减因子,函数f是消息构建函数,f的定义为:
其中,表示漏洞v的嵌入ev与用户u的嵌入eu的内积。从公式中可以看到权重W2控制了漏洞v和用户u之间的交互性信息的传递,这使得更相似的交互可以传递更多的信息。Nu和Nv为用户u和漏洞v的第一跳邻居,
反映了历史漏洞对于用户兴趣的贡献程度,随着传播路径长度的增大,信息慢慢衰减。
其次进行消息聚合。下列公式反映了聚合的方法:
mu←u=w1eu
其中,的上标(1)表示一阶聚合。从公式中可以看出,信息聚合既考虑了自身节点的信息,又考虑了领域漏洞传递的信息。激活函数采用了LeakyReLU。
同理,将上式的u和v互换,可以获得的聚合方式,即:
然后进行高阶聚合。高阶聚合就是将上述一阶聚合堆叠多层,经过l次聚合后,每个节点都会融合其l阶邻居的信息,也就得到了节点的l阶表示。计算方式如下:
/>
把上述公式整理为矩阵形式,可以得到:
其中,R表示用户-漏洞交互矩阵(UI矩阵),A表示邻接矩阵,D表示对角矩阵,其中第t个对角元素Dtt=|Nt|。
由于用户漏洞交互具有明显的稀疏性,l层数不宜取得过长。实际运用中选取l=3。
然后进行预测步骤,通过上述公式进行了l层消息聚合之后,可以得到L阶节点的表示。通过对L层节点的拼接,可以得到最终的用户和漏洞嵌入:
通过内积可以得到链路的预测评分,分数越高意味着存在这条交互链路的可能性越大,也就意味着该用户对目标漏洞的偏好越大。
为了学习模型参数,定义损失函数为:
其中,(u,v1,v2)∈o表示u与v1有交互,而与v2无交互。σ表示sigmod函数。最后采取L2正则化防止过拟合。
最终,对于每一位用户,基于图神经网络的协同过滤推荐算法预测其对每一个漏洞交互链路的评分。通过评分对交互可能性降序排列,根据排列结果确定第三漏洞。根据排列结果确定第三漏洞可以是从排列结果中选取相似度大于预设相似度的漏洞作为第三漏洞,也可以是选取前若干个作为第三漏洞。
本实施例从多个角度采用不同的算法选取多组漏洞集合,进而根据多组漏洞集合确定最终的推荐漏洞。能够提高漏洞推荐的准确率,提升用户体验感。本实施例将基于内容的推荐算法、基于用户的协同过滤算法和基于图的推荐算法进行混合,结合了不同类型的推荐算法的优势,综合考量推荐结果,解决推荐算法的冷启动问题,更好地利用用户和漏洞的交互数据。
其次,本实施例将漏洞的相似性度量算法结合进了基于内容的推荐算法中。该相似度度量公式,采用了双角度考量漏洞特征和描述文本,更准确、客观和全面的衡量漏洞的相似程度。在基于内容的推荐算法中能够更好的计算推荐对象的相似度,推荐用户最感兴趣的漏洞。
最后,本实施例设计了多用户的推荐模式,考虑现有的与漏洞相关的两类人群,为产品类用户和个人类用户分别进行推荐。本申请考虑了两类用户的自身特点和交互特点,对推荐算法的细节进行双面设计。
参照图6,图6为本发明漏洞推荐装置第一实施例的结构框图。
如图6所示,本发明实施例提出的漏洞推荐装置包括:
第一漏洞集合确定模块10,用于根据目标用户的漏洞兴趣信息和预设漏洞库中各漏洞之间的漏洞相似度选取第一漏洞集合;
第二漏洞集合确定模块20,用于确定目标用户与交集用户之间的用户相似度,并根据所述用户相似度从所述交集用户对应的漏洞选取第二漏洞集合,所述交集用户与所述目标用户之间存在至少一个共同漏洞;
第三漏洞集合确定模块30,用于构建所述目标用户与用户兴趣漏洞之间的交互关系图,并基于所述交互关系图确定第三漏洞集合;
推荐漏洞确定模块40,用于根据所述第一漏洞集合、所述第二漏洞集合以及所述第三漏洞集合确定推荐漏洞。
本实施例根据目标用户的漏洞兴趣信息和预设漏洞库中各漏洞之间的漏洞相似度选取第一漏洞集合;确定目标用户与交集用户之间的用户相似度,并根据用户相似度从交集用户对应的漏洞选取第二漏洞集合,交集用户与目标用户之间存在至少一个共同漏洞;构建目标用户与用户兴趣漏洞之间的交互关系图,并基于交互关系图确定第三漏洞集合;根据第一漏洞集合、第二漏洞集合以及第三漏洞集合确定推荐漏洞。相对于现有的根据用户的偏好为用户推荐漏洞的方式,本实施例上述方式能够在进行漏洞推荐时考虑漏洞的众多特征,提高漏洞推荐效率。
需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的漏洞推荐方法,此处不再赘述。
基于本发明上述漏洞推荐装置第一实施例,提出本发明漏洞推荐装置的第二实施例。
在本实施例中,所述第一漏洞集合确定模块10,还根据漏洞信息中的漏洞描述文本生成漏洞词向量,并基于所述漏洞词向量确定各个漏洞之间的文本相似度;
根据所述漏洞信息中的漏洞特征信息确定各个漏洞之间的特征相似度,所述漏洞特征信息包括漏洞的数值特征、产品特征以及类型特征中的至少一种;
根据所述文本相似度和所述特征相似度确定各个漏洞之间的相似度并根据所述各个漏洞之间的相似度生成预设漏洞库。
进一步的,所述第一漏洞集合确定模块10,还用于根据所述产品特征和预设相似度衡量算法确定各个漏洞之间的产品特征相似度;
根据所述数值特征和预设距离衡量算法确定各个漏洞之间的数值特征相似度;
根据所述类型特征和预设层析结构树关系算法确定各个漏洞之间的类型特征相似度;
根据所述产品特征相似度、所述数值特征相似度、所述类型特征相似度和预设权重分配信息确定各个漏洞之间的特征相似度。
进一步的,所述第一漏洞集合确定模块10,还用于对漏洞信息中的漏洞描述文本进行预处理,获得漏洞描述词序列;
根据所述漏洞描述词序列确定漏洞词向量;
对所述漏洞词向量进行语义训练,得到漏洞描述文本的语义特征;
根据所述语义特征确定各个漏洞之间的文本相似度。
进一步的,所述第三漏洞集合确定模块30,还用于根据所述目标用户的漏洞兴趣信息和用户兴趣漏洞构建交互关系图;
根据图神经网络协同过滤算法和所述交互关系图确定漏洞交互链路分值;
根据所述漏洞交互链路分值确定第三漏洞集合。
进一步的,所述第二漏洞集合确定模块20,还用于根据目标用户的漏洞兴趣信息和交集用户对应的漏洞构建漏洞评价矩阵;
根据所述漏洞评价矩阵确定漏洞关联集合;
根据所述漏洞关联集合确定目标用户与交集用户之间的用户相似度,并将所述用户相似度作为所述目标用户与交集用户对应的漏洞之间的相似度;
根据所述用户相似度从所述交集用户对应的漏洞中选取第二漏洞集合。
进一步的,所述推荐漏洞确定模块40,还用于根据所述第一漏洞、所述第二漏洞和所述第三漏洞确定目标漏洞;
根据所述第一漏洞集合、所述第二漏洞集合以及所述第三漏洞集合确定目标漏洞;
确定所述目标漏洞的平均相似度;
根据所述平均相似度确定推荐漏洞。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有漏洞推荐程序,所述漏洞推荐程序被处理器执行时实现如上文所述的漏洞推荐方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器/随机存取存储器、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种漏洞推荐方法,其特征在于,所述漏洞推荐方法包括以下步骤:
根据目标用户的漏洞兴趣信息和预设漏洞库中各漏洞之间的漏洞相似度选取第一漏洞集合;
确定目标用户与交集用户之间的用户相似度,并根据所述用户相似度从所述交集用户对应的漏洞选取第二漏洞集合,所述交集用户与所述目标用户之间存在至少一个共同漏洞;
构建所述目标用户与用户兴趣漏洞之间的交互关系图,并基于所述交互关系图确定第三漏洞集合;
根据所述第一漏洞集合、所述第二漏洞集合以及所述第三漏洞集合确定推荐漏洞。
2.如权利要求1所述的漏洞推荐方法,其特征在于,所述根据目标用户的漏洞兴趣信息和预设漏洞库中各漏洞之间的漏洞相似度选取第一漏洞集合的步骤之前,还包括:
根据漏洞信息中的漏洞描述文本生成漏洞词向量,并基于所述漏洞词向量确定各个漏洞之间的文本相似度;
根据所述漏洞信息中的漏洞特征信息确定各个漏洞之间的特征相似度,所述漏洞特征信息包括漏洞的数值特征、产品特征以及类型特征中的至少一种;
根据所述文本相似度和所述特征相似度确定各个漏洞之间的相似度并根据所述各个漏洞之间的相似度生成预设漏洞库。
3.如权利要求2所述的漏洞推荐方法,其特征在于,所述根据所述漏洞信息中的漏洞特征信息确定各个漏洞之间的特征相似度的步骤,包括:
根据所述产品特征和预设相似度衡量算法确定各个漏洞之间的产品特征相似度;
根据所述数值特征和预设距离衡量算法确定各个漏洞之间的数值特征相似度;
根据所述类型特征和预设层析结构树关系算法确定各个漏洞之间的类型特征相似度;
根据所述产品特征相似度、所述数值特征相似度、所述类型特征相似度和预设权重分配信息确定各个漏洞之间的特征相似度。
4.如权利要求2所述的漏洞推荐方法,其特征在于,所述根据漏洞信息中的漏洞描述文本生成漏洞词向量,并基于所述漏洞词向量确定各个漏洞之间的文本相似度的步骤,包括:
对漏洞信息中的漏洞描述文本进行预处理,获得漏洞描述词序列;
根据所述漏洞描述词序列确定漏洞词向量;
对所述漏洞词向量进行语义训练,得到漏洞描述文本的语义特征;
根据所述语义特征确定各个漏洞之间的文本相似度。
5.如权利要求1所述的漏洞推荐方法,其特征在于,所述构建所述目标用户与用户兴趣漏洞之间的交互关系图,并基于所述交互关系图确定第三漏洞集合的步骤,包括:
根据所述目标用户的漏洞兴趣信息和用户兴趣漏洞构建交互关系图;
根据图神经网络协同过滤算法和所述交互关系图确定漏洞交互链路分值;
根据所述漏洞交互链路分值确定第三漏洞集合。
6.如权利要求1所述的漏洞推荐方法,其特征在于,所述确定目标用户与交集用户之间的用户相似度,并根据所述用户相似度从所述交集用户对应的漏洞选取第二漏洞集合的步骤,包括:
根据目标用户的漏洞兴趣信息和交集用户对应的漏洞构建漏洞评价矩阵;
根据所述漏洞评价矩阵确定漏洞关联集合;
根据所述漏洞关联集合确定目标用户与交集用户之间的用户相似度,并将所述用户相似度作为所述目标用户与交集用户对应的漏洞之间的相似度;
根据所述用户相似度从所述交集用户对应的漏洞中选取第二漏洞集合。
7.如权利要求1所述的漏洞推荐方法,其特征在于,所述根据所述第一漏洞集合、所述第二漏洞集合以及所述第三漏洞集合确定推荐漏洞的步骤,包括:
根据所述第一漏洞集合、所述第二漏洞集合以及所述第三漏洞集合确定目标漏洞;
确定所述目标漏洞的平均相似度;
根据所述平均相似度确定推荐漏洞。
8.一种漏洞推荐装置,其特征在于,所述漏洞推荐装置包括:
第一漏洞集合确定模块,用于根据目标用户的漏洞兴趣信息和预设漏洞库中各漏洞之间的漏洞相似度选取第一漏洞集合;
第二漏洞集合确定模块,用于确定目标用户与交集用户之间的用户相似度,并根据所述用户相似度从所述交集用户对应的漏洞选取第二漏洞集合,所述交集用户与所述目标用户之间存在至少一个共同漏洞;
第三漏洞集合确定模块,用于构建所述目标用户与用户兴趣漏洞之间的交互关系图,并基于所述交互关系图确定第三漏洞集合;
推荐漏洞确定模块,用于根据所述第一漏洞集合、所述第二漏洞集合以及所述第三漏洞集合确定推荐漏洞。
9.一种漏洞推荐设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的漏洞推荐程序,所述漏洞推荐程序配置为实现如权利要求1至7中任一项所述的漏洞推荐方法的步骤。
10.一种存储介质,其特征在于,所述存储介质上存储有漏洞推荐程序,所述漏洞推荐程序被处理器执行时实现如权利要求1至7任一项所述的漏洞推荐方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211264046.5A CN116955768A (zh) | 2022-10-14 | 2022-10-14 | 漏洞推荐方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211264046.5A CN116955768A (zh) | 2022-10-14 | 2022-10-14 | 漏洞推荐方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116955768A true CN116955768A (zh) | 2023-10-27 |
Family
ID=88441529
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211264046.5A Pending CN116955768A (zh) | 2022-10-14 | 2022-10-14 | 漏洞推荐方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116955768A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117319091A (zh) * | 2023-11-29 | 2023-12-29 | 苏州市软件评测中心有限公司 | 基于深度学习的企业软件网络安全漏洞检测方法及系统 |
-
2022
- 2022-10-14 CN CN202211264046.5A patent/CN116955768A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117319091A (zh) * | 2023-11-29 | 2023-12-29 | 苏州市软件评测中心有限公司 | 基于深度学习的企业软件网络安全漏洞检测方法及系统 |
CN117319091B (zh) * | 2023-11-29 | 2024-02-09 | 苏州市软件评测中心有限公司 | 基于深度学习的企业软件网络安全漏洞检测方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ren et al. | Predicting user-topic opinions in twitter with social and topical context | |
Cabrerizo et al. | A decision support system to develop a quality management in academic digital libraries | |
CN106021376B (zh) | 用于处理用户信息的方法和设备 | |
US8712952B2 (en) | Method and system for selecting a target with respect to a behavior in a population of communicating entities | |
CN105893406A (zh) | 群体用户画像方法及系统 | |
Alahmadi et al. | Twitter-based recommender system to address cold-start: A genetic algorithm based trust modelling and probabilistic sentiment analysis | |
Broecheler et al. | A scalable framework for modeling competitive diffusion in social networks | |
Wang et al. | An improved model for depression detection in micro-blog social network | |
KR20200128584A (ko) | 사상 예측 장치, 예측 모델 생성 장치 및 사상 예측용 프로그램 | |
Yeshwanth et al. | Evolutionary churn prediction in mobile networks using hybrid learning | |
CN111966886A (zh) | 对象推荐方法、对象推荐装置、电子设备及存储介质 | |
CN112015562A (zh) | 基于迁移学习的资源分配方法、装置及电子设备 | |
Durón | Heatmap centrality: a new measure to identify super-spreader nodes in scale-free networks | |
Wang et al. | An unsupervised strategy for defending against multifarious reputation attacks | |
CN116955768A (zh) | 漏洞推荐方法、装置、设备及存储介质 | |
US20230116515A1 (en) | Determining named entities associated with aspect terms extracted from documents having unstructured text data | |
Jeyasudha et al. | An intelligent centrality measures for influential node detection in COVID-19 environment | |
Zhou et al. | A resilient network recovery framework against cascading failures with deep graph learning | |
WO2021174881A1 (zh) | 多维度信息的组合预测方法、装置、计算机设备及介质 | |
JP7256766B2 (ja) | 推測根拠分析装置及び推測根拠分析方法 | |
Wu et al. | Maximizing the performance of advertisements diffusion: A simulation study of the dynamics of viral advertising in social networks | |
US20220156767A1 (en) | Identifying and quantifying sentiment and promotion bias in social and content networks | |
Nair et al. | Classification of Trust in Social Networks using Machine Learning Algorithms | |
US11620320B1 (en) | Document summarization through iterative filtering of unstructured text data of documents | |
US11675823B2 (en) | Sentiment analysis for aspect terms extracted from documents having unstructured text data |
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 |