一种漏洞修复方法及装置与流程

文档序号:13446695阅读:326来源:国知局
一种漏洞修复方法及装置与流程

本发明涉及计算机安全技术领域,特别是涉及一种漏洞修复方法及装置。



背景技术:

计算机系统由计算机软件资源和硬件资源共同组成,而计算机操作系统是计算机软件资源的基础和核心。然而,操作系统的设计和开发是一个复杂而庞大的系统工程,难免会出现各种缺陷和错误,这些缺陷和错误通常称之为系统漏洞。系统漏洞可能导致严重的错误,也可能被不法者利用,来传播病毒、木马等恶意程序。对于一些应用软件来说亦是如此,在设计和开发的过程中同样会出现可能造成严重后果的漏洞。所以,及时发现和处理这些漏洞也是整个软件工程的重要组成部分。

操作系统或应用软件的开发者为用户提供修复漏洞的普遍做法是提供针对所发现漏洞的补丁程序给用户,在用户端进行选择和安装。现有技术中,例如对于windows操作系统,在用户端进行补丁安装的过程中,当释放补丁文件至本地时,如果本地已存在相应的系统文件,则从本地获取该系统文件,以减少系统资源耗费。

然而,目前存在着大量修改版系统,例如典型的ghost系统、雨林木风系统等。在这些修改版系统中,某些本地系统文件往往已被制作者或被病毒、木马等所篡改。即使对于原版系统,在感染了病毒、木马等以后,也会发生本地系统文件被篡改的情形。这样,当用户下载官方补丁进行安装时,如果从本地获取了被篡改的系统文件,由于所获取的本地系统文件与补丁所需释放的文件不一致,当补丁安装完成后计算机重启时,会出现黑屏甚至蓝屏等问题,影响计算机的正常使用。比如在nsa事件中,大量安装了windows7操作系统的电脑在安装了用于修复永恒之蓝勒索病毒所攻击的漏洞的补丁后,出现了由于系统文件不一致导致的黑屏或蓝屏等问题。因此,亟需解决上述问题。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的漏洞修复方法和相应的装置。

基于本发明的一方面,本发明实施例提供了一种漏洞修复方法,包括:

获取对本地漏洞进行修复的补丁包,其中,所述补丁包中包括补丁文件目录和补丁文件身份信息;

根据所述补丁包中的补丁文件目录获取相应的待安装文件,并将所述待安装文件缓存至本地的指定目录;

利用所述补丁文件身份信息,对缓存至所述指定目录的所述待安装文件进行校验,判断所述待安装文件是否被篡改,得到判断结果;

根据所述判断结果对缓存至所述指定目录的所述待安装文件进行相应的处理,并在对所有所述待安装文件处理完成后将缓存状态调整为已安装状态,从而完成对所述本地漏洞的修复。

可选地,根据所述补丁包中的补丁文件目录获取相应的待安装文件,包括:

根据所述补丁包中的补丁文件目录释放文件得到待安装文件,并且,在释放的过程中,若本地存在相应的文件,则从本地获取该文件。

可选地,所述本地漏洞包括下列中的任意之一:

本地操作系统的漏洞、本地应用的漏洞。

可选地,当所述本地漏洞为本地操作系统的漏洞时,所述指定目录是winsxs目录。

可选地,所述补丁文件身份信息包括:补丁文件的名称、补丁文件的唯一身份标识以及生成所述补丁文件的唯一身份标识的算法;并且,

利用所述补丁文件身份信息,对缓存至所述指定目录的所述待安装文件进行校验,判断所述待安装文件是否被篡改,包括:

从所述补丁包中获取生成所述补丁文件的唯一身份标识的算法;

利用所述算法计算所述待安装文件的唯一身份标识;

根据所述补丁文件的名称,将所述待安装文件的唯一身份标识与相应的所述补丁文件的唯一身份标识一一对比;

若所述待安装文件的唯一身份标识与相应的所述补丁文件的唯一身份标识不一致,则判断所述待安装文件被篡改;

若所述待安装文件的唯一身份标识与相应的所述补丁文件的唯一身份标识相一致,则判断所述待安装文件未被篡改。

可选地,所述唯一身份标识是哈希值;并且,

所述算法包括下列算法的任意之一:sha1、md2、md4、md5。

可选地,根据所述判断结果对缓存至所述指定目录的所述待安装文件进行相应的处理,包括:

若所述判断结果为所述待安装文件被篡改,则利用所述补丁包中的相应补丁文件替换所述指定目录中被篡改的所述待安装文件;

若所述判断结果为所述待安装文件未被篡改,则保持所述待安装文件不变。

可选地,在对所有所述待安装文件处理完成后,通过调用指定组件管理接口将所述缓存状态调整为已安装状态。

可选地,所述指定组件管理接口是基于组件的服务接口。

基于本发明的另一方面,本发明实施例还提供了一种漏洞修复装置,包括:

获取模块,适于获取对本地漏洞进行修复的补丁包,其中,所述补丁包中包括补丁文件目录和补丁文件身份信息;

缓存模块,适于根据所述补丁包中的补丁文件目录获取相应的待安装文件,并将所述待安装文件缓存至本地的指定目录;

校验模块,适于利用所述补丁文件身份信息,对缓存至所述指定目录的所述待安装文件进行校验,判断所述待安装文件是否被篡改,得到判断结果;

处理模块,适于根据所述判断结果对缓存至所述指定目录的所述待安装文件进行相应的处理;以及

状态调整模块,适于在对所有所述待安装文件处理完成后,将缓存状态调整为已安装状态,从而完成对所述本地漏洞的修复。

可选地,所述缓存模块还适于根据所述补丁包中的补丁文件目录释放文件得到待安装文件,并且,在释放的过程中,若本地存在相应的文件,则从本地获取该文件。

可选地,所述补丁文件身份信息包括:补丁文件的名称、补丁文件的唯一身份标识以及生成所述补丁文件的唯一身份标识的算法;并且,所述校验模块还适于:

从所述补丁包中获取生成所述补丁文件的唯一身份标识的算法;

利用所述算法计算所述待安装文件的唯一身份标识;

根据所述补丁文件的名称,将所述待安装文件的唯一身份标识与相应的所述补丁文件的唯一身份标识一一对比;

若所述待安装文件的唯一身份标识与相应的所述补丁文件的唯一身份标识不一致,则判断所述待安装文件被篡改;

若所述待安装文件的唯一身份标识与相应的所述补丁文件的唯一身份标识相一致,则判断所述待安装文件未被篡改。

可选地,所述唯一身份标识是哈希值;并且,所述算法包括下列算法的任意之一:sha1、md2、md4、md5。

可选地,所述处理模块还适于:

若所述判断结果为所述待安装文件被篡改,则利用所述补丁包中的相应补丁文件替换所述指定目录中被篡改的所述待安装文件;

若所述判断结果为所述待安装文件未被篡改,则保持所述待安装文件不变。

可选地,所述状态调整模块还适于在对所有所述待安装文件处理完成后,通过调用指定组件管理接口将所述缓存状态调整为已安装状态。

在本发明实施例中,通过先将根据补丁包中的补丁文件目录获取的待安装文件缓存至本地的指定目录中,利用补丁包中的补丁文件身份信息对缓存的待安装文件进行校验,判断待安装文件是否被篡改,得到判断结果;进而根据判断结果对缓存至指定目录的待安装文件进行相应的处理,并在对所有待安装文件处理完成后将缓存状态调整为已安装状态,从而完成对本地漏洞的修复。由于本发明实施例先缓存待安装文件,然后校验待安装文件,最后再将缓存状态调整为已安装状态,保证了用于本地漏洞修复的文件与补丁包所需释放文件的一致,从而避免了安装补丁后由于文件不一致导致的黑屏或蓝屏等问题。

进一步,在本发明实施例中,若待安装文件与补丁包里的相应文件不一致,则判断待安装文件被篡改,并利用补丁包里的相应文件替换被篡改的待安装文件,在校验完所有待安装文件后,再将缓存状态调整为已安装状态,使补丁文件生效以完成漏洞修复。由于本发明实施例将缓存在指定目录中的被篡改的待安装文件替换为补丁包中相应的原文件,实现了在补丁安装过程中对被篡改的本地文件的修复,保证本地补丁文件与补丁包所需释放文件的一致,从而避免了安装补丁后由于文件不一致导致的黑屏或蓝屏等问题。另外,本发明实施例提供的漏洞修复方法及装置特别适用于nsa“永恒之蓝”漏洞补丁更新工具以及漏洞修复引擎。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了根据本发明一实施例的漏洞修复方法的处理流程图;

图2示出了根据本发明另一实施例的漏洞修复方法的处理流程图;以及

图3示出了根据本发明一实施例的漏洞修复装置的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

为解决上述技术问题,本发明实施例提供了一种漏洞修复方法。图1示出了根据本发明一实施例的漏洞修复方法的处理流程图。参见图1,该漏洞修复方法可以包括以下步骤s102至步骤s108。

步骤s102、获取对本地漏洞进行修复的补丁包,其中,补丁包中包括补丁文件目录和补丁文件身份信息。

步骤s104、根据补丁包中的补丁文件目录获取相应的待安装文件,并将待安装文件缓存至本地的指定目录。

步骤s106、利用补丁文件身份信息,对缓存至指定目录的待安装文件进行校验,判断待安装文件是否被篡改,得到判断结果。

步骤s108、根据判断结果对缓存至指定目录的待安装文件进行相应的处理,并在对所有待安装文件处理完成后将缓存状态调整为已安装状态,从而完成对本地漏洞的修复。

在本发明实施例中,通过先将根据补丁包中的补丁文件目录获取的待安装文件缓存至本地的指定目录中,利用补丁包中的补丁文件身份信息对缓存的待安装文件进行校验,判断待安装文件是否被篡改,得到判断结果;进而根据判断结果对缓存至指定目录的待安装文件进行相应的处理,并在对所有待安装文件处理完成后将缓存状态调整为已安装状态,从而完成对本地漏洞的修复。由于本发明实施例先缓存待安装文件,然后校验待安装文件,最后再将缓存状态调整为已安装状态,保证了用于本地漏洞修复的文件与补丁包所需释放文件的一致,从而避免了安装补丁后由于文件不一致导致的黑屏或蓝屏等问题。

在上文步骤s102中,本地漏洞既可以是本地操作系统的漏洞,例如目前常用的windows7操作系统的漏洞,也可以是本地应用的漏洞,例如蓝信企业移动工作软件的漏洞,等等,本发明实施例不限于此。此外,这里的本地可以是电脑、智能手机、平板电脑、智能手表等终端设备上。

在步骤s102之前,可以运行已有的漏洞修复功能产品来扫描并判断当前的用户系统环境是否可以或者需要安装对本地漏洞进行修复的补丁。相应的,在步骤s102中,根据漏洞修复功能产品的扫描结果获取对本地漏洞进行修复的补丁包。在实际应用中,既可以从云端获取补丁包,也可以通过其他方式,此处不作限制。为了保证补丁包数据的完整性、准确性以及安全性,在获取补丁包后,进行落地文件检查以及签名检查。

补丁包中可以包括补丁文件目录和补丁文件身份信息,用以指示安装补丁所需释放的文件及相关信息。进一步地,补丁文件身份信息可以包括:补丁文件的名称、补丁文件的唯一身份标识以及生成补丁文件的唯一身份标识的算法等等。在一个优选的实施例中,文件的唯一身份标识是哈希(hash)值。这里,用于生成文件的hash值的hash算法可以包括sha1、md5、md4、md2等。上述hash算法的设计原理是本领域技术人员所熟知的,在此不再赘述。

下面以用于恢复“永恒之蓝”勒索病毒攻击的windows7系统漏洞的补丁包kb4012212.cab为例,对补丁包所包括的补丁文件目录和补丁文件身份信息进行说明。在kb4012212.cab的清单文件manifest_.cix.xml中记录了所有补丁文件的名称、属性、hash值以及算法等,以下列举了清单文件中的部分内容,具体记录形式如下:

从以上清单文件部分可以获取所需释放的文件的名称,即字段name的值:x86_microsoft-windows-smss_31bf3856ad364e35_7.1.7601.23677_none_9ffe1ebf1ba6284b\apisetschema.dll。

此外,从以上清单文件部分还可以获取所释放的文件的hash值,即字段hashvalue的值:711e072b7667e845976bfa47627a6786160a4de1,以及对应的算法:sha1。

在上文步骤s104中,在获取补丁包后,根据补丁包中的补丁文件目录将所需的补丁文件释放至本地得到待安装文件,并将待安装文件缓存至本地的指定目录。需要注意的是,在释放的过程中,若本地存在相应的文件,则从本地直接获取该文件。仍然以windows操作系统的漏洞修复为例,在补丁包文件释放的过程中,若检测到本地已存在所需释放的指定版本的补丁文件,则从本地直接复制该指定版本的补丁文件,而不是从补丁包中获取。

然而,现有的windows更新工具的逻辑只检测漏洞修复所需的文件是否存在,但并不检测文件的内容是否已被篡改,更不会对被篡改的文件进行纠正。这样,如果本地存在的该指定版本的补丁文件已被篡改,在安装完成后,该被篡改的补丁文件就会生效,从而导致黑屏甚至蓝屏等问题。本发明实施例提供的漏洞修复方案能够有效地解决这一问题,即在本实施例的方法中,先将待安装文件缓存(staged)至本地的指定目录,使待安装文件处于staged状态而不是直接转换成已安装(installed)状态。需要说明的是,这里的缓存状态是一种中间状态,与已安装状态不同,在缓存状态下的文件还未生效。通过将待安装文件缓存至本地的指定目录,当存在被篡改的待安装文件时,可以避免被篡改的待安装文件直接生效,进而防止由此导致的黑屏甚至蓝屏等问题。

当本地漏洞为本地操作系统的漏洞时,指定目录可以是c盘windows目录下的winsxs目录。

在上文步骤s106中利用补丁文件身份信息,对缓存至指定目录的待安装文件进行校验,判断待安装文件是否被篡改,本发明实施例提供了一种可选的方案,在该方案中,首先,从补丁包中获取生成补丁文件的唯一身份标识的算法;然后,利用所获取的算法计算缓存的待安装文件的唯一身份标识;再次,根据补丁文件的名称,将计算得到的待安装文件的唯一身份标识与补丁包中记录的相应的补丁文件的唯一身份标识进行一一对比;最后,若计算得到的待安装文件的唯一身份标识与相应的补丁文件的唯一身份标识不一致,则判断该待安装文件已被篡改,否则,则判断该待安装文件未被篡改。

下面仍然以补丁包kb4012212.cab中的补丁文件x86_microsoft-windows-smss_31bf3856ad364e35_7.1.7601.23677_none_9ffe1ebf1ba6284b\apisetschema.dll为例,对本步骤的具体实施过程进行说明:

首先,从kb4012212.cab的清单文件manifest_.cix.xml中获取生成上述补丁文件的hash值的算法sha1;

然后,利用获取的补丁文件的sha1算法,计算根据上述步骤s104缓存至本地的指定目录(即c:\windows\winsxs)的待安装文件的hash值;

再次,将计算得到的hash值与清单文件manifest_.cix.xml中记录的hash值"711e072b7667e845976bfa47627a6786160a4de1"进行对比;

最后,若上述两者不一致,则判断该待安装文件x86_microsoft-windows-smss_31bf3856ad364e35_7.1.7601.23677_none_9ffe1ebf1ba6284b\apisetschema.dll被篡改,否则,则判断该待安装文件未被篡改。

在本发明实施例的方法中,通过一一对比本地缓存的待安装文件与补丁包中的补丁文件的唯一身份标识,优选hash值,可以准确、方便地检测出本地的待安装文件是否被篡改,若被篡改则进行相应的处理,从而防止安装补丁后被篡改的文件生效所导致的黑屏甚至蓝屏等问题。

在上文步骤s106对缓存的待安装文件进行校验后,步骤s108则根据判断结果对缓存至指定目录的待安装文件进行相应的处理,具体地,若判断结果为待安装文件被篡改,则利用补丁包中的相应补丁文件替换指定目录中被篡改的待安装文件,若判断结果为待安装文件未被篡改,则保持指定目录中的待安装文件不变。

在实际应用中,既可以采用每校验完一个待安装文件就根据判断结果对其进行相应的处理的方式,也可以采用在对所有待安装文件完成校验后,再根据判断结果对每一待安装文件进行相应的处理的方式,对此不作限制。

通过将缓存在指定目录中的被篡改的待安装文件替换为补丁包中相应的原文件,实现了对被篡改的待安装文件的修复,从而防止安装补丁后被篡改的文件生效所导致的黑屏甚至蓝屏等问题。

最后,在对所有待安装文件处理完成后,通过调用指定组件管理接口将待安装文件的缓存状态调整为已安装状态,使文件生效,从而完成对本地漏洞的修复。该指定组件管理接口具备切换组件的安装、卸载等状态的功能。在一个优选的实施例中,该指定组件管理接口是基于组件的服务(component-basedservicing,cbs)接口。

根据上述分析可以看出,在本发明实施例中,通过先将根据补丁包中的补丁文件目录获取的待安装文件缓存至本地的指定目录中,利用补丁包中的补丁文件身份信息对缓存的待安装文件进行校验,若待安装文件与补丁包里的相应文件不一致,则判断待安装文件被篡改,并利用补丁包里的相应文件替换被篡改的待安装文件,等校验完所有待安装文件后,再将缓存状态调整为已安装状态,使补丁文件生效以完成漏洞修复的方案,实现了在补丁安装过程中对被篡改的本地文件的修复,保证本地补丁文件与补丁包所需释放文件的一致,从而避免了安装补丁后由于文件不一致导致的黑屏或蓝屏等问题。

以上介绍了图1所示实施例的各个环节的多种实现方式,下面将通过一具体实施例来详细介绍本发明的漏洞修复方法的实现过程。

图2示出了根据本发明另一实施例的漏洞修复方法的处理流程图,该方法用于修复本地windows操作系统的漏洞。参见图2,该漏洞修复方法可以包括以下步骤s202至步骤s210。

s202、获取对本地windows操作系统的漏洞进行修复的补丁包,其中,补丁包中包括补丁文件目录和补丁文件身份信息。

具体地,可以从微软官方网站直接下载进行漏洞修复的补丁包,或者也可以通过其他工具如360安全卫士等获取补丁包。在获取补丁包后,进行落地文件检查以及签名检查,以保证补丁包数据的完整性、准确性以及安全性。

补丁包中包括补丁文件目录,以及各补丁文件的名称、hash值和生成补丁文件的hash值的算法。上述信息均记录在补丁包的清单文件manifest_.cix.xml中。

s204、根据补丁包中的补丁文件目录释放文件得到待安装文件,并将待安装文件缓存至本地的winsxs目录。

具体地,根据补丁包中清单文件manifest_.cix.xml记录的补丁文件目录释放补丁包中的文件以得到待安装文件,并且,在释放的过程中,若检测到本地已存在所需释放的指定版本的补丁文件,则从本地直接复制该指定版本的补丁文件作为待安装文件。然后,将得到的待安装文件缓存到本地的c:\windows\winsxs目录,使待安装文件处于缓存(staged)状态而不直接生效。

s206、利用补丁文件身份信息,基于hash值对缓存至winsxs目录的待安装文件进行校验,判断待安装文件是否被篡改,得到判断结果。

具体地,步骤s206可以通过以下操作实施:

首先,从补丁包中获取生成补丁文件的hash值的算法。在本发明实施例中,生成补丁文件的hash值的算法可以是sha1、md5等等。

其次,通过对缓存在winsxs目录中的待安装文件进行扫描,利用所获取的算法对其进行计算处理得到各待安装文件的hash值。

再次,根据补丁文件的名称,将计算得到的待安装文件的hash值与相应的补丁文件的hash值一一对比,判断待安装文件是否被篡改。

最后,若待安装文件的hash值与相应的补丁文件的hash值不一致,则判断结果为待安装文件被篡改,若两者相一致,则判断结果为待安装文件未被篡改。

s208、若判断结果为待安装文件被篡改,利用补丁包中的相应补丁文件替换winsxs目录中被篡改的待安装文件,否则,保持待安装文件不变。

通过将缓存在winsxs目录中的被篡改的待安装文件替换为补丁包中相应的原文件,实现了对被篡改的待安装文件的修复,从而防止安装补丁后被篡改的文件生效所导致的黑屏甚至蓝屏等问题。

需要说明的是,在实际应用中,既可以采用根据步骤s206每校验完一个待安装文件就根据判断结果对其进行步骤s208中相应的处理的方式,也可以采用在对所有待安装文件完成校验后,再根据判断结果对每一待安装文件进行相应的处理的方式,对此不作限制。

s210、在对所有待安装文件处理完成后,通过调用cbs接口将缓存状态调整为已安装状态,从而完成对本地操作系统漏洞的修复。

在对所有待安装文件处理完成后,调用cbs接口将待安装文件的缓存状态调整为已安装状态,使文件生效,从而完成对本地操作系统漏洞的修复。cbs接口为微软windows操作系统的一种组件管理接口,其可以完成添加/删除更新、调整等功能,是windowsupdate主要依赖的工具。

在本发明具体实施例中,通过先将根据补丁包中的补丁文件目录获取的待安装文件缓存至本地winsxs目录中,利用补丁包中记录的hash值对缓存的待安装文件进行校验,判断待安装文件是否被篡改,并利用补丁包里的相应文件替换判断为被篡改的待安装文件,等校验完所有待安装文件后,再将缓存状态调整为已安装状态,使补丁文件生效以完成系统漏洞修复的方案,实现了在补丁安装过程中对被篡改的本地文件的修复,保证本地补丁文件与补丁包所需释放文件的一致,从而避免了安装补丁后由于文件不一致导致的黑屏或蓝屏等问题。

需要说明的是,实际应用中,上述所有可选实施方式可以采用结合的方式任意组合,形成本发明的可选实施例,在此不再一一赘述。

基于同一发明构思,本发明实施例还提供了一种漏洞修复装置,用于支持上述任意一个实施例或其组合所提供的漏洞修复方法。图3示出了根据本发明一实施例的漏洞修复装置的结构示意图。参见图3,该漏洞修复装置至少可以包括:获取模块310、缓存模块320、校验模块330、处理模块340以及状态调整模块350。

现介绍本发明实施例的漏洞修复装置的各组成或器件的功能以及各部分间的连接关系:

获取模块310,适于获取对本地漏洞进行修复的补丁包,其中,补丁包中包括补丁文件目录和补丁文件身份信息;

缓存模块320,适于根据补丁包中的补丁文件目录获取相应的待安装文件,并将待安装文件缓存至本地的指定目录;

校验模块330,适于利用补丁文件身份信息,对缓存至指定目录的待安装文件进行校验,判断待安装文件是否被篡改,得到判断结果;

处理模块340,适于根据判断结果对缓存至指定目录的待安装文件进行相应的处理;以及

状态调整模块350,适于在对所有待安装文件处理完成后,将缓存状态调整为已安装状态,从而完成对本地漏洞的修复。

在一个优选的实施例中,缓存模块320还适于:

根据补丁包中的补丁文件目录释放文件得到待安装文件,并且,在释放的过程中,若本地存在相应的文件,则从本地获取该文件。

在一个优选的实施例中,本地漏洞包括下列中的任意之一:

本地操作系统的漏洞、本地应用的漏洞。

在一个优选的实施例中,当本地漏洞为本地操作系统的漏洞时,指定目录是winsxs目录。

在一个优选的实施例中,补丁文件身份信息包括:补丁文件的名称、补丁文件的唯一身份标识以及生成补丁文件的唯一身份标识的算法;并且,

校验模块330还适于:

从补丁包中获取生成补丁文件的唯一身份标识的算法;

利用该算法计算待安装文件的唯一身份标识;

根据补丁文件的名称,将计算得到的待安装文件的唯一身份标识与相应的补丁文件的唯一身份标识一一对比;

若待安装文件的唯一身份标识与相应的补丁文件的唯一身份标识不一致,则判断待安装文件被篡改;

若待安装文件的唯一身份标识与相应的补丁文件的唯一身份标识相一致,则判断待安装文件未被篡改。

在一个优选的实施例中,该唯一身份标识是哈希值;并且,该算法包括下列算法的任意之一:sha1、md2、md4、md5。

在一个优选的实施例中,处理模块340还适于:

若判断结果为待安装文件被篡改,则利用补丁包中的相应补丁文件替换指定目录中被篡改的待安装文件;

若判断结果为待安装文件未被篡改,则保持待安装文件不变。

在一个优选的实施例中,状态调整模块350还适于:

在对所有待安装文件处理完成后,通过调用指定组件管理接口将缓存状态调整为已安装状态。

在一个优选的实施例中,该指定组件管理接口是cbs接口。

根据上述任意一个可选实施例或多个可选实施例的组合,本发明实施例能够达到如下有益效果:

在本发明实施例中,通过先将根据补丁包中的补丁文件目录获取的待安装文件缓存至本地的指定目录中,利用补丁包中的补丁文件身份信息对缓存的待安装文件进行校验,判断待安装文件是否被篡改,得到判断结果;进而根据判断结果对缓存至指定目录的待安装文件进行相应的处理,并在对所有待安装文件处理完成后将缓存状态调整为已安装状态,从而完成对本地漏洞的修复。由于本发明实施例先缓存待安装文件,然后校验待安装文件,最后再将缓存状态调整为已安装状态,保证了用于本地漏洞修复的文件与补丁包所需释放文件的一致,从而避免了安装补丁后由于文件不一致导致的黑屏或蓝屏等问题。

进一步,在本发明实施例中,若待安装文件与补丁包里的相应文件不一致,则判断待安装文件被篡改,并利用补丁包里的相应文件替换被篡改的待安装文件,在校验完所有待安装文件后,再将缓存状态调整为已安装状态,使补丁文件生效以完成漏洞修复。由于本发明实施例将缓存在指定目录中的被篡改的待安装文件替换为补丁包中相应的原文件,实现了在补丁安装过程中对被篡改的本地文件的修复,保证本地补丁文件与补丁包所需释放文件的一致,从而避免了安装补丁后由于文件不一致导致的黑屏或蓝屏等问题。另外,本发明实施例提供的漏洞修复方法及装置特别适用于nsa“永恒之蓝”漏洞补丁更新工具以及漏洞修复引擎。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例的漏洞修复装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。

本发明还公开了a1.一种漏洞修复方法,包括:

获取对本地漏洞进行修复的补丁包,其中,所述补丁包中包括补丁文件目录和补丁文件身份信息;

根据所述补丁包中的补丁文件目录获取相应的待安装文件,并将所述待安装文件缓存至本地的指定目录;

利用所述补丁文件身份信息,对缓存至所述指定目录的所述待安装文件进行校验,判断所述待安装文件是否被篡改,得到判断结果;

根据所述判断结果对缓存至所述指定目录的所述待安装文件进行相应的处理,并在对所有所述待安装文件处理完成后将缓存状态调整为已安装状态,从而完成对所述本地漏洞的修复。

a2.根据a1所述的方法,其中,根据所述补丁包中的补丁文件目录获取相应的待安装文件,包括:

根据所述补丁包中的补丁文件目录释放文件得到待安装文件,并且,在释放的过程中,若本地存在相应的文件,则从本地获取该文件。

a3.根据a1或a2所述的方法,其中,所述本地漏洞包括下列中的任意之一:

本地操作系统的漏洞、本地应用的漏洞。

a4.根据a3所述的方法,其中,当所述本地漏洞为本地操作系统的漏洞时,所述指定目录是winsxs目录。

a5.根据a1至a4任一项所述的方法,其中,

所述补丁文件身份信息包括:补丁文件的名称、补丁文件的唯一身份标识以及生成所述补丁文件的唯一身份标识的算法;

利用所述补丁文件身份信息,对缓存至所述指定目录的所述待安装文件进行校验,判断所述待安装文件是否被篡改,包括:

从所述补丁包中获取生成所述补丁文件的唯一身份标识的算法;

利用所述算法计算所述待安装文件的唯一身份标识;

根据所述补丁文件的名称,将所述待安装文件的唯一身份标识与相应的所述补丁文件的唯一身份标识一一对比;

若所述待安装文件的唯一身份标识与相应的所述补丁文件的唯一身份标识不一致,则判断所述待安装文件被篡改;

若所述待安装文件的唯一身份标识与相应的所述补丁文件的唯一身份标识相一致,则判断所述待安装文件未被篡改。

a6.根据a5所述的方法,其中,

所述唯一身份标识是哈希值;

所述算法包括下列算法的任意之一:sha1、md2、md4、md5。

a7.根据a1至a6中任一项所述的方法,其中,根据所述判断结果对缓存至所述指定目录的所述待安装文件进行相应的处理,包括:

若所述判断结果为所述待安装文件被篡改,则利用所述补丁包中的相应补丁文件替换所述指定目录中被篡改的所述待安装文件;

若所述判断结果为所述待安装文件未被篡改,则保持所述待安装文件不变。

a8.根据a1至a7中任一项所述的方法,其中,在对所有所述待安装文件处理完成后,通过调用指定组件管理接口将所述缓存状态调整为已安装状态。

a9.根据a8所述的方法,其中,所述指定组件管理接口是基于组件的服务接口。

本发明还公开了b10.一种漏洞修复装置,包括:

获取模块,适于获取对本地漏洞进行修复的补丁包,其中,所述补丁包中包括补丁文件目录和补丁文件身份信息;

缓存模块,适于根据所述补丁包中的补丁文件目录获取相应的待安装文件,并将所述待安装文件缓存至本地的指定目录;

校验模块,适于利用所述补丁文件身份信息,对缓存至所述指定目录的所述待安装文件进行校验,判断所述待安装文件是否被篡改,得到判断结果;

处理模块,适于根据所述判断结果对缓存至所述指定目录的所述待安装文件进行相应的处理;以及

状态调整模块,适于在对所有所述待安装文件处理完成后,将缓存状态调整为已安装状态,从而完成对所述本地漏洞的修复。

b11.根据b10所述的装置,其中,所述缓存模块还适于:

根据所述补丁包中的补丁文件目录释放文件得到待安装文件,并且,在释放的过程中,若本地存在相应的文件,则从本地获取该文件。

b12.根据b10或b11所述的装置,其中,所述本地漏洞包括下列中的任意之一:

本地操作系统的漏洞、本地应用的漏洞。

b13.根据b12所述的装置,其中,当所述本地漏洞为本地操作系统的漏洞时,所述指定目录是winsxs目录。

b14.根据b10至b13任一项所述的装置,其中,

所述补丁文件身份信息包括:补丁文件的名称、补丁文件的唯一身份标识以及生成所述补丁文件的唯一身份标识的算法;

所述校验模块还适于:

从所述补丁包中获取生成所述补丁文件的唯一身份标识的算法;

利用所述算法计算所述待安装文件的唯一身份标识;

根据所述补丁文件的名称,将所述待安装文件的唯一身份标识与相应的所述补丁文件的唯一身份标识一一对比;

若所述待安装文件的唯一身份标识与相应的所述补丁文件的唯一身份标识不一致,则判断所述待安装文件被篡改;

若所述待安装文件的唯一身份标识与相应的所述补丁文件的唯一身份标识相一致,则判断所述待安装文件未被篡改。

b15.根据b14所述的装置,其中,

所述唯一身份标识是哈希值;

所述算法包括下列算法的任意之一:sha1、md2、md4、md5。

b16.根据b10至b15任一项所述的装置,其中,所述处理模块还适于:

若所述判断结果为所述待安装文件被篡改,则利用所述补丁包中的相应补丁文件替换所述指定目录中被篡改的所述待安装文件;

若所述判断结果为所述待安装文件未被篡改,则保持所述待安装文件不变。

b17.根据b10至b16任一项所述的装置,其中,所述状态调整模块还适于:

在对所有所述待安装文件处理完成后,通过调用指定组件管理接口将所述缓存状态调整为已安装状态。

b18.根据b17所述的装置,其中,所述指定组件管理接口是基于组件的服务接口。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1