一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

漏洞扫描方法和装置、系统、电子设备、计算机可读介质与流程

2021-10-30 02:28:00 来源:中国专利 TAG:计算机 数据处理 电子设备 介质 装置


1.本公开涉及计算机技术领域,具体涉及云计算、数据处理等技术领域,尤其涉及漏洞扫描方法和装置、系统、电子设备、计算机可读介质以及计算机程序产品。


背景技术:

2.云计算业务扩展便捷、安全可靠、整体维护成本低,使得越来越多的互联网中小型公司选择将云平台作为数据中心。云平台每时每刻都需要新增大量实例云主机,为了避免云平台被其他软件入侵,需要对云主机进行漏洞扫描。
3.目前的云主机漏洞扫描在云主机的设备上进行扫描,扫描任务占用资源较多,可能会对云主机的性能造成比较大的影响,并且对海量的云主机进行扫描时,会出现漏洞扫描效率低下的问题。


技术实现要素:

4.本公开的实施例提出了漏洞扫描方法和装置、系统、电子设备、计算机可读介质以及计算机程序产品。
5.第一方面,本公开的实施例提供了一种漏洞扫描方法,该方法包括:接收云漏洞扫描任务;基于云漏洞扫描任务,采集至少一个云主机上的软件安装包信息;将漏洞库预处理安装包版本信息与软件安装包信息进行匹配,漏洞库预处理安装包版本信息为漏洞库中不同漏洞对应的软件的版本信息;基于漏洞库预处理安装包版本信息与软件安装包信息的匹配结果,确定具有漏洞的云主机以及该云主机的漏洞信息。
6.在一些实施例中,上述软件安装包信息从分布式数据存储器采集得到,上述方法还包括:将该云主机的标识和该云主机的漏洞信息存储入分布式数据存储器。
7.在一些实施例中,上述方法还包括:对预设的漏洞库中的漏洞信息进行处理,得到漏洞库预处理安装包版本信息。
8.在一些实施例中,上述对预设的漏洞库中的漏洞信息进行处理,得到漏洞库预处理安装包版本信息,包括:对预设的漏洞库中的漏洞信息进行预处理,得到不同软件对应的漏洞信息;对不同软件对应的漏洞信息进行安装包版本划分,得到漏洞库预处理安装包版本信息。
9.在一些实施例中,上述对不同软件对应的漏洞信息进行安装包版本划分,得到漏洞库预处理安装包版本信息,包括:将不同软件对应的漏洞信息按照预设的操作系统类型、操作系统版本、软件安装包名称、软件安装包版本进行划分;将操作系统类型、操作系统版本、软件安装包名称、软件安装包版本按序与各自对应的漏洞信息一一对应排列,得到漏洞库预处理安装包版本信息。
10.在一些实施例中,上述软件安装包信息包括:操作系统版本、软件包名、软件包版本,将漏洞库预处理安装包版本信息与软件安装包信息进行匹配,包括:确定漏洞库预处理安装包版本信息中与操作系统版本相同的软件;将确定的软件的软件安装包名称与软件包
名进行匹配;响应于软件安装包名称与软件包名匹配成功,且软件包版本小于或等于软件安装包名称对应的软件安装包版本,确定具有软件包名和软件包版本的云主机为具有漏洞的云主机;在漏洞库预处理安装包版本信息中确定具有漏洞的云主机的漏洞信息。
11.第二方面,本公开的实施例提供了一种漏洞扫描方法,该方法包括:接收安装包版本信息任务;基于安装包版本信息任务,采集并向分布式数据存储器发送软件安装包信息,以使服务端基于从分布式数据存储器采集的软件安装包信息,通过执行如第一方面中任一实现方式描述的方法,确定具有漏洞的云主机和该云主机的漏洞信息。
12.第三方面,本公开的实施例提供了一种漏洞扫描装置,该装置包括:接收单元,被配置成接收云漏洞扫描任务;采集单元,被配置成基于云漏洞扫描任务,采集至少一个云主机上的软件安装包信息;匹配单元,被配置成将漏洞库预处理安装包版本信息与软件安装包信息进行匹配,漏洞库预处理安装包版本信息为漏洞库中不同漏洞对应的软件的版本信息;确定单元,被配置成基于漏洞库预处理安装包版本信息与软件安装包信息的匹配结果,确定具有漏洞的云主机以及该云主机的漏洞信息。
13.在一些实施例中,上述软件安装包信息从分布式数据存储器采集得到,装置还包括:存储单元,被配置成将该云主机的标识和该云主机的漏洞信息存储入分布式数据存储器。
14.在一些实施例中,上述装置还包括:处理单元,被配置成对预设的漏洞库中的漏洞信息进行处理,得到漏洞库预处理安装包版本信息。
15.在一些实施例中,上述处理单元包括:得到模块,被配置成对预设的漏洞库中的漏洞信息进行预处理,得到不同软件对应的漏洞信息;划分模块,被配置成对不同软件对应的漏洞信息进行安装包版本划分,得到漏洞库预处理安装包版本信息。
16.在一些实施例中,上述划分模块包括:划分子模块,被配置成将不同软件对应的漏洞信息按照预设的操作系统类型、操作系统版本、软件安装包名称、软件安装包版本进行划分;排列子模块,被配置成将操作系统类型、操作系统版本、软件安装包名称、软件安装包版本按序与各自对应的漏洞信息一一对应排列,得到漏洞库预处理安装包版本信息。
17.在一些实施例中,上述软件安装包信息包括:操作系统版本、软件包名、软件包版本,上述匹配单元包括:确定模块,被配置成确定漏洞库预处理安装包版本信息中与操作系统版本相同的软件;匹配模块,被配置成将确定的软件的软件安装包名称与软件包名进行匹配;比对模块,被配置成响应于软件安装包名称与软件包名匹配成功,且软件包版本小于或等于软件安装包名称对应的软件安装包版本,确定具有软件包名和软件包版本的云主机为具有漏洞的云主机;输出模块,被配置成在漏洞库预处理安装包版本信息中确定具有漏洞的云主机的漏洞信息。
18.第四方面,本公开的实施例提供了一种漏洞扫描系统,该系统包括:服务端、数据存储器、至少一个云主机;各个云主机用于接收安装包版本信息任务,基于安装包版本信息任务,采集并向分布式数据存储器发送软件安装包信息;服务端基于从分布式数据存储器采集的软件安装包信息,通过执行如第一方面中任一实现方式描述的方法,确定具有漏洞的云主机和该云主机的漏洞信息。
19.第五方面,本公开的实施例提供了一种电子设备,该电子设备包括:一个或多个处理器;存储装置,其上存储有一个或多个程序;当一个或多个程序被一个或多个处理器执
行,使得一个或多个处理器实现如第一方面或第二方面中任一实现方式描述的方法。
20.第六方面,本公开的实施例提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面或第二方面中任一实现方式描述的方法。
21.第七方面,本公开的实施例提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现如第一方面或第二方面任一实现方式描述的方法。
22.本公开的实施例提供的漏洞扫描方法和装置,首先接收云漏洞扫描任务;其次,基于云漏洞扫描任务,采集至少一个云主机上的软件安装包信息;再次将漏洞库预处理安装包版本信息与软件安装包信息进行匹配,漏洞库预处理安装包版本信息为漏洞库中不同漏洞对应的软件的版本信息;最后,基于漏洞库预处理安装包版本信息与软件安装包信息的匹配结果,确定具有漏洞的云主机以及该云主机的漏洞信息。由此,通过采集云主机的软件安装包信息,确定具有漏洞的云主机,无需在云主机的设备端对云主机进行漏洞扫描,提高了漏洞扫描的效率和速度,保证了漏洞扫描的准确性。
23.本公开的实施例提供的漏洞扫描系统,包括:服务端、数据存储器、至少一个云主机,各个云主机将各自的软件安装包信息上传数据存储器,以使服务端从数据存储器中采集软件安装包信息,将采集的软件安装包信息与漏洞库预处理安装包版本信息进行匹配,确定具有漏洞的云主机以及云主机的漏洞信息,无需在云主机端进行漏洞扫描,仅在服务端进行版本匹配,便可以确定云主机的漏洞信息,提高了漏洞扫描的效率和速度。
附图说明
24.通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本公开的其它特征、目的和优点将会变得更明显:
25.图1是本公开的一个实施例可以应用于其中的示例性系统架构图;
26.图2是根据本公开的漏洞扫描方法的一个实施例的流程图;
27.图3是根据本公开的漏洞扫描方法的另一个实施例的流程图;
28.图4是根据本公开的漏洞扫描装置的实施例的结构示意图;
29.图5是根据本公开的漏洞扫描系统的实施例的结构示意图;
30.图6是适于用来实现本公开的实施例的电子设备的结构示意图。
具体实施方式
31.下面结合附图和实施例对本公开作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
32.需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
33.图1示出了可以应用本公开的漏洞扫描方法的示例性系统架构100。
34.如图1所示,系统架构100可以包括终端101、102,网络103、数据库服务器104和服务器105。网络103用以在终端101、102,数据库服务器104与服务器105之间提供通信链路的介质。网络103可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
35.用户110可以使用终端101、102通过网络103与服务器105进行交互,以接收或发送
消息等。终端101、102上可以安装有各种客户端软件,例如模型训练类软件、图像转换类软件、购物类软件、支付类软件、网页浏览器和即时通讯工具等。
36.这里的终端101、102可以是硬件,也可以是软件。当终端101、102为硬件时,可以是具有显示屏的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、mp3播放器(moving picture experts group audio layer iii,动态影像专家压缩标准音频层面3)、膝上型便携计算机和台式计算机等等。当终端101、102为软件时,可以安装在上述所列举的电子设备中,实现云主机的功能。其可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块。在此不做具体限定。
37.数据库服务器104可以是提供各种服务的数据库服务器。例如数据库服务器104中可以存储有终端101、102上传的软件安装包信息;数据库服务器104还可以存储有用户110上传的漏洞扫描任务。
38.服务器105也可以是提供各种服务的服务器,例如对终端101、102上显示的各种软件提供支持的后台服务器。后台服务器可以利用终端101、102发送的软件安装包信息或者采集数据库服务器104中的软件安装包信息,对终端101、102上的云主机系统进行漏洞扫描,并可以将扫描结果发送给终端101、102或者存储在数据库服务器104。这样,用户110可以实时确定具有漏洞的云主机或者该具有漏洞的云主机的漏洞信息。
39.这里的数据库服务器104和服务器105同样可以是硬件,也可以是软件。当它们为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当它们为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块。在此不做具体限定。
40.需要说明的是,本技术实施例所提供的漏洞扫描方法一般由服务器105执行。相应地,漏洞扫描装置一般也设置于服务器105中。
41.需要指出的是,在服务器105可以实现数据库服务器104的相关功能的情况下,系统架构100中可以不设置数据库服务器104。
42.应该理解,图1中的终端、网络、数据库服务器和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端、网络、数据库服务器和服务器。
43.如图2,示出了根据本公开的漏洞扫描方法的一个实施例的流程200,该漏洞扫描方法包括以下步骤:
44.步骤201,接收云漏洞扫描任务。
45.本实施例中,云漏洞扫描任务是一种向漏洞扫描方法运行于其上的执行主体发送的扫描云主机的漏洞的任务,当漏洞扫描方法运行于其上的执行主体接收到该云漏洞扫描任务时,可以直接控制云主机进行漏洞扫描。云漏洞扫描任务可以包括:任务名称、待扫描的云主机id、待扫描的云主机名称等。
46.漏洞扫描方法运行于其上的执行主体(如图1所示的服务器105)可以通过多种方式获取云漏洞扫描任务,例如,实时获取用户110通过用户终端(如图1所示的终端101、102)上发的云漏洞扫描任务;再如,获取数据服务器中预存的云漏洞扫描任务;再如,针对云集群,可以实时接收任务调度中心下发的云漏洞扫描任务。任务调度中心下发的云漏洞扫描任务的频率由用户控制,例如,固定每天定时执行一次扫描任务,或者由用户通过点击终端101、102上设置的漏洞扫描按钮,向任务调度中心发送云漏洞扫描任务,并且该发送没有次
数限制。
47.用户还可以通过设置在终端101、102上的“点击主机漏洞扫描任务”的页面触发安装包版本信息任务,以使云主机基于采集各自的软件安装包信息。
48.步骤202,基于云漏洞扫描任务,采集至少一个云主机上的软件安装包信息。
49.本实施例中,不同的云漏洞扫描任务对应不同的云主机以及云主机上的不同软件,该软件可以是云主机的系统软件,也可以是应用软件,基于接收到的云漏洞扫描任务中待扫描云主机id、待扫描云主机名称可以确定需要对哪个云主机进行软件安装包信息的采集。
50.本实施例中,软件安装包信息是指与云主机的软件安装包相关的信息,软件安装包是可自行解压缩文件的集合,其中包括软件安装的所有文件,在云主机上运行软件安装包,可以将此软件的所有文件释放到硬盘上,完成修改注册表、修改系统设置、创建快捷方式等工作。
51.通过采集云主机上的软件安装包信息可以分析云主机上的软件的版本,例如软件的所运行的操作系统的类型、版本等,便于对与当前软件的版本对应的云主机的漏洞进行有效识别。具体地,软件安装包信息可以包括:云主机id、操作系统类型、操作系统版本、软件包名、软件包版本,其中,云主机id是软件安装包所安装的云主机的标识,操作系统是为软件包名对应的软件提供支持的管理系统,软件可以包括系统软件和应用软件,软件包名为软件对应的安装包的名称,软件包版本为软件安装包的版本。
52.本实施例中,至少一个云主机可以是由海量云主机组成的集群,漏洞扫描方法运行于其上的执行主体可以是海量云主机中的一个云主机或者服务器或者服务端,其主要用于对海量云主机的各个云主机进行漏洞扫描。其中,几万,几十万台云主机可以统称为海量云主机。
53.步骤203,将漏洞库预处理安装包版本信息与软件安装包信息进行匹配。
54.本实施例中,漏洞库预处理安装包版本信息包括:漏洞库中不同漏洞对应的软件的版本信息,漏洞库预处理安装包版本信息可以是一种漏洞信息与软件版本信息对应关键信息,漏洞库中的漏洞信息可以是通过收集互联网中云系统的软件综合得到的漏洞信息,例如,漏洞库的版本信息是:python软件,python软件版本是3.10.0,在漏洞库预处理安装包版本信息中该python软件存在漏洞是a,b,即漏洞库预处理安装包版本信息中漏洞a,b与3.10.0版本的python软件相对应。。
55.本实施例中,漏洞库预处理安装包版本信息的形成过程如下:在互联网中收集不同云主机的软件的漏洞信息,基于各个软件运行的操作系统或/和软件的版本对漏洞库中的漏洞信息进行划分,使漏洞信息与软件的版本信息相对应。进一步地,软件的版本信息可以包括:云主机标识、操作系统类型、操作系统版本、软件安装包名称、软件安装包版本。
56.本实施例中,将漏洞预处理安装包版本信息与软件安装包信息进行匹配是将漏洞预处理安装包版本信息中的软件的版本信息与软件安装包信息进行比较,在软件的版本信息中有与软件安装包信息有相同或相关的信息时,获取与该相同或相关的信息对应的云主机的标识以及漏洞信息,该云主机即为具有漏洞的云主机,该漏洞信息即为具有漏洞的云主机的漏洞信息。
57.步骤204,基于漏洞库预处理安装包版本信息与软件安装包信息的匹配结果,确定
具有漏洞的云主机以及该云主机的漏洞信息。
58.本实施例中,版本信息与软件安装包信息匹配过程与软件安装包信息的内容相关。当软件安装包信息与版本信息完全匹配成功时,确定软件安装包信息对应的云主机为具有漏洞的云主机,以及软件安装包信息对应的漏洞信息为具有漏洞的云主机的漏洞信息。当软件安装包信息与版本信息未匹配成功时,确定云主机无漏洞。
59.例如,当软件安装包信息包括:操作系统类型时,将漏洞预处理安装包版本信息与软件安装包信息进行匹配包括:将软件安装包信息中操作系统类型与漏洞库预处理安装包版本信息中的操作系统类型相匹配,若匹配成功,将具有匹配成功的操作系统类型的云主机作为具有漏洞的云主机,并选取漏洞预处理安装包版本信息中与匹配成功的操作系统类型对应的漏洞信息作为具有漏洞的云主机的漏洞信息。
60.可选地,当软件安装包信息包括:操作系统版本、软件包名时,将漏洞预处理安装包版本信息与软件安装包信息进行匹配包括:将软件安装包信息中操作系统类型、软件包名分别与漏洞库预处理安装包版本信息中的操作系统类型、软件包名相匹配,若全部匹配成功,将具有匹配成功的操作系统类型和软件包名的云主机作为具有漏洞的云主机,并选取漏洞预处理安装包版本信息中与匹配成功的操作系统类型和软件包名对应的漏洞信息作为具有漏洞的云主机的漏洞信息。
61.可选地,漏洞扫描方法运行于其上的执行主体还可以向用户展示匹配结果,匹配结果包括:匹配成功和匹配不成功。当匹配成功时,确定至少一个云主机中有漏洞,向用户展示具有漏洞的云主机和具有漏洞的云主机的漏洞信息,进一步,还可以基于漏洞对云主机的影响,对匹配结果中云主机的漏洞信息进行升序或降序排序,为具有漏洞的云主机的进行漏洞等级标识,并向用户展示云主机的漏洞等级和云主机的标签等重要信息。
62.本公开的实施例提供的漏洞扫描方法,首先接收云漏洞扫描任务;其次,基于云漏洞扫描任务,采集至少一个云主机上的软件安装包信息;再次将漏洞库预处理安装包版本信息与软件安装包信息进行匹配,漏洞库预处理安装包版本信息为漏洞库中不同漏洞对应的软件的版本信息;最后,基于漏洞库预处理安装包版本信息与软件安装包信息的匹配结果,确定具有漏洞的云主机以及该云主机的漏洞信息。由此,通过采集云主机的软件安装包信息,确定具有漏洞的云主机,无需在云主机的设备端对云主机进行漏洞扫描,提高了漏洞扫描的效率,保证了漏洞扫描的准确性。
63.本实施例中,至少一个云主机可以是海量云主机,针对海量云主机的漏洞扫描,无法实现实时的采集云主机的软件安装包信息,为了保证漏洞扫描的可靠性,可以采用分布式数据存储器存储不同云主机上传的软件安装包信息。
64.在本公开实施例的一个可选实现方式中,上述软件安装包信息可以是从分布式数据存储器采集得到的信息,上述漏洞扫描方法还可以包括:将具有漏洞的云主机的标识和该云主机的漏洞信息存储入分布式数据存储器。
65.本实施例中,分布式数据存储器将所有云主机的软件安装信息存储在一起,便于漏洞扫描方法运行于其上的执行可以在得到云漏洞扫描任务之后,扫描与云漏洞扫描任务对应的云主机的软件安装信息。
66.本实施例中,分布式数据存储器可以是由多个数据存储器组成的存储器集群,其中,每个数据存储器可以对应一个云主机,也可以对应多个云主机。分布式数据存储器用于
数据存储,将数据拆分成多个节点进行存放,易查询,高并发。
67.本可选实现方式中,采用分布式数据存储器存储云主机的信息,保证了在至少一个云主机的软件安装信息为海量的云主机的数据时,系统运行的可靠性,防止了数据的丢失,保证了漏洞扫描的可靠性。
68.在本实施例的一些可选实现方式中,上述漏洞扫描方法还包括:对预设的漏洞库中的漏洞信息进行处理,得到漏洞库预处理安装包版本信息。
69.本可选实现方式中,预设的漏洞库中的漏洞信息可以是从权威的漏洞来源处得到的漏洞信息,该预设的漏洞库中的每个漏洞信息可以与云主机的软件版本相关。
70.本可选实现方式中,对预设的漏洞库中的漏洞信息进行处理包括:去除预设的漏洞库中与软件版本不相关的漏洞信息,并将得到预设的漏洞库中的漏洞信息按照软件版本信息和漏洞信息对应存储,得到漏洞库预处理安装包版本信息。
71.本可选实现方式中,通过对预设的漏洞库的漏洞信息进行处理,可以去除无效信息,保障后续漏洞库预处理安装包版本信息与软件安装包信息匹配的可靠性。
72.在本实施例的一些可选实现方式中,上述对对预设的漏洞库中的漏洞信息进行处理,得到漏洞库预处理安装包版本信息,包括:对预设的漏洞库中的漏洞信息进行预处理,得到不同软件对应的漏洞信息;对不同软件对应的漏洞信息进行安装包版本划分,得到漏洞库预处理安装包版本信息。
73.本可选实现方式中,上述预处理可以包括:数据清洗,数据格式化等,其中,数据清洗可以是去除预设的漏洞库中与软件无关的漏洞信息,数据格式化可以是将预设的漏洞库中的漏洞信息按照预设的格式进行存储,例如,预设的格式为:软件关键词、软件名、软件版本、漏洞信息;再如,预设的格式为:软件名,软件版本,漏洞信息;通过数据格式化,可以快速便捷地得到不同类型的软件的漏洞信息。
74.本实施例中,由于软件的运行需要不同的操作系统的支持,并且软件还可以区分不同版本,上述对不同软件对应的漏洞信息进行安装包版本划分,得到漏洞库预处理安装包版本信息包括:确定安装包版本的所有划分类型,基于确定的划分类型,对不同软件对应的漏洞信息按照划分类型进行划分与存储。
75.例如,预先确定的至少一个云主机的安装包版本可以包括:软件安装包名称、软件安装包版本,则划分类型可以是软件安装包名称、软件安装包版本,则将不同软件对应的漏洞信息一次按照软件安装包名称、软件安装包版本进行划分,从而得到满足软件安装包名称和软件安装包版本的漏洞信息。
76.本可选实现方式中,将不同软件对应的漏洞信息进行按照包版本划分,可以将不同软件的漏洞信息进行不同种类的划分,提高了软件的漏洞信息划分的可靠性。
77.在本实施例的一些可选实现方式中,上述对不同软件对应的漏洞信息进行安装包版本划分,得到漏洞库预处理安装包版本信息,包括:将不同软件对应的漏洞信息按照预设的操作系统类型、操作系统版本、软件安装包名称、软件安装包版本进行划分;将操作系统类型、操作系统版本、软件安装包名称、软件安装包版本按序与各自对应的漏洞信息一一对应排列,得到漏洞库预处理安装包版本信息。
78.本可选实现方式中,在安装包版本为:操作系统类型、操作系统版本、软件安装包名称、软件安装包版本时,按照安装包版本对不同软件的漏洞信息进行划分,可以便于漏洞
库预处理安装包版本信息与软件安装包信息进行匹配,保证了两者匹配的可靠性。
79.在本实施例的一些可选实现方式中,上述软件安装包信息包括:操作系统版本、软件包名、软件包版本,上述将漏洞库预处理安装包版本信息与软件安装包信息进行匹配,包括:确定漏洞库预处理安装包版本信息中与操作系统版本相同的软件;将确定的软件的软件安装包名称与软件包名进行匹配;响应于确定的软件安装包名称与软件包名匹配成功,且软件包版本小于或等于确定的软件安装包名称对应的软件安装包版本,确定具有软件包名和软件包版本的云主机为具有漏洞的云主机;在漏洞库预处理安装包版本信息中确定具有漏洞的云主机的漏洞信息。
80.本可选实现方式中,漏洞库预处理安装包版本信息可以包括:操作系统版本、软件安装包名称、软件安装包版本、漏洞信息。
81.例如,漏洞库预处理安装包版本信息包括:linux,7(操作系统版本),python(软件安装包名称),2.7.5(软件安装包版本),存在漏洞a1、b1、c1。
82.软件安装包信息包括:云主机a的操作系统是linux,操作系统版本是7,软件包名python,软件包版本是2.7.5,通过与上述的漏洞预处理安装包版本信息匹配,可知,匹配成功,匹配结果中具有漏洞的云主机是:云主机a,该云主机a的漏洞信息是:a1、b1、c1。
83.本可选实现方式中,在软件安装包信息包括:操作系统版本、软件包名、软件包版本时,通过在漏洞库预处理安装包版本信息中依次匹配操作系统版本、软件包名、软件包版本,可以有效确定具有漏洞的云主机,以及该云主机的漏洞信息,提高了云主机匹配的效率。
84.可选地,软件安装包信息包括:软件包名、软件包版本,上述将漏洞库预处理安装包版本信息与软件安装包信息进行匹配,包括:将漏洞库预处理安装包版本信息中的软件安装包名称与软件包名进行匹配;响应于软件安装包名称与软件包名称匹配成功,将软件包版本与软件安装包版本进行匹配;响应于确定软件包版本小于软件安装包名称对应的软件包版本,确定具有软件包名和软件包版本的云主机为具有漏洞的云主机,在漏洞库预处理安装包版本信息中确定具有漏洞的云主机的漏洞信息。
85.例如,漏洞库预处理安装包版本信息包括:python(软件安装包名称),3.10.0(软件安装包版本),存在漏洞a2,b2。
86.软件安装包信息包括:云主机q安装的python,3.11.0版本;云主机w安装的python,3.09.0版本。
87.通过匹配可知,云主机q安装的python版本比漏洞库的3.10.0高,不存在漏洞信息。云主机w安装的python,版本比提前处理的3.10.0低,所以存在漏洞a2,b2。
88.由此,得到匹配结果为:最终具有漏洞的云主机为云主机w存在的漏洞a2,b2,可以将匹配后的结果存储到分布式数据存储器中。
89.在本公开的一个实施例中,如图3,示出了根据本公开的漏洞扫描方法的另一个实施例的流程图300,该漏洞扫描方法包括以下步骤:
90.步骤301,接收安装包版本信息任务。
91.本实施例中,漏洞扫描方向运行于其上的执行主体可以是云主机,安装包版本信息任务是一种向漏洞扫描方向运行于其上的执行主体发送的安装包版本信息任务,该安装包版本信息任务可以是由用户直接向执行主体发送的任务,当漏洞扫描方向运行于其上的
执行主体接收到安装包版本信息任务时,扫描安装其上的所有软件的信息,确定所有软件的软件安装包信息。
92.安装包版本信息任务可以包括:任务名称、待采集的云主机id、云主机上软件名称、云主机上软件版本等。
93.漏洞扫描方法运行于其上的执行主体(如图1所示的终端101、102)可以通过多种方式获取云漏洞扫描任务,例如,实时获取用户110直接发送的安装包版本信息任务;再如,获取数据服务器中预存的安装包版本信息任务;再如,针对云主机集群,可以实时接收云主机集群中任务调度中心下发的安装包版本信息任务。任务调度中心下发的安装包版本信息任务的频率可由用户控制。
94.步骤302,基于安装包版本信息任务,采集软件安装包信息。
95.本实施例中,漏洞扫描方向运行于其上的执行主体接收到步骤301的安装包版本信息任务之后,采集安装在其系统上的软件的安装包信息。
96.可选地,本实施例中漏洞扫描方法运行于其上的执行主体可以是至少一个云主机的任意一个云主机,用户可以将安装包版本信息任务暂存到redis中,服务端的任务调度中心接受redis中的云主机安装包版本信息任务,将任务分发给各个云主机。
97.其中,redis是一个key

value内存存储的数据结构服务器,redis补偿了内存缓存这类键值存储的不足,在部分场合可以对关系数据库起到很好的补充作用。
98.云主机收到安装包版本信息任务,执行采集安装包版本信息的相关功能,将云主机上的安装包版本信息经过处理最终存储到分布式数据存储器中。
99.步骤303,向分布式数据存储器发送软件安装包信息,以使服务端基于从分布式数据存储器采集的软件安装包信息,确定具有漏洞的云主机和该云主机的漏洞信息。
100.本实施例中,服务端可以基于从分布式数据存储器采集的软件安装包信息采用如图2所示的漏洞扫描方法,确定具有漏洞的云主机和该云主机的漏洞信息。
101.本实施例中,分布式数据存储器可以是由多个数据存储器组成的存储器集群,其中,每个数据存储器可以对应一个云主机,也可以对应多个云主机。分布式数据存储器用于数据存储,将数据拆分成多个节点进行存放,易查询,高并发。
102.本公开的实施例提供的漏洞扫描系统,包括:服务端、数据存储器、至少一个云主机,各个云主机将各自的软件安装包信息上传数据存储器,以使服务端从数据存储器中采集软件安装包信息,将采集的软件安装包信息与漏洞库预处理安装包版本信息进行匹配,确定具有漏洞的云主机以及云主机的漏洞信息,无需在云主机端进行漏洞扫描,仅在服务端进行版本匹配,便可以确定云主机的漏洞信息,提高了漏洞扫描的效率。
103.进一步参考图4,作为对上述各图所示方法的实现,本公开提供了漏洞扫描装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
104.如图4所示,本公开的实施例提供了一种漏洞扫描装置400,该装置400包括:接收单元401、采集单元402、匹配单元403、确定单元404。其中,接收单元401,可以被配置成接收云漏洞扫描任务。采集单元402,可以被配置成基于云漏洞扫描任务,采集至少一个云主机上的软件安装包信息。匹配单元403,可以被配置成将漏洞库预处理安装包版本信息与软件安装包信息进行匹配,漏洞库预处理安装包版本信息为漏洞库中不同漏洞对应的软件的版
本信息。确定单元404,可以被配置成基于漏洞库预处理安装包版本信息与软件安装包信息的匹配结果,确定具有漏洞的云主机以及该云主机的漏洞信息。
105.在本实施例中,漏洞扫描装置400中,接收单元401、采集单元402、匹配单元403、确定单元404的具体处理及其所带来的技术效果可分别参考图2对应实施例中的步骤201、步骤202、步骤203、步骤204。
106.在一些实施例中,上述软件安装包信息从分布式数据存储器采集得到,上述漏洞扫描装置500还包括:存储单元(图中未示出)。其中,上述存储单元,可以被配置成将该云主机的标识和该云主机的漏洞信息存储入分布式数据存储器。
107.在一些实施例中,上述漏洞扫描装置500还包括:处理单元(图中未示出)。其中,上述处理单元,可以被配置成对预设的漏洞库中的漏洞信息进行处理,得到漏洞库预处理安装包版本信息。
108.在一些实施例中,上述处理单元包括:得到模块(图中未示出)、划分模块(图中未示出)。其中,上述得到模块,可以被配置成对预设的漏洞库中的漏洞信息进行预处理,得到不同软件对应的漏洞信息。上述划分模块,可以被配置成对不同软件对应的漏洞信息进行安装包版本划分,得到漏洞库预处理安装包版本信息。
109.在一些实施例中,上述划分模块包括:划分子模块(图中未示出)、排列子模块(图中未示出)。其中,上述划分子模块,可以被配置成将不同软件对应的漏洞信息按照预设的操作系统类型、操作系统版本、软件安装包名称、软件安装包版本进行划分。上述排列子模块,可以被配置成将操作系统类型、操作系统版本、软件安装包名称、软件安装包版本按序与各自对应的漏洞信息一一对应排列,得到漏洞库预处理安装包版本信息。
110.在一些实施例中,上述软件安装包信息包括:操作系统版本、软件包名、软件包版本,上述匹配单元403包括:确定模块(图中未示出)、匹配模块(图中未示出)、比对模块(图中未示出)、输出模块(图中未示出)。其中,确定模块,可以被配置成确定漏洞库预处理安装包版本信息中与操作系统版本相同的软件。匹配模块,可以被配置成将确定的软件的软件安装包名称与软件包名进行匹配。比对模块,可以被配置成响应于软件安装包名称与软件包名匹配成功,且软件包版本小于或等于软件安装包名称对应的软件安装包版本,确定具有软件包名和软件包版本的云主机为具有漏洞的云主机。输出模块,可以被配置成在漏洞库预处理安装包版本信息中确定具有漏洞的云主机的漏洞信息。
111.本公开的实施例提供的漏洞扫描装置,首先接收单元401接收云漏洞扫描任务;其次,采集单元402基于云漏洞扫描任务,采集至少一个云主机上的软件安装包信息;再次,匹配单元403将漏洞库预处理安装包版本信息与软件安装包信息进行匹配,漏洞库预处理安装包版本信息为漏洞库中不同漏洞对应的软件的版本信息;最后,确定单元404基于漏洞库预处理安装包版本信息与软件安装包信息的匹配结果,确定具有漏洞的云主机以及该云主机的漏洞信息。由此,通过采集云主机的软件安装包信息,确定具有漏洞的云主机,无需在云主机的设备端对云主机进行漏洞扫描,提高了漏洞扫描的效率,保证了漏洞扫描的准确性。
112.进一步参考图5,作为对上述图5所示方法的实现,本技术提供了漏洞扫描系统的一个实施例,该系统实施例与图3所示的方法实施例相对应,该装置具体可应用于各种电子设备中。
113.如图5所示,本实施例提供的漏洞扫描系统500包括:服务端501、分布式数据存储器502以及至少一个云主机503。其中,上述至少一个云主机503用于接收安装包版本信息任务,基于安装包版本信息任务,采集并向分布式数据存储器502发送软件安装包信息。
114.上述服务端基于从分布式数据存储器502采集的软件安装包信息,通过执行如上述实施例的漏洞扫描方法,确定具有漏洞的云主机和该云主机的漏洞信息。
115.在本实施例中,漏洞扫描系统500中:云主机503的具体处理步骤及其所带来的技术效果可分别参考图3对应实施例中的步骤301、步骤302、步骤303的相关说明,在此不再赘述。服务端501的具体处理步骤及其所带来的技术效果可分别参考图2对应实施例中的步骤201、步骤202、步骤203、步骤204的相关说明,在此不再赘述。
116.本实施例提供的漏洞扫描系统,包括:服务端501、数据存储器502、至少一个云主机503,各个云主机503将各自的软件安装包信息上传数据存储器502,以使服务端501从数据存储器502中采集软件安装包信息,将采集的软件安装包信息与漏洞库预处理安装包版本信息进行匹配,确定具有漏洞的云主机以及云主机的漏洞信息,无需在云主机端进行漏洞扫描,仅在服务端进行版本匹配,便可以确定云主机的漏洞信息,提高了漏洞扫描的效率。
117.下面参考图6,其示出了适于用来实现本公开的实施例的电子设备600的结构示意图。
118.如图6所示,电子设备600可以包括处理装置(例如中央处理器、图形处理器等)601,其可以根据存储在只读存储器(rom)602中的程序或者从存储装置608加载到随机访问存储器(ram)603中的程序而执行各种适当的动作和处理。在ram 603中,还存储有电子设备600操作所需的各种程序和数据。处理装置601、rom 602以及ram603通过总线604彼此相连。输入/输出(i/o)接口605也连接至总线604。
119.通常,以下装置可以连接至i/o接口605:包括例如触摸屏、触摸板、键盘、鼠标、等的输入装置606;包括例如液晶显示器(lcd,liquid crystal display)、扬声器、振动器等的输出装置607;包括例如磁带、硬盘等的存储装置608;以及通信装置609。通信装置609可以允许电子设备600与其他设备进行无线或有线通信以交换数据。虽然图6示出了具有各种装置的电子设备600,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。图6中示出的每个方框可以代表一个装置,也可以根据需要代表多个装置。
120.特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置609从网络上被下载和安装,或者从存储装置608被安装,或者从rom 602被安装。在该计算机程序被处理装置601执行时,执行本公开的实施例的方法中限定的上述功能。
121.需要说明的是,本公开的实施例的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连
的单元。
126.以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开的实施例中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开的实施例中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜