CN112528294A - 漏洞匹配方法、装置、计算机设备和可读存储介质 - Google Patents

漏洞匹配方法、装置、计算机设备和可读存储介质 Download PDF

Info

Publication number
CN112528294A
CN112528294A CN202011521687.5A CN202011521687A CN112528294A CN 112528294 A CN112528294 A CN 112528294A CN 202011521687 A CN202011521687 A CN 202011521687A CN 112528294 A CN112528294 A CN 112528294A
Authority
CN
China
Prior art keywords
similarity
vulnerability
vulnerabilities
calculating
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.)
Pending
Application number
CN202011521687.5A
Other languages
English (en)
Inventor
张渊猛
王占一
齐向东
吴云坤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qax Technology Group Inc
Secworld Information Technology Beijing Co Ltd
Original Assignee
Qax Technology Group Inc
Secworld Information Technology Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Qax Technology Group Inc, Secworld Information Technology Beijing Co Ltd filed Critical Qax Technology Group Inc
Priority to CN202011521687.5A priority Critical patent/CN112528294A/zh
Publication of CN112528294A publication Critical patent/CN112528294A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Physics (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供了一种漏洞匹配方法、装置、计算机设备和可读存储介质。该漏洞匹配方法包括:获取待匹配的两个漏洞的漏洞信息;根据所述漏洞信息计算所述两个漏洞在多个维度上的相似度;根据所述在多个所述维度上的相似度计算所述两个漏洞的综合相似度;以及根据所述综合相似度判断所述两个漏洞是否匹配。通过本申请,能够实现较准确地漏洞匹配。

Description

漏洞匹配方法、装置、计算机设备和可读存储介质
技术领域
本申请涉及信息安全技术处理技术领域,尤其涉及一种漏洞匹配方法、装置、计算机设备和可读存储介质。
背景技术
为了应对漏洞攻击造成的威胁以及方便安全人员观察攻击的来源,部分国家和国际组织分别采用不同的标准对已发现的漏洞进行了编号,主要标准有CVE标准、CNNVD标准和CNVD标准等。CVE(Common Vulnerabilities&Exposures,公共漏洞和暴露)主要由美国非营利组织MITRE所属的National Cybersecurity FFRDC所营运维护,是国际间较为常用的编号标准;CNNVD(China National Vulnerability Database of Information Security,中国国家信息安全漏洞库)由中国信息安全测评中心发布;CNVD(China NationalVulnerability Database,中国国家信息安全漏洞共享平台)由国家计算机网络应急技术处理协调中心***内重要信息***单位、基础电信运营商、网络安全厂商、软件厂商和互联网企业建立的国家网络安全漏洞库。
由于不同标准的存在,同一漏洞以不同的漏洞信息和编号被不同漏洞库所收录。为了将这些不同标准、不同编号的漏洞信息都利用起来,我们需要对不同漏洞库的同一漏洞进行关联和匹配,从而建立一个漏洞匹配数据库。
因此,如何实现较准确地漏洞匹配,成为本领域亟需解决的技术问题。
发明内容
本申请的目的是提供一种漏洞匹配方法、装置、计算机设备和可读存储介质,用于解决现有技术中的上述技术问题。
一方面,为实现上述目的,本申请提供了一种漏洞匹配方法。
该漏洞匹配方法包括:获取待匹配的两个漏洞的漏洞信息;根据所述漏洞信息计算所述两个漏洞在多个维度上的相似度;根据所述在多个所述维度上的相似度计算所述两个漏洞的综合相似度;以及根据所述综合相似度判断所述两个漏洞是否匹配。
进一步地,在计算所述两个漏洞在多个维度上的相似度时,通过以下部分或全部步骤进行计算:根据所述漏洞信息的描述信息和预设的机器学习模型,计算所述两个漏洞的语义相似度;根据所述描述信息中相同产品名的数量,计算所述两个漏洞的描述相似度;根据所述描述信息中的版本号,计算所述两个漏洞的版本相似度;根据所述漏洞信息的参考信息中URL信息的关联程度,计算所述两个漏洞的URL相似度;根据所述漏洞信息的标题信息中相同产品名的数量,计算所述两个漏洞的标题相似度。
进一步地,所述机器学习模型包括矩阵计算层、卷积池化层和全连接层,其中,所述卷积池化层包括若干组卷积层和池化层,计算所述两个漏洞的语义相似度的步骤包括:计算所述描述信息中词语对应的词向量;通过所述矩阵计算层,计算所述两个漏洞中一个漏洞的词向量,依次与另一个漏洞所有词向量的向量相似值,以得到相似性矩阵;通过所述卷积池化层,对所述相似矩阵依次进行卷积操作和最大池化操作,以得到特征图;以及将所述特征图输入至所述全链接层,以得到所述两个漏洞的语义相似度。
进一步地,所述两个漏洞来源于不同的漏洞库,不同的所述漏洞库中描述信息的语言不同,计算所述描述信息中词语对应的词向量的步骤包括:在来源漏洞库对应的词库字典中,查找所述词语对应的标识,其中,对所述漏洞库中漏洞的描述信息,采用对应语种的分词方法进行分词,以得到词集,根据所述词集构建所述漏洞库对应的所述词库字典;将所述词语对应的标识转化为所述词语的词向量。
进一步地,相互匹配的漏洞样本为正样本,不匹配的所述漏洞样本为负样本,采用以下步骤得到所述机器学习模型:随机获取多个所述负样本作为第一负样本;通过多个正样本和多个所述第一负样本构建第一训练集;通过所述第一训练集进行训练,以得到中间机器学习模型;通过所述中间机器学习模型计算多个所述负样本的语义相似度,以得到多个第一相似度;根据所述第一相似度选取负样本作为第二负样本,其中,负样本的所述第一相似度越大,被选取为所述第二负样本的概率越大;通过多个所述正样本、多个所述第一负样本和多个所述第二负样本构建第二训练集;通过所述第二训练集进行训练,以得到所述机器学习模型。
进一步地,在所述第二训练集中,正负样本的比例为预设比例值,其中,所述预设比例值小于1
进一步地,计算所述两个漏洞的描述相似度的步骤包括:分别获取所述两个漏洞的描述信息中的产品名,得到每个所述漏洞对应的第一产品名序列;计算两个所述第一产品名序列中相同产品的数量,得到第一数量值;确定两个所述第一产品名序列中较少的产品名数量,得到第二数量值;计算所述第一数量值和所述第二数量值的比值,得到所述描述相似度。
进一步地,计算所述两个漏洞的版本相似度的步骤包括:分别获取所述两个漏洞的描述信息中的版本号,得到每个所述漏洞对应的版本号列表;依次计算两个所述版本号列表之间各版本号的相似度;在所述各版本号的相似度中选取最大值作为所述版本相似度。
进一步地,计算所述两个漏洞的URL相似度的步骤包括:通过正则表达式提取所述参考信息中URL信息,得到每个漏洞对应的URL集;若两个所述URL之间存在至少一个相同的URL,则确定所述URL相似度为1,若两个所述URL之间不存在相同的URL,则确定所述URL相似度为0。
进一步地,计算所述两个漏洞的标题相似度的步骤包括:分别获取所述两个漏洞的标题信息中的产品名,得到每个所述漏洞对应的第二产品名序列;计算两个所述第二产品名序列中相同产品的数量,得到第三数量值;确定两个所述第二产品名序列中较少的产品名数量,得到第四数量值;计算所述第三数量值和所述第四数量值的比值,得到所述标题相似度。
另一方面,为实现上述目的,本申请提供了一种漏洞匹配装置。
该漏洞匹配装置包括:获取模块,用于获取待匹配的两个漏洞的漏洞信息;第一计算模块,用于根据所述漏洞信息计算所述两个漏洞在多个维度上的相似度;第二计算模块,用于根据所述在多个所述维度上的相似度计算所述两个漏洞的综合相似度;以及判断模块,用于根据所述综合相似度判断所述两个漏洞是否匹配。
又一方面,为实现上述目的,本申请还提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行计算机程序时实现上述方法的步骤。
又一方面,为实现上述目的,本申请还提供计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
本申请提供的漏洞匹配方法、装置、计算机设备和可读存储介质,获取待匹配的两个漏洞的漏洞信息,根据漏洞信息,从不同的维度计算两个漏洞的相似度,然后同时参考在多个维度上的相似度计算两个漏洞的综合相似度,最后以根据综合相似度判断两个漏洞是否匹配。通过本申请,在进行漏洞匹配时,通过考虑多个维度上的相似度来计算综合相似度,最终以综合相似度判断漏洞是否匹配,能够实现较准确地漏洞匹配。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本申请实施例一提供的漏洞匹配方法的流程图;
图2为本申请实施例二提供的漏洞匹配方法的流程图;
图3为本申请实施例提供的漏洞匹配方法中机器学习模型的结构示意图;
图4为本申请实施例三提供的漏洞匹配方法的流程图;
图5和图6为本申请实施例三提供的漏洞匹配方法中预处理过程的流程图;
图7为本申请实施例四提供的漏洞匹配装置框图;
图8为本申请实施例五提供的计算机设备的硬件结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了实现准确地漏洞匹配方法,本申请提供了一种漏洞匹配方法、装置、计算机设备和可读存储介质,在该漏洞匹配方法中,首先获取待匹配的两个漏洞的漏洞信息,然后根据漏洞信息计算两个漏洞在多个维度上的相似度,也即,从不同维度上衡量两个漏洞的相似程度;然后在计算两个漏洞的综合相似度时,同时参考上述不同维度上的相似度,最终根据综合相似度判断两个漏洞是否匹配,其中,综合相似度越高,两个漏洞匹配的概率也越高。从中可以看出,本申请基于多个维度上相似度相结合的方式,使得综合相似度能够体现不同维度上漏洞的相似程度,能够实现准确、有效的漏洞匹配。
关于本申请提供的漏洞匹配方法、装置、计算机设备和可读存储介质的具体实施方式,将在下文中详细描述。
实施例一
本申请实施例提供了一种漏洞匹配方法,通过该方法,能够提升漏洞匹配的准确率。具体地,图1为本申请实施例一提供的漏洞匹配方法的流程图,如图1所示,该实施例提供的漏洞匹配方法包括如下的步骤S101至步骤S106。
步骤S101:获取待匹配的两个漏洞的漏洞信息。
在对两个漏洞进行匹配时,首先获取该两个漏洞的漏洞信息,对多个漏洞进行匹配时,可在该步骤中获取多个漏洞的漏洞信息。其中,漏洞信息包括从不同维度上对漏洞进行描述和定义的信息,具体可以为多个字段,每个字段从一个维度上描述和定义漏洞,或者,也可以在一个字段中包括多个维度上的信息,本申请对此并不进行限定。
步骤S102:根据漏洞信息计算两个漏洞在多个维度上的相似度。
在该步骤中,针对不同的维度,采用漏洞信息中所需的部分或全部信息,来计算两个漏洞的相似度,例如从语义的维度上、从语言描述相似性的维度上、从漏洞自身的特征(包括漏洞的来源、产生的时间和/或解决的方案等)上等等,计算出对应每个维度的相似度。在计算时,可针对不同维度预设不同的计算模型,通过计算模型进行计算,例如可采用神经网络等深度学习模型计算两个漏洞在某一维度上属于同一类别的置信度等。
可选地,在计算两个漏洞在多个维度上的相似度时,通过以下部分或全部步骤进行计算:根据漏洞信息的描述信息和预设的机器学习模型,计算两个漏洞的语义相似度;根据描述信息中相同产品名的数量,计算两个漏洞的描述相似度;根据描述信息中的版本号,计算两个漏洞的版本相似度;根据漏洞信息的参考信息中URL信息的关联程度,计算两个漏洞的URL相似度;根据漏洞信息的标题信息中相同产品名的数量,计算两个漏洞的标题相似度。
也即,在该步骤中,可计算语义相似度、描述相似度、版本相似度、URL相似度和版本相似度中的部分或全部。
步骤S103:根据在多个维度上的相似度计算两个漏洞的综合相似度。
在该步骤中,计算两个漏洞的综合相似度时,可对不同维度上的相似度进行加权求和,对于影响较大的相似度,可设置较大的权重,对于影响较小的相似度,可设置较小的权重。
步骤S104:根据综合相似度判断两个漏洞是否匹配。
可选地,可设置综合相似度阈值,当计算得到的两个漏洞的综合相似度达到该综合相似度阈值时,确定两个漏洞相似,也即相互匹配,当计算得到的两个漏洞的综合相似度小于该综合相似度阈值时,确定两个漏洞不相似,也即不匹配。或者,将一个漏洞与多个漏洞进行匹配,选择综合相似度最高的两个漏洞作为目标匹配漏洞,进一步对目标匹配漏洞进行分析,以确定是否匹配。
在该实施例提供的漏洞匹配方法中,获取待匹配的两个漏洞的漏洞信息,根据漏洞信息,从不同的维度计算两个漏洞的相似度,然后同时参考在多个维度上的相似度计算两个漏洞的综合相似度,最后以根据综合相似度判断两个漏洞是否匹配。采用该实施例提供的漏洞匹配方法,在进行漏洞匹配时,通过考虑多个维度上的相似度来计算综合相似度,最终以综合相似度判断漏洞是否匹配,能够实现较准确地漏洞匹配。
实施例二
本申请实施例提供了一种漏洞匹配方法,通过该方法,能够实现自动化地漏洞匹配,并由于充分利用漏洞描述信息所包含的信息内容,从语义相似度、描述相似度和版本相似度计算漏洞的综合相似度,能够提升漏洞匹配的准确率。具体地,图2为本申请实施例二提供的漏洞匹配方法的流程图,如图2所示,该实施例提供的漏洞匹配方法包括如下的步骤S201至步骤S206。
步骤S201:获取漏洞的描述信息。
对于在漏洞数库中的已知漏洞,漏洞信息通常会包括描述信息,描述信息包括受漏洞影响实体的相关内容、漏洞的类型、产生原因、漏洞的攻击方式及产生的影响等。
以Microsoft Exchange Server Outlook Web App跨站脚本漏洞(CNNVD-201503-274)为例。其描述信息包括以下内容:
Microsoft Exchange Server是美国微软(Microsoft)公司的一套电子邮件服务程序。它提供邮件存取、储存、转发,语音邮件,邮件过滤筛选等功能。Outlook Web App(OWA)是其中的一个用于访问Exchange邮箱的Web浏览器版本。Microsoft ExchangeServer中存在跨站脚本漏洞,该漏洞源于程序无法正确整理OWA中的页面内容。通过修改OWA中的属性,然后诱使用户浏览目标OWA站点,攻击者可在当前用户的上下文中运行脚本。以下产品及版本受到影响:Microsoft Exchange Server 2013SP1,Cumulative Update 7。
在该步骤S201中,获取待匹配的各个漏洞的描述信息。
步骤S202:根据两个漏洞的描述信息和预设的机器学习模型,计算两个漏洞的语义相似度。
其中,预设的机器学习模型可以通过已知匹配结果的漏洞样本训练得到。基于漏洞样本训练,使得机器学习模型具有从漏洞描述信息的语义上判断漏洞相似程度的能力,因此,通过机器学习模型,能够基于待匹配的两个漏洞的描述信息计算出两个漏洞的语义相似度。可选地,机器学习模型为分类模型,该分类模型输出0~1之间的数作为语义相似度,输出的数值越靠近1,表明两个漏洞相似的概率越大,输出的数值越靠近0,表明两个漏洞相似的概率越小。
步骤S203:根据两个漏洞的描述信息中相同产品名的数量,计算两个漏洞的描述相似度。
其中,漏洞描述信息中的产品名通常是指漏洞所影响的产品的名称,例如,上述举例中涉及的Microsoft Exchange Server属于产品名。
具体地,在该步骤S203中,基于描述信息中相同产品名的数量计算两个漏洞的描述相似度,其中,相同产品名的数量越多,描述相似度越大。
可选地,在根据两个漏洞的描述信息中相同产品名的数量,计算两个漏洞的描述相似度时,具体执行的步骤包括:分别获取两个漏洞的描述信息中的产品名,得到每个漏洞对应的第一产品名序列;计算两个第一产品名序列中相同产品的数量,得到第一数量值;确定两个第一产品名序列中较少的产品名数量,得到第二数量值;计算第一数量值和第二数量值的比值,得到描述相似度。
步骤S204:根据两个漏洞的描述信息中版本号的相似度,计算两个漏洞的版本相似度。
其中,漏洞描述信息中的版本号通常是指漏洞所影响的产品的版本,例如,上述举例中涉及的2013SP1属于版本号。
具体地,在该步骤S204中,基于描述信息中版本号的相似度计算两个漏洞的版本相似度,其中,可利用版本号字符串的相似度作为版本号的相似度,两个漏洞的描述信息中的版本号的相似度越大,计算得到的版本相似度越大。
可选地,在根据两个漏洞的描述信息中版本号的相似度,计算两个漏洞的版本相似度时,具体执行的步骤包括:分别获取两个漏洞的描述信息中的版本号,得到每个漏洞对应的版本号列表;依次计算两个版本号列表之间各版本号的相似度;在各版本号的相似度中选取最大值作为版本相似度。
步骤S205:根据语义相似度、描述相似度和版本相似度,计算两个漏洞的综合相似度。
具体地,在计算两个漏洞的综合相似度时,将语义相似度、描述相似度和版本相似度同时作为参考因素,其中,语义相似度越大,综合相似度越大;描述相似度越大,综合相似度越大;版本相似度越大,综合相似度越大。
可选地,为语义相似度、描述相似度和版本相似度分配不同的权重,对语义相似度、描述相似度和版本相似度的加权求和,作为综合相似度。
步骤S206:根据综合相似度判断两个漏洞是否匹配。
可选地,可设置综合相似度阈值,当计算得到的两个漏洞的综合相似度达到该综合相似度阈值时,确定两个漏洞相似,也即相互匹配,当计算得到的两个漏洞的综合相似度小于该综合相似度阈值时,确定两个漏洞不相似,也即不匹配。或者,将一个漏洞与多个漏洞进行匹配,选择综合相似度最高的两个漏洞作为目标匹配漏洞,进一步对目标匹配漏洞进行分析,以确定是否匹配。
在该实施例提供的漏洞匹配方法中,获取漏洞的描述信息,然后采用预设的机器学习模型,基于两个漏洞的描述信息来计算两个漏洞的语义相似度;根据两个漏洞的描述信息中相同产品名的数量,计算两个漏洞的描述相似度;根据两个漏洞的描述信息中版本号的相似度,计算两个漏洞的版本相似度,最后同时参考上述语义相似度、描述相似度和版本相似度计算两个漏洞的综合相似度时,以根据综合相似度判断两个漏洞是否匹配。采用该实施例提供的漏洞匹配方法,基于机器学习模型利用描述信息的语义计算语义相似度,利用描述信息中的产品名计算描述相似度,利用描述信息中的版本号计算版本相似度,然后相结合计算综合相似度,充分利用漏洞的描述信息中各个方面的内容,实现了对漏洞进行自动化的匹配,在准确、有效的基础上保证了高效和快速,采用该方法对不同漏洞库中的漏洞进行匹配时,能够提升匹配效率,减少企业的时间成本和人力成本。
可选地,在一种实施例中,漏洞匹配方法还包括:获取漏洞的参考信息;根据两个漏洞的参考信息中URL信息的关联程度,计算两个漏洞的URL相似度;根据语义相似度、描述相似度和版本相似度,计算两个漏洞的综合相似度的步骤包括:根据语义相似度、描述相似度、版本相似度和URL相似度,计算两个漏洞的综合相似度。
具体地,对于在漏洞数库中的已知漏洞,在漏洞数据库中还会存储其参考信息,参考信息包括表征漏洞描述信息等相关内容的来源网址,以及漏洞解决方案的来源网址等URL信息,当两个漏洞匹配时,这些URL信息会存在重合,因此,在计算两个漏洞的综合相似度时,增加参考信息中URL信息作为参考因素,能够进一步提升综合相似度计算的准确性。在获取漏洞的参考信息后,可从中提取出参考信息中的URL信息,然后根据两个漏洞的参考信息中URL信息的关联程度,计算两个漏洞的URL相似度,其中,当两个漏洞的参考信息中包括相同的URL信息时,表征两个漏洞的参考信息中的URL信息关联,URL相似度高,当两个漏洞的参考信息中不包括相同的URL信息时,表征两个漏洞的参考信息中的URL信息不关联,URL相似度低。当两个漏洞的URL相似度高时,表征两个漏洞的一些参考内容可能来源于相同的网址,这时两个漏洞相似的可能性更高,从而综合相似度也高,基于此,在计算综合相似度时,除了将语义相似度、描述相似度和版本相似度作为参考因素,还将URL相似度也作为参考因素。
进一步可选地,在一种实施例中,在根据两个漏洞的参考信息中URL信息的关联程度,计算两个漏洞的URL相似度时,具体执行的步骤包括:通过正则表达式提取的参考信息中URL信息,得到每个漏洞对应的URL集;若两个URL之间存在至少一个相同的URL,则确定URL相似度为1,若两个URL之间不存在相同的URL,则确定URL相似度为0。
可选地,在一种实施例中,漏洞匹配方法还包括:获取漏洞的标题信息;根据两个漏洞的标题信息中相同产品名的数量,计算两个漏洞的标题相似度;根据语义相似度、描述相似度、版本相似度和URL相似度,计算两个漏洞的综合相似度的步骤包括:根据语义相似度、描述相似度、版本相似度、URL相似度和标题相似度,计算两个漏洞的综合相似度。
具体地,对于在漏洞数库中的已知漏洞,漏洞数据库中还会存储其标题信息,标题信息包括有产品名,该产品名通常是指漏洞所影响的产品的名称,当两个漏洞匹配时,标题信息中容易出现相同的产品名,因此,在计算两个漏洞的综合相似度时,增加标题信息中的产品名作为参考因素,能够进一步提升综合相似度计算的准确性。基于标题信息中相同产品名的数量计算两个漏洞的标题相似度,相同产品名的数量越多,标题相似度越大,两个漏洞的综合相似度越大。
进一步可选地,在一种实施例中,在根据两个漏洞的标题信息中相同产品名的数量,计算两个漏洞的标题相似度时,具体执行的步骤包括:分别获取两个漏洞的标题信息中的产品名,得到每个漏洞对应的第二产品名序列;计算两个第二产品名序列中相同产品的数量,得到第三数量值;确定两个第二产品名序列中较少的产品名数量,得到第四数量值;计算第三数量值和第四数量值的比值,得到标题相似度。
可选地,在一种实施例中,机器学习模型包括矩阵计算层、卷积池化层和全连接层,其中,卷积池化层包括若干组卷积层和池化层,根据两个漏洞的描述信息和预设的机器学习模型,计算两个漏洞的语义相似度的步骤包括:计算描述信息中词语对应的词向量;通过矩阵计算层,计算两个漏洞中一个漏洞的词向量,依次与另一个漏洞所有词向量的向量相似值,以得到相似性矩阵;通过卷积池化层,对相似矩阵依次进行卷积操作和最大池化操作,以得到特征图;以及将特征图输入至全链接层,以得到两个漏洞的语义相似度。
具体地,首先对描述信息进行分词,然后再对分词后得到的词语进行过滤,包括去掉停用词等,得到描述信息对应的若干词语,再根据词库字典计算出每个词语对应的词向量,得到漏洞对应的词向量组,该词向量组为机器学习模型的输入向量。如图3所示,机器学习模型依次包括矩阵计算层、卷积池化层和全连接层,将计算得到的一个漏洞的词向量组T1(包括词向量w1,w2,w3…w8)和另一个漏洞的词向量组T2(包括词向量v1,v2,v3…v8)输入机器学习模型,通过矩阵计算层,计算一个漏洞的词向量依次与另一个漏洞所有词向量的向量相似值,具体地,计算方式可以使用余弦相似度或点乘方式,最后得到一个二维的相似性矩阵,再对相似矩阵依次经卷积层和池化层,进行多层卷积操作和最大池化操作得到特征图,最后连接若干层全连接层进行二分类,最后一层的全连接层通过激活函数后输出,输出值表示漏洞间的语义相似度。
进一步可选地,在一种实施例中,两个漏洞来源于不同的漏洞库,不同的漏洞库中描述信息的语言不同,计算描述信息中词语对应的词向量的步骤包括:在来源漏洞库对应的词库字典中,查找漏洞的描述信息的词语对应的标识,其中,对漏洞库中所有漏洞的描述信息,采用对应语种的分词方法进行分词,以得到词集,根据词集构建漏洞库对应的词库字典;将词语对应的标识转化为词语的词向量。
具体地,在对来源于不同漏洞库的漏洞进行匹配时,首先利用每个漏洞库中漏洞的描述信息构建该漏洞库对应的词库字典。具体地,对漏洞库中所有漏洞的描述信息,采用对应语种的分词方法进行分词,以得到词集,然后根据词集构建漏洞库对应的词库字典,例如,在进行分词时,如果描述信息的语种是中文,则采用中文对应分词方法进行分词,如果描述信息的语种是英文,则采用英文对应分词方法进行分词,分词得到词集后,可进一步基于不同语种的特点,对词集进行过滤,例如,当描述信息的语种是英文中,可将词集中的大写字母替换为小写字母、去掉词集中的停用词以及对词集中具有语法结构的词进行词性还原,包括将复数形式还原回单数形式,将动词的变形形式还原为动词原形,经过过滤后,再将相同词语进行去重,最终可得到每个漏洞对应的词库字典,在词库字典中,不同的词语具有不同的标识,例如该标识可以为一串数字和/或字符等,例如该标识为词语在词库字典中的唯一的序号。在计算一个漏洞的描述信息中词语对应的词向量时,获取该漏洞的来源漏洞库对应的词库字典,然后在词库字典中查找词语的标识,再将该标识转化为向量,即可得到词语的词向量。
采用该实施例提供的漏洞匹配方法,对不同的漏洞库建立不同的词库字典,以在计算该漏洞库中漏洞描述信息词语的词向量时,基于不同的词库字典进行计算,能够进一步增加漏洞匹配的准确性。
可选地,在一种实施例中,相互匹配的漏洞样本为正样本,不匹配的漏洞样本为负样本,采用以下步骤得到机器学习模型:随机获取多个负样本作为第一负样本;通过多个正样本和多个第一负样本构建第一训练集;通过第一训练集进行训练,以得到中间机器学习模型;通过中间机器学习模型计算多个负样本的语义相似度,以得到多个第一相似度;根据第一相似度选取负样本作为第二负样本,其中,负样本的第一相似度越大,被选取为第二负样本的概率越大;通过多个正样本、多个第一负样本和多个第二负样本构建第二训练集;通过第二训练集进行训练,以得到机器学习模型。
具体地,可在进行漏洞匹配之前,先采用漏洞样本对初始机器学习模型进行训练,得到训练好的机器学习模型之后,通过该训练好的机器学习模型计算语义相似度。其中,在对初始机器学习模型进行训练时,需要构建训练集(也即第二训练集),该训练集包括正样本和两类负样本,一类负样本,也即第一负样本为随机获取的负样本,另一类负样本,也即第二负样本为相似度较大且不匹配的负样本,对于后一类负样本,通过训练好的中间机器学习模型进行筛选。具体而言,先通过正样本和第一负样本构建的第一训练集对初始学习模型进行训练,得到中间机器学习模型,然后将多个负样本通过中间机器学习模型进行筛选,在多个负样本中筛选出相似度大的负样本作为第二负样本,通过正样本、第一负样本和第二负样本构建第二训练集,然后再通过第二训练集对一个初始学习模型进行训练,得到机器学习模型。其中,在通过第二训练集进行训练时的初始学习模型,可以与通过第一训练集进行训练时的初始学习模型相同,也可以为通过第一训练集训练得到的中间学习模型,或者也可以为其他学习模型。
采用该实施例提供的漏洞匹配方法,在采用负样本构建机器学习模型的训练集时,筛选一部分相似性高的负样本,保证训练集中包括正样本以及相似性高的负样本,使得训练得到的机器学习模型的准确性高,进而提升漏洞匹配的准确性。
可选地,在一种实施例中,在第二训练集中,正负样本的比例为预设比例值,其中,所述预设比例值小于1。
在通常的机器学习中,正样本占较大的比例,负样本占较少的比例,而发明人经过研究发现,采用常规的正负样本比例,所训练的模型无法准确识别出漏洞的真实匹配情况。在该实施例中,将正负样本的比例设置为预设比例值,其中,预设比例值为小于1的数值,能够有效提升模型匹配结果的准确性。例如可以设置正负样本的比例为1:5构建训练集,采用了与常规惯用技术手段不同的方式,极大地增加了负样本的比例,从而增加负样本多样性,能够提升训练的得到的机器学习模型的准确性,从而进一步提升漏洞匹配的准确性。
实施例三
该实施例三是在上述实施例一和实施例二基础上的一种优选实施例,该实施例能够实现高效、快速、自动化的漏洞匹配,利用该实施例提供的漏洞匹配方法,可以自动计算不同漏洞库中漏洞间的相似度,其中真实匹配的漏洞具有最高的相似度值,根据相似度值的大小进行排序,则可快速挑选出真实匹配的漏洞或者圈定小范围的候选漏洞以缩小搜寻范围。该实施例提供的漏洞匹配方法包括数据采集、数据预处理、模型训练、相似度计算和漏洞排序五个步骤。以下描述中仅以CNNVD漏洞数据库和CVE漏洞数据库中漏洞的匹配和排序为例介绍,也可以适用于其他漏洞库中单语种或多语种漏洞之间的匹配和排序。图4为本申请实施例三提供的漏洞匹配方法的流程图,如图4所示,各个步骤详细介绍如下。
步骤1,数据采集。此步骤将构建原始数据集,用于机器学习模型的训练和测试。首先介绍下数据情况和样例。CNNVD漏洞数据库和CVE漏洞数据库分别以中文和英文对漏洞进行描述。表1~3为CNNVD漏洞数据库和CVE漏洞数据库的几种不同情况下的样例,这里仅展示本实施例涉及到的字段。
表1展示的是相互匹配的漏洞对样例,也即正样本,可以发现二者描述的是同一漏洞;表2展示的则是语义相近但不匹配的漏洞对样例,可以发现二者的描述内容略有相似,但实际上不是同一漏洞,机器学习模型对此类漏洞相对较难分辨,也即第二负样本;表3展示的则是普通的不匹配的漏洞对样例,机器学习模型对此类漏洞对相对容易分辨。
表1相互匹配的漏洞对样例
Figure BDA0002849565030000151
Figure BDA0002849565030000161
表2相似但不匹配的漏洞对样例
Figure BDA0002849565030000162
表3不匹配的漏洞对样例
Figure BDA0002849565030000163
Figure BDA0002849565030000171
数据采集时,从CNNVD漏洞数据库和CVE漏洞数据库中分别获取互相匹配的漏洞对作为正样本,然后采用负采样方式获得负样本,即取不匹配的漏洞对作为负样本。为了增加负样本多样性,负样本占比要适当增多,该实施例中中正负样本比例设置为1:5。对于负采样方式,该实施例采用随机负采样和排序负采样结合的方式。随机负采样为从不匹配的漏洞对中随机选择,而排序负采样则从不匹配的漏洞对中选择语义相近的,这是为了增加对此类漏洞对的关注,增强机器学习模型对此类语义相近但又不匹配漏洞对的辨识能力,对减少机器学习模型误匹配来说至关重要。这里通过排序负采样选择语义相近漏洞的具体方法为:先只使用随机负采样的样本训练好初版的机器学习模型得到中间机器学习模型,此模型会对语义接近的漏洞对输出很高的相似度值,然后根据该中间机器学习模型的排序输出的结果筛选出语义相近的负样本。
步骤2,数据预处理。每条漏洞信息中一个重要的部分为漏洞描述部分,也即漏洞的描述信息,该描述信息是一段具有语义信息的文本串,用以描述该漏洞的技术细节以及涉及的产品等内容。在步骤1中获取到漏洞样本后,需要对每条漏洞的描述信息的文本串进行一系列的预处理,之后才能用于模型训练。如图5和图6所示,预处理措施包括以下内容:
分词。将句子中的单词进行切分,同时滤除停用词。由于CNNVD标准和CVE标准的漏洞描述分别采用中文和英文,因此对CNNVD标准漏洞的中文描述信息采用中文分词方法,并滤除中文停用词,而对CVE标准的英文描述采用英文分词方法,滤除英文停用词。
大写字母转小写。对于CVE漏洞分词后的英文单词,由于词汇首字母的大小写所代表的含义在该任务中没有区别,因此将大写字母均转化为小写。
词性还原。对于CVE漏洞分词后的英文单词,由于词汇单复数形式和动词原形的各种变形所代表的语义在该任务中没有区别,因此将复数名词全部转为单数形式,将动词形态全部转原型。
构建词库字典。对处理后的所有CNNVD词语和CVE单词分别构建为CNNVD词库字典和CVE词库字典,通过词库字典可将词汇转化为对应词库的整数形id,方便后续机器学习模型训练步骤中使用。
步骤3,模型训练。利用现有的深度学习方法构建的神经网络模型计算预处理后的CNNVD文本序列和CVE文本序列之间的语义相似度,模型输出值的值域为[0,1],模型的训练目标是使正样本输出的相似度尽量逼近1,负样本输出的相似度尽量逼近0。训练前将步骤2中的数据集进一步划分为训练集、测试集和验证集。训练集用来训练模型,验证集用来在训练过程中及时验证模型效果,防止模型过拟合,测试集用于测试和评估模型的实际效果。
如图4所示,该模型首先构建文本序列与文本序列的相似矩阵,然后采用多层卷积神经网络对其进行二分类,相似为1,不相似为0。模型具体流程如下:
计算两个文本序列的词向量。在神经网络模型中,每个单词用一个固定长度的词向量来表示。把文本序列中每个单词在各自词库字典中的唯一id转为词向量。
构建相似矩阵。漏洞的文本序列中的每一个词的词向量依次与另一个序列上的所有词的词向量计算向量相似值,计算方式使用余弦相似度或点乘方式,最后得到一个二维的相似矩阵。
对相似矩阵依次进行多层卷积操作和最大池化操作得到特征图,最后连接两层全连接网络进行二分类,最后一层的全连接层通过sigmoid激活函数后输出,输出值表示漏洞间的语义相似度。
模型通过反向传播方法进行迭代训练,直到训练结果满足目标后停止。
步骤4,相似度计算。为了充分利用漏洞的各种信息,使匹配结果更具鲁棒性,该实施例在为每对CNNVD漏洞和CVE漏洞计算了五类相似度,分别是模型语义相似度、标题相似度、描述相似度、版本号相似度和URL相似度,对这五个相似度值进行加权求和得到最终的漏洞相似度。加权求和公式为
漏洞相似度=α1Smodel2Stitle3Sdesc4Sversion5Surl
其中,权重α1ˉα5为常量,表示各相似度值所占权重,其值通过试验得到。各相似度的值域均为[0,1],具体含义和计算方式如下:
(1)模型语义相似度Smodel表征两个漏洞的描述在语义层面的相似程度,由步骤3中训练好的神经网络模型得到。
(2)标题相似度Stitle表征CNNVD漏洞的标题部分与CVE漏洞的描述部分的单词统计相似程度(由于CVE漏洞不包括标题字段,在该实施例中,以CVE漏洞的描述部分进行统计)。CNNVD漏洞的标题部分中含有产品名等英文单词,将该信息与CVE漏洞的描述部分中的英文产品名进行匹配,可以方便地筛选出主题相关性高(相同产品或相关产品)的漏洞。
Stitle的计算方式为:分别提取CNNVD标题信息和CVE描述信息中的英文产品名,构成各自的产品名列表,然后计算两个产品列表中相同产品的数量的占比作为标题相似度,此处分母为CNNVD标题中产品名的数量。
(3)描述相似度Sdesc表征CNNVD漏洞的描述部分和CVE漏洞的描述部分的单词统计相似程度。CNNVD漏洞的描述部分中含有产品名等英文单词,将该信息与CVE漏洞的描述部分中的英文产品名进行匹配,可以方便地筛选出主题相关性高(相同产品或相关产品)的漏洞。
Sdesc的计算方式为:分别提取CNNVD描述信息和CVE描述信息中的英文产品名,构成各自的产品名列表,然后计算两个产品列表中相同产品数量的占比作为描述相似度,此处分母为CNNVD描述中产品名的数量。
(4)版本号相似度Sversion表征CNNVD漏洞描述和CNNVD漏洞描述中对于版本号信息的相似程度,通常匹配的两个漏洞间的版本号是一致的,因此该信息可以作为一种强特征进行辅助匹配。
Sversion的计算方式为:分别提取CNNVD描述信息和CVE描述信息中的版本号信息,构成各自的版本号列表。然后依次计算两个版本号列表间各版本号字符串的相似度。取相互间相似度最大值作为最终的版本相似度。
(5)URL相似度Surl表示CNNVD漏洞的URL信息与CVE漏洞的URL信息之间的关联程度。CNNVD漏洞和CVE漏洞的参考字段中附带有很多网址信息(URL),如果漏洞对包含一个或多个相同的URL(如表1样例中加粗部分的两个URL),则二者极有可能描述的是同一漏洞,因此将该信息作为一种强特征进行辅助匹配。
Surl的计算方式为:通过正则表达式提取两个漏洞的URL信息,如果二者包含一个或多个相同的URL,则令Surl为1,否则为0。
步骤5,漏洞排序。对于一个CNNVD漏洞或CVE漏洞,分别与所有待匹配的候选漏洞按照步骤4的方法计算漏洞相似度,根据相似度大小对所有候选漏洞进行降序排序,选取前k个漏洞作为候选匹配结果。这样可挑选出真实匹配的漏洞或者圈定小范围的候选漏洞以缩小搜寻范围。表4是以一个CNNVD漏洞搜索CVE漏洞的返回值示例,所有CVE候选漏洞中,与CNNVD-202001-004相似度最高的前十个CVE漏洞作为候选匹配结果,可以看到,真正匹配的CVE-2019-20204位于排序结果的第一位。
表4漏洞匹配的排序结果示例
Figure BDA0002849565030000201
Figure BDA0002849565030000211
传统的人工匹配漏洞的方法依赖专业人员,匹配过程的时间成本和人力成本都非常高,且效率较低。而采用该实施例提出的基于深度学习的自动化的漏洞匹配方法,在保证较高准确率的情况下,可提升匹配效率,极大降低人力成本和时间成本,进而提升漏洞库的维护效率。在真实使用场景下,排序结果前十个结果的命中率(top10命中率)高于90%。随着数据量的增加,该实施例提供的漏洞匹配方法的准确率会更高。
此外,在该实施例中,负采样时增加了排序负采样的方式。也即,先只使用随机负采样的样本训练好初版的模型,此模型会对语义接近的漏洞对输出很高的相似度值,然后根据该初版模型的排序输出的结果筛选出语义相近的负样本。相比随机负采样,排序负采样选择语义相近但不匹配的漏洞对作为负样本以增加对此类漏洞对的关注,提高模型对此类漏洞对的辨识能力,从而减少模型误匹配。
该实施例对不同漏洞库的漏洞间计算漏洞相似度值,同时考虑模型语义相似度、标题相似度、描述相似度、版本号相似度和URL相似度这五部分,标题相似度和描述相似度可解决主题不一致问题,多种相似度加权和的计算方法可使得匹配结果更具鲁棒性。
该实施例通过构建文本序列与文本序列的相似矩阵,然后利用多层卷积神经网络对其进行二分类,输出即为漏洞的语义相似度的值。
实施例四
对应于上述实施例一和实施例二,本申请实施例四提供了一种漏洞匹配装置,相应地技术特征细节和对应的技术效果可参考上述实施例一和实施例二,在该实施例中不再赘述。图7为本申请实施例四提供的漏洞匹配装置的框图,如图7所示,该漏洞匹配装置包括:获取模块301、第一计算模块302、第二计算模块303和判断模块304。
获取模块301用于获取待匹配的两个漏洞的漏洞信息;第一计算模块302用于根据所述漏洞信息计算所述两个漏洞在多个维度上的相似度;第二计算模块303用于根据所述在多个所述维度上的相似度计算所述两个漏洞的综合相似度;以及判断模块304用于根据所述综合相似度判断所述两个漏洞是否匹配。
可选地,在一种实施例中,第一计算模块302在计算所述两个漏洞在多个维度上的相似度时,通过以下部分或全部步骤进行计算:根据所述漏洞信息的描述信息和预设的机器学习模型,计算所述两个漏洞的语义相似度;根据所述描述信息中相同产品名的数量,计算所述两个漏洞的描述相似度;根据所述描述信息中的版本号,计算所述两个漏洞的版本相似度;根据所述漏洞信息的参考信息中URL信息的关联程度,计算所述两个漏洞的URL相似度;根据所述漏洞信息的标题信息中相同产品名的数量,计算所述两个漏洞的标题相似度。
可选地,在一种实施例中,所述机器学习模型包括矩阵计算层、卷积池化层和全连接层,其中,所述卷积池化层包括若干组卷积层和池化层,计算所述两个漏洞的语义相似度的步骤包括:计算所述描述信息中词语对应的词向量;通过所述矩阵计算层,计算所述两个漏洞中一个漏洞的词向量,依次与另一个漏洞所有词向量的向量相似值,以得到相似性矩阵;通过所述卷积池化层,对所述相似矩阵依次进行卷积操作和最大池化操作,以得到特征图;以及将所述特征图输入至所述全链接层,以得到所述两个漏洞的语义相似度。
可选地,在一种实施例中,所述两个漏洞来源于不同的漏洞库,不同的所述漏洞库中描述信息的语言不同,计算所述描述信息中词语对应的词向量的步骤包括:在来源漏洞库对应的词库字典中,查找所述词语对应的标识,其中,对所述漏洞库中漏洞的描述信息,采用对应语种的分词方法进行分词,以得到词集,根据所述词集构建所述漏洞库对应的所述词库字典;将所述词语对应的标识转化为所述词语的词向量。
可选地,在一种实施例中,相互匹配的漏洞样本为正样本,不匹配的所述漏洞样本为负样本,采用以下步骤得到所述机器学习模型:随机获取多个所述负样本作为第一负样本;通过多个正样本和多个所述第一负样本构建第一训练集;通过所述第一训练集进行训练,以得到中间机器学习模型;通过所述中间机器学习模型计算多个所述负样本的语义相似度,以得到多个第一相似度;根据所述第一相似度选取负样本作为第二负样本,其中,负样本的所述第一相似度越大,被选取为所述第二负样本的概率越大;通过多个所述正样本、多个所述第一负样本和多个所述第二负样本构建第二训练集;通过所述第二训练集进行训练,以得到所述机器学习模型。
可选地,在一种实施例中,在所述第二训练集中,正负样本的比例为预设比例值,其中,所述预设比例值小于1。
可选地,在一种实施例中,计算所述两个漏洞的描述相似度的步骤包括:分别获取所述两个漏洞的描述信息中的产品名,得到每个所述漏洞对应的第一产品名序列;计算两个所述第一产品名序列中相同产品的数量,得到第一数量值;确定两个所述第一产品名序列中较少的产品名数量,得到第二数量值;计算所述第一数量值和所述第二数量值的比值,得到所述描述相似度。
可选地,在一种实施例中,计算所述两个漏洞的版本相似度的步骤包括:分别获取所述两个漏洞的描述信息中的版本号,得到每个所述漏洞对应的版本号列表;依次计算两个所述版本号列表之间各版本号的相似度;在所述各版本号的相似度中选取最大值作为所述版本相似度。
可选地,在一种实施例中,计算所述两个漏洞的URL相似度的步骤包括:通过正则表达式提取所述参考信息中URL信息,得到每个漏洞对应的URL集;若两个所述URL之间存在至少一个相同的URL,则确定所述URL相似度为1,若两个所述URL之间不存在相同的URL,则确定所述URL相似度为0。
可选地,在一种实施例中,计算所述两个漏洞的标题相似度的步骤包括:分别获取所述两个漏洞的标题信息中的产品名,得到每个所述漏洞对应的第二产品名序列;计算两个所述第二产品名序列中相同产品的数量,得到第三数量值;确定两个所述第二产品名序列中较少的产品名数量,得到第四数量值;计算所述第三数量值和所述第四数量值的比值,得到所述标题相似度。
实施例五
本实施例五还提供一种计算机设备,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图8所示,本实施例的计算机设备01至少包括但不限于:可通过***总线相互通信连接的存储器012、处理器011,如图8所示。需要指出的是,图8仅示出了具有组件存储器012和处理器011的计算机设备01,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器012(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器012可以是计算机设备01的内部存储单元,例如该计算机设备01的硬盘或内存。在另一些实施例中,存储器012也可以是计算机设备01的外部存储设备,例如该计算机设备01上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器012还可以既包括计算机设备01的内部存储单元也包括其外部存储设备。本实施例中,存储器012通常用于存储安装于计算机设备01的操作***和各类应用软件,例如实施例四的漏洞匹配装置等。此外,存储器012还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器011在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器011通常用于控制计算机设备01的总体操作。本实施例中,处理器011用于运行存储器012中存储的程序代码或者处理数据,例如漏洞匹配方法等。
实施例六
本实施例六还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储漏洞匹配装置,被处理器执行时实现实施例一的漏洞匹配方法。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (10)

1.一种漏洞匹配方法,其特征在于,包括:
获取待匹配的两个漏洞的漏洞信息;
根据所述漏洞信息计算所述两个漏洞在多个维度上的相似度;
根据所述在多个所述维度上的相似度计算所述两个漏洞的综合相似度;以及
根据所述综合相似度判断所述两个漏洞是否匹配。
2.根据权利要求1所述的漏洞匹配方法,其特征在于,在计算所述两个漏洞在多个维度上的相似度时,通过以下部分或全部步骤进行计算:
根据所述漏洞信息的描述信息和预设的机器学习模型,计算所述两个漏洞的语义相似度;
根据所述描述信息中相同产品名的数量,计算所述两个漏洞的描述相似度;
根据所述描述信息中的版本号,计算所述两个漏洞的版本相似度;
根据所述漏洞信息的参考信息中URL信息的关联程度,计算所述两个漏洞的URL相似度;
根据所述漏洞信息的标题信息中相同产品名的数量,计算所述两个漏洞的标题相似度。
3.根据权利要求2所述的漏洞匹配方法,其特征在于,所述机器学习模型包括矩阵计算层、卷积池化层和全连接层,其中,所述卷积池化层包括若干组卷积层和池化层,计算所述两个漏洞的语义相似度的步骤包括:
计算所述描述信息中词语对应的词向量;
通过所述矩阵计算层,计算所述两个漏洞中一个漏洞的词向量,依次与另一个漏洞所有词向量的向量相似值,以得到相似性矩阵;
通过所述卷积池化层,对所述相似矩阵依次进行卷积操作和最大池化操作,以得到特征图;以及
将所述特征图输入至所述全链接层,以得到所述两个漏洞的语义相似度。
4.根据权利要求3所述的漏洞匹配方法,其特征在于,所述两个漏洞来源于不同的漏洞库,不同的所述漏洞库中描述信息的语言不同,计算所述描述信息中词语对应的词向量的步骤包括:
在来源漏洞库对应的词库字典中,查找所述词语对应的标识,其中,对所述漏洞库中漏洞的描述信息,采用对应语种的分词方法进行分词,以得到词集,根据所述词集构建所述漏洞库对应的所述词库字典;
将所述词语对应的标识转化为所述词语的词向量。
5.根据权利要求2所述的漏洞匹配方法,其特征在于,相互匹配的漏洞样本为正样本,不匹配的所述漏洞样本为负样本,采用以下步骤得到所述机器学习模型:
随机获取多个所述负样本作为第一负样本;
通过多个正样本和多个所述第一负样本构建第一训练集;
通过所述第一训练集进行训练,以得到中间机器学习模型;
通过所述中间机器学习模型计算多个所述负样本的语义相似度,以得到多个第一相似度;
根据所述第一相似度选取负样本作为第二负样本,其中,负样本的所述第一相似度越大,被选取为所述第二负样本的概率越大;
通过多个所述正样本、多个所述第一负样本和多个所述第二负样本构建第二训练集;
通过所述第二训练集进行训练,以得到所述机器学习模型。
6.根据权利要求5所述的漏洞匹配方法,其特征在于,在所述第二训练集中,正负样本的比例为预设比例值,其中,所述预设比例值小于1。
7.根据权利要求2中所述的漏洞匹配方法,其特征在于,
计算所述两个漏洞的描述相似度的步骤包括:
分别获取所述两个漏洞的描述信息中的产品名,得到每个所述漏洞对应的第一产品名序列;
计算两个所述第一产品名序列中相同产品的数量,得到第一数量值;
确定两个所述第一产品名序列中较少的产品名数量,得到第二数量值;
计算所述第一数量值和所述第二数量值的比值,得到所述描述相似度;和/或,
计算所述两个漏洞的版本相似度的步骤包括:
分别获取所述两个漏洞的描述信息中的版本号,得到每个所述漏洞对应的版本号列表;
依次计算两个所述版本号列表之间各版本号的相似度;
在所述各版本号的相似度中选取最大值作为所述版本相似度;
和/或,
计算所述两个漏洞的URL相似度的步骤包括:
通过正则表达式提取所述参考信息中URL信息,得到每个漏洞对应的URL集;
若两个所述URL之间存在至少一个相同的URL,则确定所述URL相似度为1,若两个所述URL之间不存在相同的URL,则确定所述URL相似度为0;
和/或,
计算所述两个漏洞的标题相似度的步骤包括:
分别获取所述两个漏洞的标题信息中的产品名,得到每个所述漏洞对应的第二产品名序列;
计算两个所述第二产品名序列中相同产品的数量,得到第三数量值;
确定两个所述第二产品名序列中较少的产品名数量,得到第四数量值;计算所述第三数量值和所述第四数量值的比值,得到所述标题相似度。
8.一种漏洞匹配装置,其特征在于,包括:
获取模块,用于获取待匹配的两个漏洞的漏洞信息;
第一计算模块,用于根据所述漏洞信息计算所述两个漏洞在多个维度上的相似度;
第二计算模块,用于根据所述在多个所述维度上的相似度计算所述两个漏洞的综合相似度;以及
判断模块,用于根据所述综合相似度判断所述两个漏洞是否匹配。
9.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至7任一项所述方法的步骤。
CN202011521687.5A 2020-12-21 2020-12-21 漏洞匹配方法、装置、计算机设备和可读存储介质 Pending CN112528294A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011521687.5A CN112528294A (zh) 2020-12-21 2020-12-21 漏洞匹配方法、装置、计算机设备和可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011521687.5A CN112528294A (zh) 2020-12-21 2020-12-21 漏洞匹配方法、装置、计算机设备和可读存储介质

Publications (1)

Publication Number Publication Date
CN112528294A true CN112528294A (zh) 2021-03-19

Family

ID=75002201

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011521687.5A Pending CN112528294A (zh) 2020-12-21 2020-12-21 漏洞匹配方法、装置、计算机设备和可读存储介质

Country Status (1)

Country Link
CN (1) CN112528294A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113487010A (zh) * 2021-05-21 2021-10-08 国网浙江省电力有限公司杭州供电公司 基于机器学习的电网网络安全事件分析方法
CN114329486A (zh) * 2021-12-24 2022-04-12 ***数智科技有限公司 一种资产漏洞管理方法、装置、电子设备及存储介质
CN114329485A (zh) * 2021-12-24 2022-04-12 ***数智科技有限公司 基于深度学习的漏洞去重方法及装置
CN115563619A (zh) * 2022-09-27 2023-01-03 北京墨云科技有限公司 基于文本预训练模型的漏洞相似性对比方法及***

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102446254A (zh) * 2011-12-30 2012-05-09 中国信息安全测评中心 一种基于文本挖掘的相似漏洞查询方法
CN104166680A (zh) * 2014-07-12 2014-11-26 中国信息安全测评中心 一种基于开源库与文本挖掘的并行漏洞挖掘方法
KR101893090B1 (ko) * 2017-11-15 2018-08-29 한국인터넷진흥원 취약점 정보 관리 방법 및 그 장치
CN111865979A (zh) * 2020-07-20 2020-10-30 北京丁牛科技有限公司 一种漏洞信息处理方法及网络攻防平台
CN112003840A (zh) * 2020-08-10 2020-11-27 武汉思普崚技术有限公司 一种基于攻击面的漏洞检测方法及***

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102446254A (zh) * 2011-12-30 2012-05-09 中国信息安全测评中心 一种基于文本挖掘的相似漏洞查询方法
CN104166680A (zh) * 2014-07-12 2014-11-26 中国信息安全测评中心 一种基于开源库与文本挖掘的并行漏洞挖掘方法
KR101893090B1 (ko) * 2017-11-15 2018-08-29 한국인터넷진흥원 취약점 정보 관리 방법 및 그 장치
CN111865979A (zh) * 2020-07-20 2020-10-30 北京丁牛科技有限公司 一种漏洞信息处理方法及网络攻防平台
CN112003840A (zh) * 2020-08-10 2020-11-27 武汉思普崚技术有限公司 一种基于攻击面的漏洞检测方法及***

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113487010A (zh) * 2021-05-21 2021-10-08 国网浙江省电力有限公司杭州供电公司 基于机器学习的电网网络安全事件分析方法
CN113487010B (zh) * 2021-05-21 2024-01-05 国网浙江省电力有限公司杭州供电公司 基于机器学习的电网网络安全事件分析方法
CN114329486A (zh) * 2021-12-24 2022-04-12 ***数智科技有限公司 一种资产漏洞管理方法、装置、电子设备及存储介质
CN114329485A (zh) * 2021-12-24 2022-04-12 ***数智科技有限公司 基于深度学习的漏洞去重方法及装置
CN114329485B (zh) * 2021-12-24 2023-01-10 ***数智科技有限公司 基于深度学习的漏洞去重方法及装置
CN115563619A (zh) * 2022-09-27 2023-01-03 北京墨云科技有限公司 基于文本预训练模型的漏洞相似性对比方法及***
CN115563619B (zh) * 2022-09-27 2024-06-18 北京墨云科技有限公司 基于文本预训练模型的漏洞相似性对比方法及***

Similar Documents

Publication Publication Date Title
CN108959270B (zh) 一种基于深度学习的实体链接方法
CN108073568B (zh) 关键词提取方法和装置
KR101312770B1 (ko) 정보 분류를 위한 방법, 컴퓨터 판독가능 매체, 및 시스템
CN112528294A (zh) 漏洞匹配方法、装置、计算机设备和可读存储介质
CN113901376B (zh) 恶意网站检测方法、装置、电子设备和计算机存储介质
US10565253B2 (en) Model generation method, word weighting method, device, apparatus, and computer storage medium
CN108228758A (zh) 一种文本分类方法及装置
CN108027814B (zh) 停用词识别方法与装置
CN108038173B (zh) 一种网页分类方法、***及一种网页分类设备
Kausar et al. ProSOUL: a framework to identify propaganda from online Urdu content
CN113254643B (zh) 文本分类方法、装置、电子设备和
CN111866004B (zh) 安全评估方法、装置、计算机***和介质
CN104361037B (zh) 微博分类方法及装置
CN111460250A (zh) 用于画像的数据的清洗方法、装置、介质及电子设备
CN111325018B (zh) 一种基于web检索和新词发现的领域词典构建方法
CN112035599A (zh) 基于垂直搜索的查询方法、装置、计算机设备及存储介质
CN111506595B (zh) 一种数据查询方法、***及相关设备
CN110209659A (zh) 一种简历过滤方法、***和计算机可读存储介质
CN112328936A (zh) 一种网站识别方法、装置、设备及计算机可读存储介质
CN113204956B (zh) 多模型训练方法、摘要分段方法、文本分段方法及装置
CN111291551A (zh) 文本处理方法、装置、电子设备及计算机可读存储介质
CN112328469B (zh) 一种基于嵌入技术的函数级缺陷定位方法
CN110705285B (zh) 一种政务文本主题词库构建方法、装置、服务器及可读存储介质
CN107291686B (zh) 情感标识的辨识方法和情感标识的辨识***
CN110888977B (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