CN115496129B - 一种软件匹配方法及装置 - Google Patents
一种软件匹配方法及装置 Download PDFInfo
- Publication number
- CN115496129B CN115496129B CN202211038493.9A CN202211038493A CN115496129B CN 115496129 B CN115496129 B CN 115496129B CN 202211038493 A CN202211038493 A CN 202211038493A CN 115496129 B CN115496129 B CN 115496129B
- Authority
- CN
- China
- Prior art keywords
- software
- similarity
- identifier
- identifiers
- different
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 155
- 238000012545 processing Methods 0.000 claims description 23
- 238000004364 calculation method Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 238000012356 Product development Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
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
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
Abstract
一种软件匹配方法,该方法包括:获取第一软件的第一标识;获取至少一个第二软件的第二标识,以得到至少一个第二标识,每个第二软件均具有一个第二标识;针对至少一个第二标识中的任意一个第二标识,利用N个相似度算法中的每一个,分别计算第一标识和任意一个第二标识间的相似度值,以得到N个相似度值,N≥2;根据N个相似度值和N个相似度算法各自的权重,确定第一标识和任意一个第二标识间的目标相似度值;当目标相似度值大于或等于相似度阈值时,确定与任意一个第二标识对应的第二软件和第一软件匹配。由此,通过融合多个相似度算法,确定出两个软件的标识是否相似,实现了软件的自动匹配,提升了软件匹配效率和准确度。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种软件匹配方法及装置。
背景技术
随着互联网的高速发展,企业在构建自己的软件、服务时经常会用到开源软件,开源软件带来的安全漏洞风险也越来越普遍。漏洞库成为开源软件漏洞管理过程中不可缺少的部分。
目前,在国家层面,大部分国家均已构建出自己的漏洞库。在公司层面,为了对产品生命周期中使用的开源软件进行安全管理,企业也会构建自己的漏洞库,其漏洞源往往来自于国家级的漏洞库、商业级别的漏洞库以及开源软件的官方披露网站等。企业自己构建的漏洞库非常关注漏洞的受影响软件列表。然而针对同一款软件在不同的批露源中经常存在不同的批露名称,即使是同一个披露源,同一款软件的披露名称也有可能不同,这使得企业在进行漏洞管理时需要耗费大量精力将“外部披露的存在安全漏洞的软件”(以下简称外部漏洞软件),与“企业内部选定的可以应用到产品开发中的开源软件”(以下简称内部选型软件)进行逐一匹配,且由于人工处理很容易存在误匹配、漏匹配问题。
发明内容
本申请提供了一种软件匹配方法、装置、计算机存储介质及计算机产品,能够实现软件的自动匹配,提升了软件匹配效率和准确度。
第一方面,本申请提供一种软件匹配方法,方法包括:获取第一软件的第一标识;获取至少一个第二软件的第二标识,以得到至少一个第二标识,每个第二软件均具有一个第二标识;针对至少一个第二标识中的任意一个第二标识,利用N个相似度算法中的每一个,分别计算第一标识和任意一个第二标识间的相似度值,以得到N个相似度值,N≥2;根据N个相似度值和N个相似度算法各自的权重,确定第一标识和任意一个第二标识间的目标相似度值;当目标相似度值大于或等于相似度阈值时,确定与任意一个第二标识对应的第二软件和第一软件匹配。
这样,可以先获取一个第一软件的第一标识,并获取至少一个第二软件的第二标识。然后,再通过融合多个相似度算法,依次确定第一标识和各个第二标识是否相似,进而确定出第一软件与各个第二软件是否匹配,实现了软件的自动匹配,提升了软件匹配效率和准确度。另外,由于其融合了多个相似度算法,因此其可以实现对多种类型的软件的标识的相似度评估,提升了软件匹配的泛化能力。
在一种可能的实现方式中,第一标识和第二标识可以分别用于表征第一软件和第二软件的软件名称或软件版本。示例性的,第一标识和第二标识分别用于表征第一软件和第二软件的软件名称或软件版本,可以但不限于是指:第一标识用于表征第一软件的软件名称,第二标识用于表征第二软件的软件名称,或者,第一标识用于表征第一软件的软件版本,第二标识用于表征第二软件的软件版本。
在一种可能的实现方式中,在根据N个相似度值和N个相似度算法各自的权重,确定第一标识和任意一个第二标识间的目标相似度值之前,方法还包括:获取在预设时间段内的M组标识,M组标识中的每组标识内均包含一个第三软件的第三标识和一个第四软件的第四标识,每组标识内的第三标识和第四标识相似,M≥1。其中,M组标识中不同组标识所包含的第三标识不同,和/或,M组标识中不同组标识所包含的第四标识不同;不同的第三标识中的每一个与不同的第三软件中的每一个关联,不同的第四标识中的每一个与不同的第四软件中的每一个关联;分别确定利用N个相似度算法中的每一个计算得到的M组标识中各组标识内的第三标识和第四标识的相似度值,以得到N*M个相似度值;根据N*M个相似度值,确定N个相似度算法中各个算法的权重。这样,通过自动历史记录中确定出相似的软件对应的相似度值,可以确定出本次计算所需的各个算法的权重。由此实现了对各个算法的权重不断优化,提升了软件匹配的准确度。示例性的,N*M是指N和M的乘积。
在一种可能的实现方式中,根据N*M个相似度值,确定N个相似度算法中各个算法的权重,具体包括:针对N个相似度算法中的任意一个算法,从N*M个相似度值中,确定出基于任意一个算法计算得到的相似度值,以得到M个相似度值;根据M个相似度值之和,以及,N*M个相似度值之和,确定该任意一个算法的权重。示例性的,可以将M个相似度值之和与N*M个相似度值之和间的比值作为该任意一个算法的权重,也可以先将M个相似度之和与N*M个相似度值之和相加,得到目标和值,然后在将M个相似度值之和与目标和值间的比值作为该任意一个算法的权重。
在一种可能的实现方式中,方法还包括:若M组标识中的第j组标识被修订为不相似,则将M个相似度值中与第j组标识相关的相似度值修正为负数或零。由此以降低计算错误的情况,提升软件匹配的准确度。
在一种可能的实现方式中,在确定与任意一个第二标识对应的第二软件和第一软件匹配之前,方法还包括:判断第一标识对应的漏洞标识与任意一个第二标识对应的漏洞标识相同;若相同,则更新相似度阈值,其中,更新后的相似度阈值低于更新前的相似度阈值。这样,由于漏洞标识相同,所以这两个软件大概率是相同的软件或者是具有依赖关系的软件,因此,在进行相似度匹配时可以适当降低阈值,以减少因默认阈值较高而导致软件关联关系缺失的问题,提升软件匹配的准确度。
在一种可能的实现方式中,N个相似度算法包括:余弦相似度算法,杰卡德相似度算法,最小编辑距离算法,欧氏距离算法,和,皮尔逊相似度中的至少两种。
第二方面,本申请提供一种软件匹配装置,该装置可以包括:获取单元和处理单元。其中,获取单元用于获取第一软件的第一标识;以及,获取至少一个第二软件的第二标识,以得到至少一个第二标识,每个第二软件均具有一个第二标识。处理单元用于针对至少一个第二标识中的任意一个第二标识,利用N个相似度算法中的每一个,分别计算第一标识和任意一个第二标识间的相似度值,以得到N个相似度值,N≥2;以及,根据N个相似度值和N个相似度算法各自的权重,确定第一标识和任意一个第二标识间的目标相似度值;以及,当目标相似度值大于或等于相似度阈值时,确定与任意一个第二标识对应的第二软件和第一软件匹配。
在一种可能的实现方式中,处理单元在根据N个相似度值和N个相似度算法各自的权重,确定第一软件名称和第二软件名称间的目标相似度值之前,还用于:获取在预设时间段内的M组标识,M组标识中的每组标识内均包含一个第三软件的第三标识和一个第四软件的第四标识,每组标识内的第三标识和第四标识相似,M≥1。其中,M组标识中不同组标识所包含的第三标识不同,和/或,M组标识中不同组标识所包含的第四标识不同;不同的第三标识中的每一个与不同的第三软件中的每一个关联,不同的第四标识中的每一个与不同的第四软件中的每一个关联;分别确定利用用N个相似度算法中的每一个计算得到的M组标识中各组标识内的两个软件的标识的相似度值,以得到N*M个相似度值;根据N*M个相似度值,确定N个相似度算法中各个算法的权重。
在一种可能的实现方式中,第一标识和第二标识可以分别用于表征第一软件和第二软件的软件名称或软件版本。
在一种可能的实现方式中,处理单元在根据N*M个相似度值,确定第一标识和任意一个第二标识间的目标相似度值时,具体用于:针对N个相似度算法中的任意一个算法,从N*M个相似度值中,确定出基于任意一个算法计算得到的相似度值,以得到M个相似度值;根据M个相似度值之和,以及,N*M个相似度值之和,确定任意一个算法的权重。
在一种可能的实现方式中,处理单元,还用于:若M组标识中的第j组标识被修订为不相似,则将M个相似度值中与第j组标识相关的相似度值修正为负数或零。
在一种可能的实现方式中,处理单元在确定与任意一个第二标识对应的第二软件和第一软件匹配之前,还用于:判断第一标识对应的漏洞标识与任意一个第二标识对应的漏洞标识是否相同;若相同,则更新相似度阈值,其中,更新后的相似度阈值低于更新前的相似度阈值。
在一种可能的实现方式中,N个相似度算法包括:余弦相似度算法,杰卡德相似度算法,最小编辑距离算法,欧氏距离算法,和,皮尔逊相似度中的至少两种。
第三方面,本申请提供一种电子设备,包括:至少一个存储器,用于存储程序;至少一个处理器,用于执行存储器存储的程序,当存储器存储的程序被执行时,处理器用于执行第一方面或第一方面的任一种可能的实现方式所描述的方法。示例性的,该电子设备可以但不限于为服务器。
第四方面,本申请提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,当计算机程序在处理器上运行时,使得处理器执行第一方面或第一方面的任一种可能的实现方式所描述的方法。
第五方面,本申请提供一种计算机程序产品,当计算机程序产品在处理器上运行时,使得处理器执行第一方面或第一方面的任一种可能的实现方式所描述的方法。
可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
图1是本申请实施例提供的一种不同漏洞源针对同一漏洞披露的软件名称与真实的软件名称间的关系示意图;
图2是本申请实施例提供的一种软件匹配系统的架构示意图;
图3是本申请实施例提供的一种软件匹配方法的流程示意图;
图4是本申请实施例提供的一种确定各个相似度算法权重的步骤示意图;
图5是本申请实施例提供的一种软件匹配装置的硬件结构示意图。
具体实施方式
本文中术语“和/或”,是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。本文中符号“/”表示关联对象是或者的关系,例如A/B表示A或者B。
本文中的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一响应消息和第二响应消息等是用于区别不同的响应消息,而不是用于描述响应消息的特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或者两个以上,例如,多个处理单元是指两个或者两个以上的处理单元等;多个元件是指两个或者两个以上的元件等。
示例性的,图1示出了不同漏洞源针对同一漏洞披露的软件名称与真实的软件名称间的关系示意图。如图1所示,软件名称为“abc min hd 2.0.0”的企业在其官网披露“CVE-2021-xx”后,不同的披露源(即漏洞库1、2或3等)可以针对“CVE-2021-xx”披露相应的软件名称。漏洞库1披露的软件名称为“hd 2.0.0”,漏洞库2披露的软件名称为“min hd2.0”,漏洞库3披露的软件名称为“abc min”。不同披露源所披露的软件名称均与真实的软件名称“abc min hd 2.0.0”对应。而企业内部为真实的软件名称“abc min hd 2.0.0”所选取的称为“abc min hd”。若要将不同的披露源所披露的软件名称与企业内部选取的软件名称相关联,一般是通过人工操作逐一进行关联,操作繁琐,且容易出现误匹配、漏匹配问题。
一般地,可以通过比较不同软件(比如外部漏洞软件和内部选型软件)的名称间的相似度,并将相似度较高的两个软件确定为相似软件,以及建立两者间的关联关系,即可以将相似度算法引入到软件匹配中。但是在基于相似度算法进行软件匹配时,往往是采用单一的相似度算法,且是通过设定固定的一个阈值来判断两个软件是否相似。但采用单一的相似度算法仅能够针对特定类型(比如拼写错误的类型等)的软件名称进行计算,而不适用于其他类型(比如名称完全不同的类型等)的软件名称,因此,这种匹配方式无法满足多种类型的软件名称的相似度评估。另外,其采用的是单一阈值的方式,该阈值是基于经验获得,其合理性难以解释,也容易出现误判的情况。例如,利用同一个漏洞对应的外部披露的软件和企业内部选取的软件,大概率是相同的软件或者是具有依赖关系的软件,但在匹配时存在因默认阈值较高而导致软件关联失败的问题。
有鉴于此,本申请实施例提供了一种软件匹配方法,主要通过融合多个相似度算法,实现对多种类型的软件名称和/或软件版本的相似度评估,提升了软件匹配的泛化能力。另外,在匹配过程中,可以自动调整各个相似度算法的权重,进而提升了软件匹配的准确度。由此实现了外部漏洞在企业内部的精准感知,提升了漏洞感知效率。另外,在进行相似度比较时,针对同一个漏洞对应的外部披露的软件和企业内部选取的软件,可以适当降低比较阈值,从而减少了在匹配时因默认阈值较高而导致软件关联失败的问题。
接下来,对本申请提供的一种软件匹配系统进行介绍。
示例性的,图2示出了一种软件匹配系统。如图2所示,该软件匹配系统200可以包括:软件识别模块210,外部漏洞软件库220,内部选型软件库230,第一匹配模块240,软件关系库250,和第二匹配模块260。
其中,软件识别模块210主要是用于从网络或者外部的漏洞源中获取原始的漏洞报告,以及,根据漏洞报告确定出包含该漏洞报告所描述的漏洞的软件的名称(以下简称“漏洞软件名称”)和版本(以下简称“漏洞软件版本”)。在一些实施例中,软件识别模块210在获取到漏洞报告后,可以判断该漏洞报告中是否已对软件进行结构化处理。当已进行结构化处理时,软件识别模块210可以直接对漏洞报告中结构化的软件信息进行解析,以获取到漏洞软件名称和漏洞软件版本。当未进行结构化处理时,软件识别模块210可以利用命名实体识别(named entity recognition,NER)模型对漏洞报告中的漏洞描述进行识别,以获取到漏洞软件名称和/或漏洞软件版本。示例性的,当漏洞报告中包含有软件版本列表时,可以确定漏洞报告中已对软件进行结构化处理。当漏洞报告中未包含有软件版本列表时,可以确定漏洞报告中未对软件进行结构化处理。在一些实施例中,一个漏洞报告可以披露至少一个漏洞软件名称,和/或,披露至少一个漏洞软件版本。
外部漏洞软件库220主要是用于存储由软件识别模块210识别出的外部漏洞软件的软件名称和软件版本。另外,外部漏洞软件库220中还可以存储漏洞源的名称,和/或,各个漏洞的标识等。其中,各个漏洞的标识可以从漏洞报告中提取得到。示例性的,漏洞的标识可以为通用漏洞披露(common vulnerabilities and exposures,CVE)编号。
内部选型软件库230主要是用于存储企业内部所选取的软件的软件名称(以下简称“内部选型软件名称”)和版本(以下简称“内部选型软件版本”)。内部选型软件名称和内部选型软件版本均可以但不限于由企业内部自行标定。另外,内部选型软件库230中还可以存储有企业内部所选取的软件内包含的漏洞的标识。
第一匹配模块240主要是用于通过融合多个相似度算法,确定外部漏洞软件库220中的漏洞软件名称和内部选型软件库230中的内部选型软件名称间的相似度值,以及,基于确定出的相似度值,判断两者是否相似,并在两者相似时,建立两者之间的关联关系,并存储至软件关系库中。在一些实施例中,当建立这两个软件名称之间的关联关系时,可以确定这两个软件名称所对应的软件匹配。在一些实施例中,第一匹配模块240还可以用于通过融合多个相似度算法,确定外部漏洞软件库220中的漏洞软件版本和内部选型软件库230中的内部选型软件版本间的相似度值,以及,基于确定出的相似度值,判断两者是否相似,并在两者相似时,建立两者之间的关联关系,和存储至软件关系库中。在一些实施例中,当建立这两个软件版本之间的关联关系时,可以确定这两个软件版本所对应的软件匹配。
在一些实施例中,在确定外部漏洞软件库220中的软件名称和内部选型软件库230中的软件名称是否相似时,可以先从外部漏洞软件库220选取一个软件名称;然后,在依次确定该软件名称与内部选型软件库230中各个软件名称是否相似。例如,当外部漏洞软件库220中包含软件名称a,内部选型软件库230中包含软件名称b、c和d时,可以先判断软件名称a和软件名称b是否相似;然后,再判断软件名称a和软件名称c是否相似;最后,再判断软件名称a和软件名称d是否相似。当然也可以是其他的判断顺序,此处不做限定。同样的,也可以先从内部选型软件库230选取一个软件名称;然后,在依次确定该软件名称与外部漏洞软件库220中各个软件名称是否相似。具体可根据实际情况而定,此处不做限定。另外,在确定外部漏洞软件库220中的软件版本和内部选型软件库230中的软件版本是否相似时,也可以参考“确定外部漏洞软件库220中的软件名称和内部选型软件库230中的软件名称是否相似”的方式,此处不再赘述。
在一些实施例中,多个相似度算法可以包括余弦相似度,杰卡德(Jaccard)相似度,和,最小编辑距离中的至少两项。
当利用余弦相似度计算一个漏洞软件名称和一个内部选型软件名称间的相似度值时,可以先提取出漏洞软件名称和内部选型软件名称所包含的字符;然后,在分别计算各个字符在漏洞软件名称和内部选型软件名称中出现的频率,以生成字符向量;最后,可以利用漏洞软件名称和内部选型软件名称各自所对应的字符向量的夹角余弦值,从而得到两者的相似度。
举例来说,若漏洞软件名称为“apache tomcat”,内部选型软件名称为“tomcat”,提取两者所包含的字符可以得到“a,c,e,h,m,o,p,t”。依次计算各个字符在漏洞软件名称和内部选型软件名称中出现的频率可以得到,漏洞软件名称对应的字符频率依次为“3,2,1,1,1,1,1,2”,内部选型软件名称对应的字符频率依次为“1,1,0,0,1,1,0,2”。所以,漏洞软件名称对应的字符向量可以为“a=(3,2,1,1,1,1,1,2)”,内部选型软件名称对应的字符向量可以为“b=(1,1,0,0,1,1,0,2)”。最后,计算向量a和b的夹角余弦值,即为两者的相似度值。
当利用杰卡德相似度计算一个漏洞软件名称和一个内部选型软件名称间的相似度值时,可以先确定k-shingle(即文档中连续出现的k个字符构成的序列)中k的取值;然后,在分别从漏洞软件名称和内部选型软件名称提取出连续出现的k个字符;接着,可以计算提取到的字符的交集个数的数量,以及,并集的个数的数量;最后,由交集个数的数量,以及,并集的个数的数量,确定出漏洞软件名称和内部选型软件名称间的相似度值。示例性的,杰卡德相似度计算公式可以如下所示:
其中,/(A,B)为A和B相似度值;|A∩B|为从A和B中提取到的字符的交集的个数;|A∪B|为从A和B中提取到的字符的并集的个数。
举例来说,若漏洞软件名称为“apache tomcat”,内部选型软件名称为“tomcat”,且k—shingle中的k取值为2,对漏洞软件名称进行字符提取可以得到“ap,ac,he,to,mc,at”,对内部选型软件名称进行字符提取可以得到“to,mc,at”。两者交集的个数为3个,分别为:to,mc,at,并集的个数为6个,分别为:ap,ac,he,to,mc,at;所以,两者的相似度值可以为3/6=0.5。
当利用最小编辑距离计算一个漏洞软件名称和一个内部选型软件名称间的相似度值时,可以先确定由其中一个名称变成另一个名称的操作次数,然后,再由该操作次数和预先设定的公式,确定出两者的相似度值。
举例来说,若漏洞软件名称为“apache tomcat”,内部选型软件名称为“tomcat”。由“apache tomcat”变为“tomcat”,需要6次字符删除操作,因此,两者的编辑距离为6。进一步地,若预先设定的公式为S=1-lev(a,b)/max(len(a),len(b)),其中,lev(a,b)为由a和b之间的编辑距离,len(a)为a中所包含的字符个数,len(b)为b中所包含的字符个数。通过该公式可以得到两者的相似度值
进一步地,在由各个相似度算法分别计算得到一个漏洞软件名称和一个内部选型软件名称间的相似度值后,可以基于各个相似度算法的权重,对由各个相似度算法计算得到的相似度值进行加权平均,以得到该漏洞软件名称和该内部选型软件名称间最终的相似度值。该最终的相似度值可以表示漏洞软件名称和内部选型软件名称间的相似度。这样实现不同的相似度算法间的融合。对于确定漏洞软件版本和内部选型软件版本间的相似度的方式,可以参考确定漏洞软件名称和内部选型软件名称间的相似度的方式,此处不再赘述。
对于各个相似度算法的权重,可以预先设定。另外,也可以在确定出漏洞软件名称和内部选型软件名称相似时,存储利用各个相似度算法计算得到的这两个软件名称的相似度值,并在一段时间(比如每隔一周或半个月等)后,基于存储的各个相似度算法计算得到的相似度值,确定在后续计算过程中各个相似度算法的权重。也即是说,各个相似度算法的权重可以周期性自动更新,每次更新时均可以利用历史记录中记录的各个相似度算法对应的相似度值,确定本次或者后续一段时间内计算某两个软件的软件名称间的相似度时所需的各个相似度算法的权重。其中,历史记录中记录的信息可以包括:在确定出至少一组相似的软件名称时,利用各个相似度算法计算得到的各组相似的软件名称的相似度值。例如,若已确定出软件名称a1和b1相似,软件名称a2和b2相似,软件名称a3和b3相似,当在计算软件名称a4和b4是否相似时,可以根据利用各个相似度算法计算得到的软件名称a1和b1间的相似度值、利用各个相似度算法计算得到的软件名称a2和b3间的相似度值、利用各个相似度算法计算得到的软件名称a3和b3间的相似度值,确定在计算软件名称a4和b4间的相似度值时各个相似度算法的权重。示例性的,历史记录中的时间跨度和/或存储的信息数量,可以根据实际情况确定,此处不做限定。
具体地,针对任意一个相似度算法,可以将一段时间内存储的通过其计算得到的相似度值相加,以得到第一和值,并将该段时间内存储的所有算法的相似度值相加,以得到第二和值;然后,将第一和值与第二和值间的比值作为该任意一个相似度算法的权重。举例来说,若在一段时间的确定出软件名称a1和b1相似,软件名称a2和b2相似,和,软件名称a3和b3相似,且基于各个相似度算法计算得到的相似度值如表1所示,则余弦相似度算法的权重为W1:W1=(c1+c2+c3)/(c1+c2+c3+d1+d2+d3+e1+e2+e3),杰卡德相似度算法的权重为W2:W2=(d1+d2+d3)/(c1+c2+c3+d1+d2+d3+e1+e2+e3),最小编辑距离算法的权重为W3:W3=(e1+e2+e3)/(c1+c2+c3+d1+d2+d3+e1+e2+e3)。示例性的,不同的软件名称可以与不同的软件关联。
表1
另外,当由前述所描述的计算方式计算得到两个软件名称相似时,若经人工确认两者为不相似,则表明存在计算错误的情况。因此,为了提升后续计算的准确度,在计算各个相似度算法的权重时,可以将通过各个相似度算法计算得到的这两个软件名称的相似度值修正为负值或者修正为零。例如,以修正为负值为例,继续参阅表1,若软件名称a1和b1被人为修改为不相似,则通过表1计算得到的余弦相似度算法的权重为W1:W1=(-c1+c2+c3)/(-c1+c2+c3+d1+d2+d3+e1+e2+e3),杰卡德相似度算法的权重为W2:W2=(-d1+d2+d3)/(c1+c2+c3-d1+d2+d3+e1+e2+e3),最小编辑距离算法的权重为W3:W3=(-e1+e2+e3)/(c1+c2+c3+d1+d2+d3-e1+e2+e3)。
对于确定一个漏洞软件版本和一个内部选型软件版本间的相似度时,所选取的各个相似度算法的权重,可以参考确定一个漏洞软件名称和一个内部选型软件名称间的相似度的方式时,所选取的各个相似度算法的权重,此处不再赘述。
在一些实施例中,当外部披露的某个漏洞软件所包含的漏洞的标识和企业内部选取的某个软件所包含的漏洞的标识相同时,在对这两个软件的名称或版本进行相似度比较时,可以将设定的阈值降低一定比例,比如降低20%。由于两个软件所包含的漏洞的标识相同,所以这两个软件大概率是相同的软件或者是具有依赖关系的软件,因此,在进行相似度匹配时可以适当降低阈值,以减少因默认阈值较高而导致软件关联关系缺失的问题,提升软件匹配的准确度。
软件关系库250主要是用于存储漏洞软件名称和内部选型软件名称间的关系,和/或,存储漏洞软件版本和内部选型软件版本间的关系。
第二匹配模块260主要是用于基于软件关系库250,将外部披露的漏洞软件解析成企业内部选取的软件(即内部选型软件)。在一些实施例中,第二匹配模块260从网络或外部的漏洞源上获取外部披露的漏洞软件名称后,可以利用该漏洞软件名称在软件关系库250中查询,从而查询到与该漏洞软件名称相关联的内部选型软件名称,并输出。同样的,第二匹配模块260从网络上获取外部披露的漏洞软件版本后,可以利用该漏洞软件版本在软件关系库250中查询,从而查询到与该漏洞软件版本相关联的内部选型软件版本,并输出。这样即可以实现自动完成软件匹配。
在一些实施例中,软件匹配系统200中还可以包括配置模块(图中未示出)。通过该配置模块,针对无任何相似性的软件,用户可以支持手工配置两个软件名称间的映射和两个软件版本间的映射。另外,通过该配置模块还可以将确定出不相似,但相似度值高于一定阈值的软件名称或软件版本展示给用户,以由用户确定是否进行关联。示例性的,在向用户展示时,可以以内部选型软件名称或版本为基线,展示与基线相似的软件名称或版本,也可以以漏洞软件名称或版本为基线,展示与基线相似的软件名称或版本,具体可根据实际情况而定,此处不做限定。此外,通过该配置模块,用户还可以基于实际需求修改已确定出的软件关系,和/或,修改各个相似度算法的权重,等等。
可以理解的是,本申请实施例示意的结构并不构成对软件匹配系统200的具体限定。在本申请另一些实施例中,软件匹配系统200可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
接下来,基于上述图2中所示的软件匹配系统200,对本申请实施例提供的软件匹配方法进行介绍。该软件匹配方法中的部分或全部内容可以参考前述对软件匹配系统200的描述。
示例性的,图3示出了一种软件匹配方法。可以理解,该方法可以通过任何具有计算、处理能力的装置、设备、平台、设备集群来执行。其中,该软件匹配方法可以但不限于应用于电子设备中。示例性的,该电子设备可以但不限于为服务器。如图3所示,该软件匹配方法,包括以下步骤:
S310、获取第一软件的第一标识。
本实施例中,第一软件的第一标识可以位于第一软件库中。在获取第一标识时,可以从该第一软件库中获取。示例性的,第一软件库可以为前述的外部漏洞软件库220,第一软件可以为前述的外部披露的漏洞软件,或者,第一软件库可以为前述的内部选型软件库230,第一软件可以为前述的企业内部选取的软件。
S320、获取至少一个第二软件的第二标识,以得到至少一个第二标识,每个第二软件均具有一个第二标识。
本实施例中,第二软件的第二标识可以位于第二软件库中。第二软件库中包括至少一个第二标识,且一个第二标识与一个第二软件关联,即一个第二软件具有一个第二标识。在获取第二标识时,可以从该第二软件库中获取。示例性的,第二软件库可以为前述的外部漏洞软件库220,第二软件可以为前述的外部披露的漏洞软件,或者,第二软件库可以为前述的内部选型软件库230,第二软件可以为前述的企业内部选取的软件。其中,第一软件库和第二软件库不同,第一软件和第二软件也不同。
在一些实施例中,可以在获取到所有所需的第二标识后,在执行后续步骤,亦可以获取到一部分第二标识后,在执行后续步骤,具体可根据实际情况而定,此处不做限定。示例性的,可以每获取到一个第二标识,就执行一次后续的步骤,也可以在获取到一部分第二标识后,在按照预设顺序(比如获取到的时间的前后等)依次执行后续的步骤。在一些实施例中,按照预设顺序依次执行后续的步骤,可以理解为:先按照预设顺序从多个第二标识中选取一个第二标识,然后,在判断这个第二标识和第一标识是否相似,以及确定这个第二标识对应的第二软件和第一标识对应的第一软件是否匹配;接着,再从多个第二标识中选取出另一个第二标识进行判断,直至完成对所有的第二标识的判断。其中,每个第二标识不同,即不同的第二软件具有不同的第二标识。
S330、针对至少一个第二标识中的任意一个第二标识,利用N个相似度算法中的每一个,分别计算第一标识和任意一个第二标识间的相似度值,以得到N个相似度值,其中,N≥2。
本实施例中,针对至少一个第二标识中的任意一个第二标识,可以利用N个相似度算法,分别计算第一标识和该任意一个第二标识间的相似度值,以得到N个相似度值,N≥2。示例性的,N个相似度算法可以包括余弦相似度算法,杰卡德相似度算法,和,最小编辑距离算法中的至少两种。示例性的,对于利用余弦相似度算法,杰卡德相似度算法,和,最小编辑距离算法分别计算第一标识和该任意一个第二标识间的相似度的方式可以参见前述对第一匹配模块240中的介绍,此处不再赘述。在一些实施例中,相似度算法还可以包括欧氏距离算法或者皮尔逊相似度算法等,具体可根据实际情况而定,此处不做限定。在一些实施例中,N个相似度算法也可以替换为除余弦相似度算法,杰卡德相似度算法,最小编辑距离算法,欧氏距离算法,和,皮尔逊相似度算法之外的相似度算法,替换后的方案仍在本申请的保护范围之内。
S340、根据N个相似度值和N个相似度算法各自的权重,确定第一标识和任意一个第二标识间的目标相似度值。
本实施例中,获取到N个相似度值后,可以根据N个相似度值和N个相似度算法各自的权重,确定出第一标识和该任意一个第二标识间的目标相似度值。示例性的,可以基于各个相似度算法对应的权重,将N个相似度值进行加权平均,以得目标相似度值。
在一些实施例中,对于各个相似度算法对应的权重,可以预先设定,也可以在确定出两个软件的标识相似时,存储利用各个相似度算法计算得到的这两个软件的标识的相似度值,并在一段时间(比如每隔一周或半个月等)后,基于存储的各个相似度算法计算得到的相似度值,确定各个相似度算法的权重。具体地,如图4所示,确定各个相似度算法的权重的过程可以包括以下步骤:
S410、获取在预设时间段内的M组标识,M组标识中的每组标识内均包含一个第三软件的第三标识和一个第四软件的第四标识,每组标识内的第三标识和第四标识相似,M≥1,其中,M组标识中不同组标识所包含的第三标识不同,和/或,M组标识中不同组标识所包含的第四标识不同;不同的第三标识中的每一个与不同的第三软件中的每一个关联,不同的第四标识中的每一个与不同的第四软件中的每一个关联。
本实施例中,每当确定出某两个软件的标识相似时,均可以记录这两个软件的标识。其中,每两个相似的软件的标识均可以组成一组标识。每过一段时间均可以确定一次记录的标识的数量,从而获取到在预设时间段内的M组标识。示例性的,不同的软件可以具有不同的标识,或者,不同的标识与不同的软件关联。在一些实施例中,为便于描述,可以将每组标识所包含的两个软件的标识可以称之为第三软件的第三标识和第四软件的第四标识。其中,M组标识中不同组标识所包含的第三软件的第三标识不同,和/或,M组标识中不同组标识所包含的第四软件的第四标识不同。例如,当第一组标识中可以包括软件a1的标识和软件a2的标识,第二组标识中可以包括软件a1的标识和软件a3的标识,或者,第二组标识中可以包括软件a3的标识和软件a2的标识,或者,第二组标识中可以包括软件a3的标识和软件a4的标识。
S420、分别确定利用N个相似度算法中的每一个计算得到的M组标识中各组标识内的第三标识和第四标识的相似度值,以得到N*M个相似度值。
本实施例中,在确定出某两个软件的标识相似时,可以记录下利用各个相似度算法计算得到的这两个软件的标识间的相似度值。这样,在确定出M租标识后,可以通过查询这M组标识中每组标识所对应的相似度值,即可以得到N*M个相似度值。示例性的,N*M是指N和M的乘积。
S430、根据N*M个相似度值,确定N个相似度算法中各个算法的权重。
本实施例中,在得到N*M个相似度值后,即可以根据N*M个相似度值,确定N个相似度算法中各个算法的权重。其中,针对N个相似度算法中的任意一个算法,可以先从N*M个相似度值中,确定出基于该任意一个算法计算得到的相似度值,以得到M个相似度值;然后,再将M个相似度值相加,以得到第一和值,以及,将N*M个相似度值相加,以得到第二和值;最后,可以将第一和值和第二和值的比值,作为该任意一个算法的权重,或者,可以将第一和值与由第一和值和第二和值得到和值间的比值,作为该任意一个算法的权重。由此以得到各个相似度算法的权重。另外,当M组标识中的第j组标识被修订为不相似时,在计算过程中,可以将M个相似度值中与第j组标识相关的相似度值修正为负数或零。由此以降低计算错误的情况,提升软件匹配的准确度。
在确定出第一标识和该任意一个第二标识间的目标相似度值后,即可以执行S350。
S350、当目标相似度值大于或等于相似度阈值时,确定第一标识对应的第一软件和与该任意一个第二标识对应的第二软件匹配。
本实施例中,确定出目标相似度值后,可以将其与预设的相似度阈值进行比较。当目标相似度值大于或等于相似度阈值时,可以确定第一标识和与该任意一个第二标识相似,此时,可以确定第一标识对应的第一软件和与该任意一个第二标识对应的第二软件匹配。
在一些实施例中,在确定第一标识对应的第一软件和与该任意一个第二标识对应的第二软件匹配之前,可以先判断第一软件对应的漏洞标识与该任意一个第二标识对应的第二软件对应的漏洞标识是否相同,当两者相同时,可以对相似度阈值进行更新,且更新后的相似度阈值可以低于更新前的相似度阈值。这样,由于漏洞标识相同,所以这两个软件大概率是相同的软件或者是具有依赖关系的软件,因此,在进行相似度匹配时可以适当降低阈值,以减少因默认阈值较高而导致软件关联关系缺失的问题,提升软件匹配的准确度。
由此,即可以通过融合多个相似度算法,确定出第一标识和第二标识是否相似,实现了软件的自动匹配,提升了软件匹配效率和准确度。另外,由于其融合了多个相似度算法,因此其可以实现对多种类型的软件的标识的相似度评估,提升了软件匹配的泛化能力。
应理解的是,本实施例中,前述S330至S350是描述的判断一个第一标识对应的软件和一个第二标识对应的软件是否匹配的过程。
在一些实施例中,前述的第一标识和第二标识可以分别用于表征第一软件和第二软件的软件名称或软件版本。示例性的,第一标识和第二标识分别用于表征第一软件和第二软件的软件名称和/或软件版本,可以但不限于是指:第一标识用于表征第一软件的软件名称,第二标识用于表征第二软件的软件名称,或者,第一标识用于表征第一软件的软件版本,第二标识用于表征第二软件的软件版本。
基于上述实施例中的方法,本申请提供一种软件匹配装置。其中,该软件匹配装置可以但不限于部署于电子设备中。示例性的,该电子设备可以但不限于为服务器。
示例性的,图5示出了一种软件匹配装置。如图5所示,该软件匹配装置500包括:获取单元510和处理单元520。其中,获取单元510用于获取第一软件的第一标识;以及,获取至少一个第二软件的第二标识,以得到至少一个第二标识,每个第二软件均具有一个第二标识。处理单元520用于针对至少一个第二标识中的任意一个第二标识,利用N个相似度算法中的每一个,分别计算第一标识和任意一个第二标识间的相似度值,以得到N个相似度值,N≥2;以及,根据N个相似度值和N个相似度算法各自的权重,确定第一标识和任意一个第二标识间的目标相似度值;以及,当目标相似度值大于或等于相似度阈值时,确定与任意一个第二标识对应的第二软件和第一软件匹配。示例性的,获取单元510中可以设置为前述图2中的软件识别模块210,处理单元520中可以设置为前述图2中的第一匹配模块240。
在一些实施例中,处理单元520在根据N个相似度值和N个相似度算法各自的权重,确定第一标识和任意一个第二标识间的目标相似度值之前,还用于:获取在预设时间段内的M组标识,M组标识中的每组标识内均包含一个第三软件的第三标识和一个第四软件的第四标识,每组标识内的第三标识和第四标识相似,M≥1。其中,M组标识中不同组标识所包含的第三标识不同,和/或,M组标识中不同组标识所包含的第四标识不同;不同的第三标识与不同的第三软件关联,不同的第四标识中的每一个与不同的第四软件中的每一个关联;分别确定利用N个相似度算法中的每一个计算得到的M组标识中各组标识内的第三标识和第四标识的相似度值,以得到N*M个相似度值;根据N*M个相似度值,确定N个相似度算法中各个算法的权重。
在一些实施例中,处理单元520在根据N*M个相似度值,确定N个相似度算法中各个算法的权重时,具体用于:针对N个相似度算法中的任意一个算法,从N*M个相似度值中,确定出基于任意一个算法计算得到的相似度值,以得到M个相似度值;根据M个相似度值之和,以及,(N*M)个相似度值之和,确定任意一个算法的权重。
在一些实施例中,处理单元520,还用于:若M组标识中的第j组标识被修订为不相似,则将M个相似度值中与第j组标识相关的相似度值修正为负数或零。
在一些实施例中,处理单元520在确定与任意一个第二标识对应的第二软件和第一软件匹配之前,还用于:判断第一软件对应的漏洞标识与该任意一个第二软件对应的漏洞标识是否相同;若相同,则更新相似度阈值,其中,更新后的相似度阈值低于更新前的相似度阈值。
在一些实施例中,N个相似度算法包括:余弦相似度算法,杰卡德相似度算法,最小编辑距离算法,欧氏距离算法,和,皮尔逊相似度中的至少两种。
在一些实施例中,前述的第一标识和第二标识可以分别用于表征第一软件和第二软件的软件名称或软件版本。
应当理解的是,上述单元用于执行上述实施例中的方法,单元中相应的程序单元,其实现原理和技术效果与上述方法中的描述类似,该单元的工作过程可参考上述方法中的对应过程,此处不再赘述。
基于上述实施例中的方法,本申请实施例提供了一种电子设备。该电子设备可以包括:至少一个存储器,用于存储程序;至少一个处理器,用于执行存储器存储的程序,当存储器存储的程序被执行时,使得处理器执行上述实施例中的方法。示例性的,该电子设备可以但不限于为服务器。
基于上述实施例中的方法,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,当计算机程序在处理器上运行时,使得处理器执行上述实施例中的方法。
基于上述实施例中的方法,本申请实施例提供了一种计算机程序产品,当计算机程序产品在处理器上运行时,使得处理器执行上述实施例中的方法。
可以理解的是,本申请的实施例中的处理器可以是中央处理单元(centralprocessing unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。
本申请的实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器(programmable rom,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。
Claims (8)
1.一种软件匹配方法,其特征在于,所述方法包括:
获取第一软件的第一标识;
获取至少一个第二软件的第二标识,以得到至少一个第二标识,每个所述第二软件均具有一个所述第二标识,所述第一标识和所述第二标识分别用于表征所述第一软件和所述第二软件的软件名称或软件版本;
针对所述至少一个第二标识中的任意一个第二标识,利用N个相似度算法中的每一个,分别计算所述第一标识和所述任意一个第二标识间的相似度值,以得到N个相似度值,N≥2;
获取在预设时间段内的M组标识,所述M组标识中的每组标识内均包含一个第三软件的第三标识和一个第四软件的第四标识,所述每组标识内的所述第三标识和所述第四标识相似,M≥1,其中,所述M组标识中不同组标识所包含的第三标识不同,和/或,所述M组标识中不同组标识所包含的第四标识不同;不同的所述第三标识中的每一个与不同的所述第三软件中的每一个关联,不同的所述第四标识中的每一个与不同的所述第四软件中的每一个关联;
分别确定利用N个相似度算法中的每一个计算得到的所述M组标识中各组标识内的所述第三标识和所述第四标识的相似度值,以得到N*M个相似度值;
根据所述N*M个相似度值,确定所述N个相似度算法中各个算法的权重;
根据所述N个相似度值和所述N个相似度算法各自的权重,确定所述第一标识和所述任意一个第二标识间的目标相似度值;
当所述目标相似度值大于或等于相似度阈值时,确定与所述任意一个第二标识对应的第二软件和所述第一软件匹配;
在所述第一软件对应的漏洞标识与所述任意一个第二标识对应的第二软件所对应的漏洞标识相同的情况下,更新所述相似度阈值,其中,更新后的所述相似度阈值低于更新前的所述相似度阈值。
2.根据权利要求1所述的方法,其特征在于,所述根据所述N*M个相似度值,确定所述N个相似度算法中各个算法的权重,具体包括:
针对所述N个相似度算法中的任意一个算法,从所述N*M个相似度值中,确定出基于所述任意一个算法计算得到的相似度值,以得到M个相似度值;
根据所述M个相似度值之和,以及,所述N*M个相似度值之和,确定所述任意一个算法的权重。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述M组标识中的第j组标识被修订为不相似;
则将P个相似度值中与所述第j组标识相关的相似度值修正为负数或零。
4.根据权利要求1-3任一所述的方法,其特征在于,所述N个相似度算法包括:余弦相似度算法,杰卡德相似度算法,最小编辑距离算法,欧氏距离算法,和,皮尔逊相似度中的至少两种。
5.一种软件匹配装置,其特征在于,所述软件匹配装置包括:
获取单元,用于获取第一软件的第一标识;以及,获取至少一个第二软件的第二标识,以得到至少一个第二标识,每个所述第二软件均具有一个所述第二标识,所述第一标识和所述第二标识分别用于表征所述第一软件和所述第二软件的软件名称或软件版本;
处理单元,用于针对所述至少一个第二标识中的任意一个第二标识,利用N个相似度算法中的每一个,分别计算所述第一标识和所述任意一个第二标识间的相似度值,以得到N个相似度值,N≥2;
处理单元,还用于获取在预设时间段内的M组标识,所述M组标识中的每组标识内均包含一个第三软件的第三标识和一个第四软件的第四标识,所述每组标识内的所述第三标识和所述第四标识相似,M≥1,其中,所述M组标识中不同组标识所包含的第三标识不同,和/或,所述M组标识中不同组标识所包含的第四标识不同;不同的所述第三标识中的每一个与不同的所述第三软件中的每一个关联,不同的所述第四标识中的每一个与不同的所述第四软件中的每一个关联;分别确定利用N个相似度算法中的每一个计算得到的所述M组标识中各组标识内的所述第三标识和所述第四标识的相似度值,以得到N*M个相似度值;根据所述N*M个相似度值,确定所述N个相似度算法中各个算法的权重;
所述处理单元,还用于根据所述N个相似度值和所述N个相似度算法各自的权重,确定所述第一标识和所述任意一个第二标识间的目标相似度值;以及,当所述目标相似度值大于或等于相似度阈值时,确定与所述任意一个第二标识对应的第二软件和所述第一软件匹配;
所述处理单元,还用于在所述第一软件对应的漏洞标识与所述任意一个第二标识对应的第二软件所对应的漏洞标识相同的情况下,更新所述相似度阈值,其中,更新后的所述相似度阈值低于更新前的所述相似度阈值。
6.一种电子设备,其特征在于,包括:
至少一个存储器,用于存储程序;
至少一个处理器,用于执行存储器存储的程序,当存储器存储的程序被执行时,处理器用于执行如权利要求1-4任一所述的方法。
7.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,当所述计算机程序在处理器上运行时,使得所述处理器执行如权利要求1-4任一所述的方法。
8.一种计算机程序产品,其特征在于,当所述计算机程序产品在处理器上运行时,使得所述处理器执行如权利要求1-4任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211038493.9A CN115496129B (zh) | 2022-08-29 | 2022-08-29 | 一种软件匹配方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211038493.9A CN115496129B (zh) | 2022-08-29 | 2022-08-29 | 一种软件匹配方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115496129A CN115496129A (zh) | 2022-12-20 |
CN115496129B true CN115496129B (zh) | 2024-03-19 |
Family
ID=84466374
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211038493.9A Active CN115496129B (zh) | 2022-08-29 | 2022-08-29 | 一种软件匹配方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115496129B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111401031A (zh) * | 2020-03-05 | 2020-07-10 | 支付宝(杭州)信息技术有限公司 | 一种目标文本确定方法、装置及设备 |
CN111414528A (zh) * | 2020-03-16 | 2020-07-14 | 同盾控股有限公司 | 确定设备标识的方法、装置、存储介质及电子设备 |
CN111553408A (zh) * | 2020-04-26 | 2020-08-18 | 智泉科技(广东)有限公司 | 视频识别软件自动测试的方法 |
CN111666481A (zh) * | 2019-03-05 | 2020-09-15 | 北京沃东天骏信息技术有限公司 | 数据挖掘方法、装置、计算机可读介质及电子设备 |
CN112204552A (zh) * | 2018-05-21 | 2021-01-08 | 谷歌有限责任公司 | 识别恶意软件 |
CN113392399A (zh) * | 2021-06-23 | 2021-09-14 | 绿盟科技集团股份有限公司 | 一种恶意软件分类方法、装置、设备及介质 |
CN113676702A (zh) * | 2021-08-21 | 2021-11-19 | 深圳市大工创新技术有限公司 | 基于视频流的目标追踪监测方法、系统、装置及存储介质 |
CN114780960A (zh) * | 2021-01-05 | 2022-07-22 | 中国移动通信有限公司研究院 | 一种安全检测方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11341513B2 (en) * | 2018-02-20 | 2022-05-24 | James R Jackson | Systems and methods for generating a relationship among a plurality of datasets to generate a desired attribute value |
US11995522B2 (en) * | 2020-09-30 | 2024-05-28 | International Business Machines Corporation | Identifying similarity matrix for derived perceptions |
-
2022
- 2022-08-29 CN CN202211038493.9A patent/CN115496129B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112204552A (zh) * | 2018-05-21 | 2021-01-08 | 谷歌有限责任公司 | 识别恶意软件 |
CN111666481A (zh) * | 2019-03-05 | 2020-09-15 | 北京沃东天骏信息技术有限公司 | 数据挖掘方法、装置、计算机可读介质及电子设备 |
CN111401031A (zh) * | 2020-03-05 | 2020-07-10 | 支付宝(杭州)信息技术有限公司 | 一种目标文本确定方法、装置及设备 |
CN111414528A (zh) * | 2020-03-16 | 2020-07-14 | 同盾控股有限公司 | 确定设备标识的方法、装置、存储介质及电子设备 |
CN111553408A (zh) * | 2020-04-26 | 2020-08-18 | 智泉科技(广东)有限公司 | 视频识别软件自动测试的方法 |
CN114780960A (zh) * | 2021-01-05 | 2022-07-22 | 中国移动通信有限公司研究院 | 一种安全检测方法和装置 |
CN113392399A (zh) * | 2021-06-23 | 2021-09-14 | 绿盟科技集团股份有限公司 | 一种恶意软件分类方法、装置、设备及介质 |
CN113676702A (zh) * | 2021-08-21 | 2021-11-19 | 深圳市大工创新技术有限公司 | 基于视频流的目标追踪监测方法、系统、装置及存储介质 |
Non-Patent Citations (2)
Title |
---|
Similarity network fusion for aggregating data types on a genomic scale;Bo Wang等;《Nature Methods》;第11卷;第333-337页 * |
改进填补法和多权重相似度相结合的推荐算法;邹洋等;《计算机应用研究》;第37卷(第12期);第3578-3581、3598页 * |
Also Published As
Publication number | Publication date |
---|---|
CN115496129A (zh) | 2022-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111522989B (zh) | 用于图像检索的方法、计算设备和计算机存储介质 | |
US9367580B2 (en) | Method, apparatus and computer program for detecting deviations in data sources | |
US20210334292A1 (en) | System and method for reconciliation of data in multiple systems using permutation matching | |
US20170103099A1 (en) | Database table data fabrication | |
CN111506608A (zh) | 一种结构化文本的比较方法和装置 | |
CN112328499A (zh) | 一种测试数据生成方法、装置、设备及介质 | |
CN111428095B (zh) | 图数据质量验证方法及图数据质量验证装置 | |
CN114817340B (zh) | 数据追溯方法、装置、计算机设备及储存介质 | |
US20230018381A1 (en) | Method for automatically identifying design changes in building information model | |
CN110457332B (zh) | 一种信息处理方法及相关设备 | |
CN111159482A (zh) | 数据校验方法及系统 | |
CN115496129B (zh) | 一种软件匹配方法及装置 | |
CN114721943A (zh) | 测试范围的确定方法和装置 | |
JP7285951B2 (ja) | 分散台帳を用いて素材を追跡するのための固有識別子としての表面テクスチャの使用 | |
CN114359678A (zh) | 数据标注方法和装置 | |
US11727059B2 (en) | Retrieval sentence utilization device and retrieval sentence utilization method | |
CN110879835A (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 | |
CN112560952A (zh) | 供应商考核方法、装置、电子设备和存储介质 | |
CN116911641B (zh) | 资助推荐方法、装置、计算机设备及存储介质 | |
CN116383777B (zh) | 一种数据治理平台和面向数据治理的数据确权方法 | |
CN117271850B (zh) | 基于客户数据平台的用户数据匹配方法、平台、设备和介质 | |
US12026181B2 (en) | Network environment synchronization apparatus and method | |
CN117349358B (zh) | 基于分布式图处理框架的数据匹配与合并的方法和系统 | |
CN117453577B (zh) | 基于流量录制生成接口自动化用例的方法、装置和计算机设备 | |
CN118607519A (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 | ||
GR01 | Patent grant |