一种软件漏洞的扫描提示方法和装置转让专利

申请号 : CN201210183972.X

文献号 : CN103473505B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杜晨亮

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本发明公开了一种软件漏洞的扫描提示方法和装置,包括:软件漏洞库中设置漏洞信息及其对应的软件名和版本号;监测模块监测客户机操作系统注册表的软件安装事件,在监测到有软件安装时读取该软件的名称和版本号;漏洞扫描模块将读取到的安装软件的软件名与所述软件漏洞库中的软件名进行比对,如果所述软件漏洞库中有该安装软件的软件名,则将读取到的安装软件的版本号与所述软件漏洞库中该软件名对应的版本号进行比对,如果所述软件漏洞库中有该安装软件的版本号,则确定该版本号对应的漏洞信息;提示模块在客户机上提示漏洞扫描模块所确定的漏洞信息。利用本发明,可以提高新安装软件的安全性,同时降低漏洞扫描的计算量。

权利要求 :

1.一种软件漏洞的扫描提示方法,其特征在于,包括:

设置软件漏洞库,该软件漏洞库中包括漏洞信息及其对应的软件名和版本号;所述设置软件漏洞库具体为:设置软件名,设置软件名对应的漏洞信息,设置每个漏洞信息对应的版本号区间;

监测客户机操作系统注册表的软件安装事件,在监测到有软件安装时读取该软件的名称和版本号;

将读取到的安装软件的软件名与所述软件漏洞库中的软件名进行比对,如果所述软件漏洞库中有该安装软件的软件名,则将读取到的安装软件的版本号与所述软件漏洞库中该软件名对应的版本号进行比对,如果所述软件漏洞库中有该安装软件的版本号,则确定该版本号对应的漏洞信息;所述将读取到的安装软件的版本号与所述软件漏洞库中该软件名对应的版本号进行比对,具体包括:将读取到的安装软件的版本号与该安装软件的软件名对应漏洞的版本号区间进行对比,如果所述安装软件的版本号落入某版本号区间的范围内时,则判定所述软件漏洞库中有该安装软件的版本号;之后确定的该安装软件的版本号对应的漏洞信息为:该安装软件的版本号所落入的版本号区间对应的漏洞信息;

在客户机上提示所确定的漏洞信息。

2.根据权利要求1所述的方法,其特征在于,

所述漏洞信息中包括漏洞对应的补丁下载信息;

在客户机上提示所述版本号对应的漏洞信息之后,该方法进一步包括:在客户机发出修复漏洞的指令后,根据所述补丁下载信息下载对应的补丁文件到客户机,并自动或根据用户指令安装所述补丁文件。

3.根据权利要求1所述的方法,其特征在于,所述监测操作系统注册表的软件安装事件,在监测到有软件安装时读取该软件的名称和版本号,具体包括:在操作系统的系统服务调度表SSDT中注册HOOK函数,由该HOOK函数对操作系统注册表的软件注册信息的写入应用程序编程接口API函数进行监测,在监测到写入API函数向注册表写入软件注册信息时判定发生软件安装事件,使用该API函数的回调函数读取所述软件注册信息中的软件名称和版本号。

4.一种软件漏洞的扫描提示装置,其特征在于,该装置包括:

软件漏洞库,其中包括漏洞信息及其对应的软件名和版本号;所述软件漏洞库中具体包括:软件名、软件名对应的漏洞信息、以及每个漏洞信息对应的版本号区间;

监测模块,用于监测客户机操作系统注册表的软件安装事件,在监测到有软件安装时读取该软件的名称和版本号;

漏洞扫描模块,用于将读取到的安装软件的软件名与所述软件漏洞库中的软件名进行比对,如果所述软件漏洞库中有该安装软件的软件名,则将读取到的安装软件的版本号与所述软件漏洞库中该软件名对应的版本号进行比对,如果所述软件漏洞库中有该安装软件的版本号,则确定该版本号对应的漏洞信息;所述漏洞扫描模块将读取到的安装软件的版本号与所述软件漏洞库中该软件名对应的版本号进行比对,具体为:将读取到的安装软件的版本号与该安装软件的软件名对应漏洞的版本号区间进行对比,如果所述安装软件的版本号落入某版本号区间的范围内时,则判定所述软件漏洞库中有该安装软件的版本号;且所述漏洞扫描模块确定的该安装软件的版本号对应的漏洞信息为:该安装软件的版本号所落入的版本号区间对应的漏洞信息;

提示模块,用于在客户机上提示漏洞扫描模块所确定的漏洞信息。

5.根据权利要求4所述的装置,其特征在于,

所述漏洞信息中包括漏洞对应的补丁下载信息;

且该装置进一步包括:补丁模块,用于在客户机发出修复漏洞的指令后,根据所确定的漏洞信息中所包括的补丁下载信息下载对应的补丁文件到客户机,并自动或根据用户指令安装所述补丁文件。

6.根据权利要求4所述的装置,其特征在于,所述监测模块中具体包括HOOK函数,由监测模块在操作系统的SSDT中注册该HOOK函数,该HOOK函数用于对操作系统注册表的软件注册信息的写入API函数进行监测,在监测到写入API函数向注册表写入软件注册信息时判定发生软件安装事件,使用该API函数的回调函数读取所述软件注册信息中的软件名称和版本号。

说明书 :

一种软件漏洞的扫描提示方法和装置

技术领域

[0001] 本发明涉及计算机数据处理技术领域,尤其涉及一种软件漏洞的扫描提示方法和装置。

背景技术

[0002] 如今,在病毒肆虐、黑客无处不在的计算机网络环境里,软件的安全性已成为一个备受关注的技术问题。其中一个重要的问题在于软件系统中的漏洞。常常在一个看似牢不可破的软件系统中,仅仅是因为存在一个小小的漏洞,导致整个安全体系被黑客轻易地攻破,整个系统的控制权彻底丧失。
[0003] 所谓漏洞,通常是指软件中存在的一些错误(bug)、缺陷等,但这种bug和缺陷又不同于普通软件测试中的bug。普通软件测试中的bug指的是功能性或逻辑性的错误,如对话框弹出出错、系统执行某功能失败等,这些bug影响的只是用户的使用体验,并不对系统的安全构成威胁。而软件的安全漏洞指的是某些别有用心的用户非正常的使用软件,让软件执行一些自己精心设计的恶意代码,或解析畸形文件,当软件中存在安全漏洞的时候,程序的正常执行流程被改变,从而达到获取系统的控制权或窃取机密数据的目的。
[0004] 目前,无论是计算机的操作系统软件(本说明书中简称操作系统),还是基于操作系统的第三方软件都存在或多或少的软件漏洞。漏洞问题是与时间紧密相关的。一个软件系统从发布的那一天起,随着用户的深入使用,软件系统中存在的漏洞会被不断暴露出来,这些早先被发现的漏洞也会不断被软件的供应商发布的补丁软件修复,或在以后发布的新版本的软件中得以纠正。所述修复漏洞通常被称为打补丁,主要是通过更新文件的方式来修复软件中存在的问题。然而,新版本软件在纠正了旧版本中具有漏洞的同时,也会引入一些新的漏洞。因而随着时间的推移,旧的漏洞会不断消失,新的漏洞会不断出现,漏洞问题也会长期存在。
[0005] 在现有技术中,出现了可以对操作系统或第三方软件的漏洞进行扫描检测并进行修复的安全辅助软件。这些安全辅助软件被安装在客户机上,当用户触发了扫描指令后,则扫描本客户机上所安装软件的漏洞,在扫描出软件漏洞后进行提示,并自动或由用户触发下载对应的补丁软件,之后安装补丁软件以对漏洞进行修复。
[0006] 但是,利用现有技术的安全辅助软件,当在客户机上安装了软件后用户无法及时获知该第三方软件是否存在漏洞。用户只有手动打开安全辅助软件点击漏洞扫描等按钮之后才能触发对本客户机的软件漏洞的扫描和提示,或者在重新启动操作系统后才对本客户机上的软件漏洞进行扫描和提示,因此现有技术对新安装的软件的漏洞扫描提示具有一定的延迟性,往往在新安装软件后并使用很长一段时间后,才能发现该软件具有漏洞,存在较多的安全隐患。
[0007] 另外,正因为现有的安全辅助软件扫描提示软件漏洞的时机不及时和不准确,进而导致了其对扫描对象没有针对性,一旦触发了对漏洞的扫描提示功能,为了安全性着想,需要对本客户机上的所有软件的漏洞都进行扫描,耗费了大量的计算资源。

发明内容

[0008] 有鉴于此,本发明的主要目的在于提供一种软件漏洞的扫描提示方法和装置,以提高新安装软件的安全性,同时降低漏洞扫描的计算量。
[0009] 本发明的技术方案是这样实现的:
[0010] 一种软件漏洞的扫描提示方法,包括:
[0011] 设置软件漏洞库,该软件漏洞库中包括漏洞信息及其对应的软件名和版本号;
[0012] 监测客户机操作系统注册表的软件安装事件,在监测到有软件安装时读取该软件的名称和版本号;
[0013] 将读取到的安装软件的软件名与所述软件漏洞库中的软件名进行比对,如果所述软件漏洞库中有该安装软件的软件名,则将读取到的安装软件的版本号与所述软件漏洞库中该软件名对应的版本号进行比对,如果所述软件漏洞库中有该安装软件的版本号,则确定该版本号对应的漏洞信息;
[0014] 在客户机上提示所确定的漏洞信息。
[0015] 一种软件漏洞的扫描提示装置,该装置包括:
[0016] 软件漏洞库,其中包括漏洞信息及其对应的软件名和版本号;
[0017] 监测模块,用于监测客户机操作系统注册表的软件安装事件,在监测到有软件安装时读取该软件的名称和版本号;
[0018] 漏洞扫描模块,用于将读取到的安装软件的软件名与所述软件漏洞库中的软件名进行比对,如果所述软件漏洞库中有该安装软件的软件名,则将读取到的安装软件的版本号与所述软件漏洞库中该软件名对应的版本号进行比对,如果所述软件漏洞库中有该安装软件的版本号,则确定该版本号对应的漏洞信息;
[0019] 提示模块,用于在客户机上提示漏洞扫描模块所确定的漏洞信息。
[0020] 与现有技术相比,本发明监测操作系统注册表的软件安装事件,在监测到有软件安装时读取该软件的名称和版本号;然后根据读取到的安装软件的软件名与预先设置的软件漏洞库中的软件名进行比对,如果所述软件漏洞库中有该安装软件的软件名,则将读取到的安装软件的版本号与所述软件漏洞库中该软件名对应的版本号进行比对,如果所述软件漏洞库中有该安装软件的版本号,则在客户机上提示该版本号对应的漏洞信息。由于本发明可以在新安装软件之后立即对该软件的漏洞进行扫描(即所述比对的过程)和提示,扫描提示漏洞的时机非常及时以及非常有针对性,可以使用户在新安装软件的第一时间及时了解该新安装软件的安全问题,提高了新安装软件的安全性。同时由于本发明可以监测软件的安装事件,只针对新安装的软件进行漏洞扫描和提示,因此,在全面保证安全性的前提下,降低了漏洞扫描的计算量。

附图说明

[0021] 图1为本发明所述软件漏洞的扫描提示方法的主要流程图;
[0022] 图2为本发明所述软件漏洞的扫描提示方法的一种具体实施流程图;
[0023] 图3为本发明所述软件漏洞的扫描提示方法的又一种具体实施流程图;
[0024] 图4为本发明所述软件漏洞的扫描提示装置的一种组成示意图;
[0025] 图5为本发明所述软件漏洞的扫描提示装置的又一种组成示意图。

具体实施方式

[0026] 下面结合附图及具体实施例对本发明再作进一步详细的说明。
[0027] 图1为本发明所述软件漏洞的扫描提示方法的主要流程示意图,参见图1,该方法包括:
[0028] 101、设置软件漏洞库,该软件漏洞库中包括漏洞信息及其对应的软件名和版本号;
[0029] 102、监测客户机操作系统注册表的软件安装事件,在监测到有软件安装时读取该软件的名称和版本号;
[0030] 103、扫描漏洞,即:将读取到的安装软件的软件名与所述软件漏洞库中的软件名进行比对,如果所述软件漏洞库中有该安装软件的软件名,则将读取到的安装软件的版本号与所述软件漏洞库中该软件名对应的版本号进行比对,如果所述软件漏洞库中有该安装软件的版本号,则确定该版本号对应的漏洞信息;
[0031] 104、在客户机上提示步骤103所确定的漏洞信息。
[0032] 本发明中所述的客户机是指可以安装软件的数据处理设备,例如大、小型计算机,也可以是便携的移动终端,例如移动电话、个人数字助(PDA,Personal Digital Assistant)、手持计算机(Pocket PC),平板电脑等。所述客户机上安装有操作系统,例如对于计算机,安装的操作系统通常有WINDOWS、LINUX等。本发明所述的安装软件是指在客户机操作系统上安装的软件。下面实施例以在具有WINDOWS操作系统的计算机上安装软件为例对本发明进行说明。
[0033] 本发明所述设置软件漏洞库具体包括:人工或自动收集软件漏洞信息,例如可以查看或扫描各个软件开发商的信息发布网站,从这些网站上查询是否发布了软件的漏洞通告信息,这些漏洞通告信息中至少包括软件名、版本号、漏洞描述信息、以及对应的补丁文件下载信息等,每一个漏洞以软件名和版本号作为唯一标识。在收集到这些漏洞通告信息之后,在软件漏洞库中设置软件名,设置软件名对应的漏洞信息(如漏洞的标识和描述信息,或者进一步包括该漏洞对应的补丁下载信息),以及设置每个漏洞信息对应的软件版本号区间。此处,设置软件版本号区间的原因是有时若干个软件版本,或者在某个时间段发布的软件版本都具有某一个漏洞,通过设置版本号区间可以提升后续比对时的处理效率。此处,不同的版本号区间对应有相应的漏洞信息以及补丁下载信息,但是最新版本则不会对应漏洞信息。
[0034] 如falsh软件本身存在多个版本,9版本、10版本、11版本,每个版本中又有不同的漏洞和补丁,如版本号在9.0-10.0之间的对应漏洞信息1和补丁文件1的下载信息,而10.0-11.0之间的版本对应漏洞信息2和补丁文件2的下载信息,以此类推。
[0035] 通过反复进行上述设置软件漏洞库的过程,可以使软件漏洞库中包含大量的漏洞信息及其对应的软件名和版本号等信息,从而为后续的漏洞扫描和提示提供数据基础。所述设置好的软件漏洞库可以存储在客户机本地上,在后续的漏洞扫描和提示操作时进行调用,当然也可以将设置好的软件漏洞库存储在网络服务器上,并为客户机提供该软件漏洞库的访问地址,在后续的漏洞扫描和提示操作时通过该访问地址调用该软件漏洞库中的数据。
[0036] 图2为本发明所述软件漏洞的扫描提示方法的一种具体流程图。参见图2,该流程包括:
[0037] 步骤201、在操作系统的系统服务调度表(SSDT,System Service Dispath Table)中注册HOOK函数,由该HOOK函数监测操作系统注册表的软件安装事件,即对操作系统的注册表HKEY CURRENT USER\Software进行实时监测。具体实施时,是由该HOOK函数对操作系统注册表的软件注册信息的写入应用程序编程接口(API,Application Programming Interface)函数进行监测。
[0038] 步骤202、通过所述HOOK函数,在监测到有软件安装事件时,读取所安装的软件的名称和版本号。
[0039] 此处,当用户在客户机上安装软件时,安装包会在操作系统的注册表(如WINDOWS操作系统的注册表HKEY CURRENT USER\Software)中写入软件信息,如软件名称、版本号,安装目录等信息,而对注册表写入信息都是通过调用操作系统的写入API函数来实现,而所述HOOK函数就是用于对该写入API函数进行监测,在监测到写入API函数向注册表写入软件注册信息时判定发生软件安装事件,此时使用该API函数的回调函数读取所述软件注册信息中的软件名称和版本号。
[0040] 下面是扫描该新安装的软件是否具有漏洞和提示漏洞的过程,具体如下:
[0041] 步骤203、将所述HOOK函数读取到的安装软件的软件名称与所述存储在客户机本地或网络服务器上的所述软件漏洞库中的软件名进行比对,所述的比对过程是指查找所述软件漏洞库中是否设置有该新安装软件的软件名称,如果是,则执行下一步骤,否则结束本流程。
[0042] 步骤204、判断新安装软件的版本是否存在漏洞,即判断所述软件漏洞库中是否有该安装软件的版本号。具体是将所述HOOK函数读取到的安装软件的版本号与所述软件漏洞库中该安装软件的软件名对应漏洞的版本号区间进行对比,如果所述安装软件的版本号落入某版本号区间的范围内时,则判定所述软件漏洞库中有该安装软件的版本号,即判定该新安装软件具有漏洞,执行下一步骤,否则判定该新安装软件没有漏洞,结束本流程。
[0043] 步骤205、确定具体的漏洞信息,即确定新安装软件的版本号所落入的版本号区间对应的漏洞信息,其中包括漏洞的标识和描述信息,或者进一步包括该漏洞对应的补丁下载信息。
[0044] 步骤206、在客户机上以告警(tips)的方式提示所确定的漏洞信息,即所述新安装软件的版本号所落入的版本号区间对应的漏洞信息。例如弹出告警窗口,其中提示“您新安装的软件具有漏洞,漏洞信息是***”,其中的“***”可以替换为所述漏洞标识和描述信息等。
[0045] 在另一种实施例中,如果所述漏洞信息中包括漏洞对应的补丁下载信息,则如图3所示,可以在客户机上提示所述版本号对应的漏洞信息即步骤206之后,该方法进一步包括:
[0046] 步骤207~208、监测客户机是否发出修复漏洞的指令,例如可以在所述告警窗口中进一步显示“是否修复漏洞”的提示信息,如果用户点击了该提示信息,判定发出了修复漏洞的指令,在监测到修复漏洞的指令后,则根据所述漏洞信息中的补丁下载信息下载对应的补丁文件到客户机,并自动或根据用户指令安装所述补丁文件。
[0047] 与上述方法对应,本发明还公开了一种软件漏洞的扫描提示装置。图4为该软件漏洞的扫描提示装置的一种组成示意图。参见图4,该装置400包括:
[0048] 软件漏洞库401,其中包括漏洞信息及其对应的软件名和版本号;
[0049] 监测模块402,用于监测客户机操作系统注册表的软件安装事件,在监测到有软件安装时读取该软件的名称和版本号;
[0050] 漏洞扫描模块403,用于将读取到的安装软件的软件名与所述软件漏洞库401中的软件名进行比对,如果所述软件漏洞库401中有该安装软件的软件名,则将读取到的安装软件的版本号与所述软件漏洞库401中该软件名对应的版本号进行比对,如果所述软件漏洞库401中有该安装软件的版本号,则确定该版本号对应的漏洞信息;
[0051] 提示模块404,用于在客户机上提示漏洞扫描模块403所确定的漏洞信息。
[0052] 在一种实施例中,所述漏洞信息中包括漏洞对应的补丁下载信息;且该装置进一步包括补丁模块405,如图5所示,该补丁模块405用于在客户机发出修复漏洞的指令后,根据所确定的漏洞信息中所包括的补丁下载信息下载对应的补丁文件到客户机,并自动或根据用户指令安装所述补丁文件。
[0053] 本发明所述装置400中,所述监测模块402中具体包括HOOK函数,由监测模块402在操作系统的系统服务调度表中注册该HOOK函数,该HOOK函数用于对操作系统注册表的软件注册信息的写入API函数进行监测,在监测到写入API函数向注册表写入软件注册信息时判定发生软件安装事件,使用该API函数的回调函数读取所述软件注册信息中的软件名称和版本号。
[0054] 在一种实施例中,所述软件漏洞库中具体包括:软件名、软件名对应的漏洞信息、以及每个漏洞信息对应的版本号区间。所述漏洞扫描模块403将读取到的安装软件的版本号与所述软件漏洞库401中该软件名对应的版本号进行比对的具体方式为:将读取到的安装软件的版本号与该安装软件的软件名对应漏洞的版本号区间进行对比,如果所述安装软件的版本号落入某版本号区间的范围内时,则判定所述软件漏洞库401中有该安装软件的版本号;且所述漏洞扫描模块403确定的该安装软件的版本号对应的漏洞信息为:该安装软件的版本号所落入的版本号区间对应的漏洞信息。之后所述提示模块404提示该版本号区间对应的漏洞信息。
[0055] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。