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

软件漏洞检测方法、装置、计算机设备及存储介质与流程

2022-02-22 18:13:55 来源:中国专利 TAG:


1.本技术涉及网络安全技术领域,尤其涉及一种软件漏洞检测方法、装置、计算机设备及存储介质。


背景技术:

2.软件漏洞是信息安全风险的主要根源之一,是网络攻防对抗中的重要目标。无论从国家层面的网络安全战略,还是社会层面的信息安全防护,安全漏洞已经成为信息对抗双方博弈的核心问题之一。
3.目前市面上各种各样的软件层出不穷,导致可被利用的软件漏洞也越来越多。但可检测软件漏洞的平台相对较少,能做到对软件实时进行漏洞检测的平台更是少之又少。


技术实现要素:

4.本技术实施例提供一种软件漏洞检测方法、装置、计算机设备及存储介质,用于对终端设备中安装的软件进行漏洞检测。
5.本发明实施例提供一种软件漏洞检测方法,所述方法包括:
6.获取终端设备中安装的各个软件分别对应的软件信息,所述软件信息包括软件名称和对应的软件版本;
7.将所述软件信息与漏洞软件版本库中的软件名称和软件版本进行匹配,所述漏洞软件版本库中存储有存在漏洞的软件名称和对应的软件版本;
8.将所述终端设备中与所述漏洞软件版本库中软件名称和软件版本匹配成功的软件信息所对应的软件确定为目标软件;
9.确定所述目标软件为存在漏洞的软件。
10.本发明实施例提供一种软件漏洞检测装置,所述装置包括:
11.获取模块,用于获取终端设备中安装的各个软件分别对应的软件信息,所述软件信息包括软件名称和对应的软件版本;
12.匹配模块,用于将所述软件信息与漏洞软件版本库中的软件名称和软件版本进行匹配,所述漏洞软件版本库中存储有存在漏洞的软件名称和对应的软件版本;
13.确定模块,用于将所述终端设备中与所述漏洞软件版本库中软件名称和软件版本匹配成功的软件信息所对应的软件确定为目标软件;
14.所述确定模块,还用于确定所述目标软件为存在漏洞的软件。
15.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述软件漏洞检测方法。
16.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述软件漏洞检测方法。
17.本发明提供一种软件漏洞检测方法、装置、计算机设备及存储介质,本发明在获取到终端设备中安装的各个软件分别对应的软件信息之后,将软件信息与漏洞软件版本库中
的软件名称和软件版本进行匹配,然后终端设备中与漏洞软件版本库中软件名称和软件版本匹配成功的软件信息所对应的软件确定为目标软件,即将目标软件确定为存在漏洞的软件。从而通过本发明实现了对终端设备中安装的软件的漏洞检测,进而提高网络安全性。
附图说明
18.图1为本技术提供的一种软件漏洞检测方法流程图;
19.图2为本技术提供的一种获取软件名称对应的软件版本的流程图;
20.图3为本技术提供的软件漏洞检测装置的结构示意图;
21.图4为本技术提供的计算机设备的一示意图。
具体实施方式
22.为了更好的理解上述技术方案,下面通过附图以及具体实施例对本技术实施例的技术方案做详细的说明,应当理解本技术实施例以及实施例中的具体特征是对本技术实施例技术方案的详细的说明,而不是对本技术技术方案的限定,在不冲突的情况下,本技术实施例以及实施例中的技术特征可以相互组合。
23.请参阅图1,为本发明实施例提供的一种软件漏洞检测方法,该方法具体包括步骤s101-步骤s104:
24.步骤s101,获取终端设备中安装的各个软件分别对应的软件信息。
25.其中,所述软件信息包括软件名称和对应的软件版本,软件版本可以为软件的版本号,如软件版本可以为1.0、2.0、3.0等。在本实施例中,可获取终端设备中安装的所有软件的软件信息,或是终端设备中特定软件的软件信息,以便于在后续步骤中根据软件信息确定终端设备中存在的漏洞软件。
26.需要说明的是,若需要确定终端设备中特定软件是否存在漏洞,则可对终端设备中的需要进行漏洞检测软件进行标记,使得终端设备根据该标记获取需要进行漏洞检测的特定软件,然后获取该特定软件的软件信息。
27.本发明提供一个可选实施例中,所述获取终端设备中安装的各个软件分别对应的软件信息,包括:按照预置时间间隔获取终端设备中安装软件的软件名称,或在终端设备中的软件启动时获取启动软件的软件名称;根据所述软件名称获取与所述软件名称对应的软件版本。进一步的,在获取到终端设备中各个软件的软件名称之后,需要确定获取的软件名称是否对应软件的真实软件名称。
28.例如,当有新软件进程启动后,获取进程文件所在的路径,并通过该进程的pdb(信息判断此进程文件的名称。如:powershell.exe被人为改名为power.exe,但其pdb信息为powershell.pdb,因此可以断定此程序的软件名称为powershell.exe。
29.具体的,按照预置时间间隔获取终端设备中安装软件的软件名称,包括:按照预置时间间隔获取所述软件的进程文件的路径,通过所述进程文件的路径获取调试文件,根据所述调试文件中的进程名称确定对应软件的软件名称。
30.其中,预置时间间隔可以根据实际需求进行设置,如预置时间间隔可以为10小时、24小时、48小时等,本实施例不做具体限定。
31.进一步的,本实施例可以根据终端设备中各个软件的使用频率设置不同软件分别
对应的时间间隔,然后根据不同的时间间隔获取对应软件的软件信息。具体的,本实施例中软件的使用频率越高,相应的时间间隔设置的越短;软件的使用频率越低,相应的时间间隔设置的越长。即本实施例以不同时间间隔获取不同软件的软件信息,使得获取的软件信息根据具有针对性,进而提高了软件漏洞检测的效率。
32.具体的,在终端设备中的软件启动时获取启动软件的软件名称,包括:在终端设备中的有软件启动时,获取所述软件的进程文件的路径,通过所述进程文件的路径获取调试文件,根据所述调试文件中的进程名称确定启动软件的软件名称。
33.例如,当终端设备中有新进程启动后,获取新启动进程对应的进程文件所在的路径,并通过该进程的调试文件(程序数据库文件)获取此进程文件的名称,即获取调试文件中的进程名称,然后将该进程名称确定为启动软件的软件名称。
34.步骤s102,将软件信息与漏洞软件版本库中的软件名称和软件版本进行匹配。
35.其中,所述漏洞软件版本库中存储有存在漏洞的软件名称和对应的软件版本。需要说明的是,本实施例中可以在全网获取常用软件或想检测的软件存在漏洞的版本,如可参考软件发布商官网、微软官网、国家信息安全漏洞库cnnvd、cve官网等网站获取存在漏洞的软件版本,然后将获取的存在漏洞的软件名称及软件版本对应存储到漏洞软件版本库中。
36.需要说明的是,本实施例可以在实时对漏洞软件版本库更新,即在发现新的漏洞软件后,则将该漏洞软件的软件名称和软件版本更新至漏洞软件版本库;也可以每隔一段时间对漏洞软件版本库进行更新,该更新时间可以为5天、10天、15天等,本实施例对此不做具体限定。
37.进一步的,若存在漏洞软件已经进行了修复,则可以将漏洞软件版本库中对应漏洞软件的软件名称和软件版本删除。例如,视频软件a存在两个软件版本,分别为1.0和2.0,且该两个软件版本均存在漏洞,即漏洞软件版本库中存储有上述两项数据记录,分别为视频软件a、1.0,视频软件a、2.0,若该视频软件a的运营商对版本1.0进行了修复(修复补丁自动对软件进行的修复),则可将漏洞软件版本库中的数据记录“视频软件a、1.0”删除。
38.步骤s103,将终端设备中与漏洞软件版本库中软件名称和软件版本匹配成功的软件信息所对应的软件确定为目标软件。
39.例如,终端设备中安装有一款社交软件a,在该社交软件a启动后,终端设备可以获取该社交软件a的软件信息(社交软件a的软件名称和软件版本),若漏洞软件版本库中存在该社交软件a的软件名称和软件版本,则说明该社交软件a为目标软件,即社交软件a为存在漏洞的软件。
40.步骤s104,确定目标软件为存在漏洞的软件。
41.本发明提供一种软件漏洞检测方法,本发明在获取到终端设备中安装的各个软件分别对应的软件信息之后,将软件信息与漏洞软件版本库中的软件名称和软件版本进行匹配,然后终端设备中与漏洞软件版本库中软件名称和软件版本匹配成功的软件信息所对应的软件确定为目标软件,即将目标软件确定为存在漏洞的软件。从而通过本发明实现了对终端设备中安装的软件的漏洞检测,进而提高网络安全性。
42.请参阅图2,根据软件名称获取与软件名称对应的软件版本,包括:
43.步骤s201,读取所述终端设备中注册表的卸载或更改程序信息。
44.步骤s202,查询所述卸载或更改程序信息中是否存与所述软件名称对应的软件版本。
45.需要说明的是,注册表的卸载或更改程序信息通常存储有软件名称对应的软件版本,因此通过该注册表的卸载或更改程序信息可获取软件名称对应的软件版本。但是,目前存在一些不需要进行安装的软件(无需在终端设备上安装,则可接运行的软件),如小程序、公众号等,这类软件在注册表的卸载或更改程序信息中是无法查到软件名称对应的软件版本的。因此,本实施例针对在注册表的卸载或更改程序信息能否查询到软件名称对应的软件版本,采用不同的处理方式,即若所述卸载或更改程序信息中存在与所述软件名称对应的软件版本,则跳转到步骤s203继续执行;若所述卸载或更改程序信息中不存在与所述软件名称对应的软件版本,则跳转到步骤s204继续执行。
46.步骤s203,若所述卸载或更改程序信息中存在与所述软件名称对应的软件版本,则将所述卸载或更改程序信息中查询到的软件版本确定为所述软件名称对应的软件版本。
47.步骤s204,若所述卸载或更改程序信息中不存在与所述软件名称对应的软件版本,则根据预置映射表中的各软件名称分别对应的软件版本获取方式,获取与所述软件名称对应的软件版本。
48.其中,预置映射表中记录有各个软件的软件版本的获取方式,通过该预置映射表中记录的软件版本的获取方式,可以获取到软件名称对应的软件版本。
49.具体的,所述根据预置映射表中的各软件名称分别对应的软件版本获取方式,获取与所述软件名称对应的软件版本,包括:获取所述预置映射表中的与所述软件名称对应的注册表中的预置位置信息或预置目录下的文件信息;通过所述注册表中的预置位置信息或所述预置目录下的文件信息,获取与所述软件名称对应的软件版本。
50.其中,注册表中的预置位置信息下记录有软件名称对应的软件版本,该预置位置信息是由软件运营商提供的,或是由人工挖掘的发现的;预置目录下同样也是由软件运营商提供的,通过读取该预置目录下的文件信息可以获取与软件名称对应的软件版本。
51.进一步的,若所述预置映射表中不存在所述软件名称的软件版本获取方式,则通过所述软件名称对应的文件属性获取所述软件名称对应的软件版本;或通过运行预置命令获取所述软件名称对应的软件版本;或通过截取所述软件名称对应的软件目录,获取所述软件名称对应的软件版本。
52.需要说明的是,通过上述通过文件属性、预置命令或是截取软件目录,获取的软件名称对应的软件版本,可以通过上述任意一种方式获取软件名称对应的软件版本,即本实施例不对获取软件版本的具体形式进行限定。
53.需要说明的是,由于获取软件名称对应的软件版本的成功率从大到小的顺序为:通过文件属性、预置命令、截取软件目录。因此,本实施例若所述预置映射表中不存在所述软件名称的软件版本获取方式,通过所述软件名称对应的文件属性获取所述软件名称对应的软件版本;若通过所述软件名称对应的文件属性未获取到所述软件名称对应的软件版本,则通过运行预置命令获取所述软件名称对应的软件版本;若通过运行预置命令未获取到所述软件名称对应的软件版本,则通过截取所述软件名称对应的软件目录,获取所述软件名称对应的软件版本。
54.应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程
的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
55.在一实施例中,提供一种软件漏洞检测装置,该软件漏洞检测装置与上述实施例中软件漏洞检测方法一一对应。如图3所示,所述软件漏洞检测装置各功能模块详细说明如下:
56.获取模块31,用于获取终端设备中安装的各个软件分别对应的软件信息,所述软件信息包括软件名称和对应的软件版本;
57.匹配模块32,用于将所述软件信息与漏洞软件版本库中的软件名称和软件版本进行匹配,所述漏洞软件版本库中存储有存在漏洞的软件名称和对应的软件版本;
58.确定模块33,用于将所述终端设备中与所述漏洞软件版本库中软件名称和软件版本匹配成功的软件信息所对应的软件确定为目标软件;
59.所述确定模块33,还用于确定所述目标软件为存在漏洞的软件。
60.在一个可选实施例中,获取模块31,具体用于:
61.按照预置时间间隔获取终端设备中安装软件的软件名称,或在终端设备中的软件启动时获取启动软件的软件名称;
62.根据所述软件名称获取与所述软件名称对应的软件版本。
63.在一个可选实施例中,获取模块31,具体还用于:
64.在终端设备中的有软件启动时,获取所述软件的进程文件的路径;
65.通过所述进程文件的路径获取调试文件;
66.根据所述调试文件中的进程名称确定启动软件的软件名称。
67.在一个可选实施例中,获取模块31,具体还用于:
68.读取所述终端设备中注册表的卸载或更改程序信息;
69.查询所述卸载或更改程序信息中是否存与所述软件名称对应的软件版本;
70.若所述卸载或更改程序信息中存在与所述软件名称对应的软件版本,则将所述卸载或更改程序信息中查询到的软件版本确定为所述软件名称对应的软件版本;
71.若所述卸载或更改程序信息中不存在与所述软件名称对应的软件版本,则根据预置映射表中的各软件名称分别对应的软件版本获取方式,获取与所述软件名称对应的软件版本。
72.在一个可选实施例中,获取模块31,具体还用于:
73.获取所述预置映射表中的与所述软件名称对应的注册表中的预置位置信息或预置目录下的文件信息;
74.通过所述注册表中的预置位置信息或所述预置目录下的文件信息,获取与所述软件名称对应的软件版本。
75.在一个可选实施例中,获取模块31,具体还用于:
76.若所述预置映射表中不存在所述软件名称的软件版本获取方式,则通过所述软件名称对应的文件属性获取所述软件名称对应的软件版本;或
77.通过运行预置命令获取所述软件名称对应的软件版本;或
78.通过截取所述软件名称对应的软件目录,获取所述软件名称对应的软件版本。
79.在一个可选实施例中,获取模块31,具体还用于:
80.若所述预置映射表中不存在所述软件名称的软件版本获取方式,通过所述软件名称对应的文件属性获取所述软件名称对应的软件版本;
81.若通过所述软件名称对应的文件属性未获取到所述软件名称对应的软件版本,则通过运行预置命令获取所述软件名称对应的软件版本;
82.若通过运行预置命令未获取到所述软件名称对应的软件版本,则通过截取所述软件名称对应的软件目录,获取所述软件名称对应的软件版本。
83.关于软件漏洞检测装置的具体限定可以参见上文中对于软件漏洞检测方法的限定,在此不再赘述。上述设备中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
84.在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种软件漏洞检测方法。
85.在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
86.获取终端设备中安装的各个软件分别对应的软件信息,所述软件信息包括软件名称和对应的软件版本;
87.将所述软件信息与漏洞软件版本库中的软件名称和软件版本进行匹配,所述漏洞软件版本库中存储有存在漏洞的软件名称和对应的软件版本;
88.将所述终端设备中与所述漏洞软件版本库中软件名称和软件版本匹配成功的软件信息所对应的软件确定为目标软件;
89.确定所述目标软件为存在漏洞的软件。
90.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
91.获取终端设备中安装的各个软件分别对应的软件信息,所述软件信息包括软件名称和对应的软件版本;
92.将所述软件信息与漏洞软件版本库中的软件名称和软件版本进行匹配,所述漏洞软件版本库中存储有存在漏洞的软件名称和对应的软件版本;
93.将所述终端设备中与所述漏洞软件版本库中软件名称和软件版本匹配成功的软件信息所对应的软件确定为目标软件;
94.确定所述目标软件为存在漏洞的软件。
95.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可
包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
96.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
97.以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
再多了解一些

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

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

相关文献