漏洞修复系统、方法及设备与流程

文档序号:12803326阅读:226来源:国知局
漏洞修复系统、方法及设备与流程

本发明涉及信息安全技术领域,特别是一种漏洞修复系统、方法及设备。



背景技术:

在win10中,微软引入了新的windows更新发布机制,即不再使用过去的分散独立安装包的形式,而是改用每月一个大累计更新包的形式。这种形式解决了系统更新碎片化严重的问题,使得系统更新过程更加简单。但也存在一些问题,例如,累计更新包体积比较大(如win10x64累计更新已超过1g),包含了大而全的更新信息,而这些信息对于具体某个用户终端来说,并非都是必须的。此外,微软也在其官方博客中表示,win10这种累计更新的方式将逐步应用到目前支持更新的所有系统(如win7sp1、win8.1等),同时会逐步取消分散独立安装包的更新发布形式。

目前,漏洞修复模块的实现方案是从微软每月定期发布分散独立安装包的网站中获取分散的独立安装包信息,然后尽快将这些信息以补丁库的形式下发到用户终端,并在集中时段尽早触发用户端提醒,在用户的干预下将合适的分散独立安装包下载到存在相应漏洞的用户终端中,再将这些独立安装包一一安装在用户终端上,以此实现用户本机漏洞文件的升级与修复。

若微软完全采用了新的更新发布机制,目前实现方案下虽然能为用户打上补丁,但会存在一些严重问题:

(1)累计更新包的体积较大,若要对国内海量用户集中发布,对带宽资源将是一个严峻的挑战,发布难度加大;

(2)对具体的某个用户终端来说,累计更新包中存在很多无用信息,这会造成不必要的流量浪费。

因此,亟需针对微软这种新的更新发布机制进行逻辑更新,从而来解决上述问题。



技术实现要素:

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

依据本发明的一方面,提供了一种漏洞修复系统,包括:数据发布服务器、文件服务器以及客户端;

所述数据发布服务器,适于按照指定时间周期从程序提供者处同步获取用于修复程序漏洞的累计更新数据;从所述累计更新数据中提取包含一个或多个更新补丁的全平台扫描库,对所述全平台扫描库按照系统平台进行拆分,得到各平台的扫描库;将所述累计更新数据中的更新文件发布到所述文件服务器,以及通过指定通道发布所述各平台的扫描库;

所述文件服务器,适于同步所述更新文件,并获取所述更新文件的标识和所述更新文件所在所述文件服务器的地址信息,建立所述更新文件的包含标识和地址信息的索引;

所述客户端,适于当接收到漏洞修复的触发事件时,加载通过所述指定通道发布的与本地系统平台匹配的目标扫描库,利用所述目标扫描库对本地漏洞进行扫描,得到待安装更新文件的标识;利用所述待安装更新文件的标识从所述文件服务器处获取所述待安装更新文件,进而利用所述待安装更新文件对本地漏洞进行修复。

可选地,所述文件服务器包括多个内容分发网络cdn结点和kv服务器;

各cdn结点,适于同步所述更新文件;

所述kv服务器,适于获取所述更新文件的标识和所述更新文件所在各cdn结点的地址信息,并建立所述更新文件的包含标识和地址信息的索引。

可选地,所述索引中还包括下列至少之一的索引信息:

更新文件的摘要信息、大小、发布时间、校验信息。

可选地,所述数据发布服务器还适于:

将所述更新文件上传到cdn发布服务器并同步到各cdn结点。

可选地,所述数据发布服务器还适于:

按照指定时间周期从程序提供者处同步获取用于修复程序漏洞的累计更新数据的描述信息,其中,所述描述信息中包含下载所述累计更新数据的下载地址;

根据所述描述信息中的下载地址下载得到所述累计更新数据。

可选地,所述数据发布服务器还适于:

调用第一命令从所述累计更新数据中提取包含一个或多个更新补丁的全平台扫描库;

调用第二命令根据各系统平台的标识从所述全平台扫描库中导出各平台的补丁的更新列表;

调用第三命令根据所述全平台扫描库和所述更新列表生成各平台的扫描库。

可选地,所述各平台的扫描库中记录有各补丁对应的更新文件的标识,所述客户端还适于:

利用所述目标扫描库对本地漏洞进行扫描,得到本地系统上未安装的补丁的扫描结果集;

从所述扫描结果集中选取待安装的补丁;

根据所述目标扫描库中记录的各补丁对应的更新文件的标识,确定所述待安装的补丁对应的所述待安装更新文件的标识。

可选地,所述客户端还适于:

枚举所述目标扫描库中所有的补丁,得到更新列表;

遍历所述更新列表,判断各补丁是否已经安装在本地系统上,若否,则将该补丁添加到所述扫描结果集中。

可选地,所述客户端还适于:

在遍历所述更新列表,判断各补丁是否已经安装在本地系统上之前,判断各补丁的父依赖是否检测通过,若是,则判断各补丁是否已经安装在本地系统上。

可选地,所述客户端还适于:

若某补丁的父依赖未检测通过,则继续从所述更新列表中取下一个补丁,判断下一个补丁的父依赖是否检测通过。

可选地,所述客户端还适于:

根据所述目标扫描库中记录的各补丁对应的更新文件的标识,确定所述待安装的补丁对应的备选更新文件的标识;

根据所述备选更新文件的标识确定所述待安装更新文件的标识。

可选地,当所述更新文件包括更新包时,所述客户端还适于:

根据所述目标扫描库中记录的各补丁对应的更新包的标识,确定所述待安装的补丁对应的目标更新包的标识;

利用所述目标更新包的标识从所述kv服务器处获取所述目标更新包的地址信息;

利用所述目标更新包的地址信息从相应的cdn结点处下载得到所述目标更新包;

解压所述目标更新包得到备选更新文件的标识。

可选地,所述客户端还适于:

根据所述备选更新文件的标识,判断本地系统上是否已经存在该备选更新文件;

若否,则将该备选更新文件的标识写入差量文件清单中,并将所述差量文件清单中文件的标识作为所述待安装更新文件的标识;

若是,则将本地系统上的该备选更新文件复制到临时安装目录。

可选地,所述客户端还适于:

利用所述待安装更新文件的标识从所述kv服务器处获取所述待安装更新文件的地址信息;

利用所述待安装更新文件的地址信息从相应的cdn结点处下载得到所述待安装更新文件。

可选地,所述客户端还适于:

将下载得到的所述待安装更新文件复制到所述临时安装目录。

可选地,所述客户端还适于:

利用所述待安装更新文件的标识,从所述kv服务器处获取所述待安装更新文件的包含更新文件的校验信息的索引信息;

利用所述校验信息对下载得到所述待安装更新文件进行校验,在校验通过后,将所述待安装更新文件复制到所述临时安装目录。

可选地,所述客户端还适于:

安装所述临时安装目录中的文件,以对本地漏洞进行修复。

依据本发明的另一方面,还提供了一种漏洞修复方法,应用于数据发布服务器,包括:

按照指定时间周期从程序提供者处同步获取用于修复程序漏洞的累计更新数据;

从所述累计更新数据中提取包含一个或多个更新补丁的全平台扫描库,对所述全平台扫描库按照系统平台进行拆分,得到各平台的扫描库;

将所述累计更新数据中的更新文件发布到文件服务器,以及通过指定通道发布所述各平台的扫描库。

依据本发明的另一方面,还提供了一种漏洞修复方法,应用于文件服务器,包括:

同步来自数据发布服务器的更新文件;

获取所述更新文件的标识和所述更新文件所在所述文件服务器的地址信息,建立所述更新文件的包含标识和地址信息的索引。

依据本发明的另一方面,还提供了一种漏洞修复方法,应用于客户端,包括:

当接收到漏洞修复的触发事件时,加载数据发布服务器通过指定通道发布的与本地系统平台匹配的目标扫描库;

利用所述目标扫描库对本地漏洞进行扫描,得到待安装更新文件的标识;

利用所述待安装更新文件的标识从文件服务器处获取所述待安装更新文件,进而利用所述待安装更新文件对本地漏洞进行修复。

依据本发明的又一方面,还提供了一种数据发布服务器,包括:

第一同步模块,适于按照指定时间周期从程序提供者处同步获取用于修复程序漏洞的累计更新数据;

第一处理模块,适于从所述累计更新数据中提取包含一个或多个更新补丁的全平台扫描库,对所述全平台扫描库按照系统平台进行拆分,得到各平台的扫描库;

发布模块,适于将所述累计更新数据中的更新文件发布到文件服务器,以及通过指定通道发布所述各平台的扫描库。

依据本发明的又一方面,还提供了一种文件服务器,包括:

第二同步模块,适于同步来自数据发布服务器的更新文件;

第二处理模块,适于获取所述更新文件的标识和所述更新文件所在所述文件服务器的地址信息,建立所述更新文件的包含标识和地址信息的索引。

依据本发明的又一方面,还提供了一种客户端,包括:

加载模块,适于当接收到漏洞修复的触发事件时,加载数据发布服务器通过指定通道发布的与本地系统平台匹配的目标扫描库;

扫描模块,适于利用所述目标扫描库对本地漏洞进行扫描,得到待安装更新文件的标识;

漏洞修复模块,适于利用所述待安装更新文件的标识从文件服务器处获取所述待安装更新文件,进而利用所述待安装更新文件对本地漏洞进行修复。

本发明实施例提供了一种包括数据发布服务器、文件服务器以及客户端的漏洞修复系统,数据发布服务器按照指定时间周期从程序提供者处同步获取用于修复程序漏洞的累计更新数据;从累计更新数据中提取包含一个或多个更新补丁的全平台扫描库,对全平台扫描库按照系统平台进行拆分,得到各平台的扫描库;将累计更新数据中的更新文件发布到文件服务器,以及通过指定通道发布各平台的扫描库;文件服务器同步更新文件,并获取更新文件的标识和更新文件所在文件服务器的地址信息,建立更新文件的包含标识和地址信息的索引;客户端当接收到漏洞修复的触发事件时,加载通过指定通道发布的与本地系统平台匹配的目标扫描库,利用目标扫描库对本地漏洞进行扫描,得到待安装更新文件的标识;利用待安装更新文件的标识从文件服务器处获取待安装更新文件,进而利用待安装更新文件对本地漏洞进行修复。由此可见,由于数据发布服务器按照指定时间周期从程序提供者处同步获取累计更新数据,并对累计更新数据进行处理和发布,这样客户端在进行漏洞修复时无需从程序提供者处获取并处理累计更新数据,而是直接从发布至的文件服务器处获取更新文件,能够提高漏洞修复的效率。并且,数据发布服务器对全平台扫描库按照系统平台进行拆分,得到各平台的扫描库,这样客户端在进行漏洞修复时直接加载与自身系统平台匹配的扫描库,可以提高扫描效率,并提升漏洞修复的有效性。

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

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

附图说明

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

图1示出了根据本发明一实施例的漏洞修复系统的结构示意图;

图2示出了根据本发明另一实施例的漏洞修复系统的结构示意图;

图3示出了客户端230的一种扫描流程的示意图;

图4示出了客户端230的一种安装流程的示意图;

图5示出了根据本发明一实施例的应用于数据发布服务器的漏洞修复方法的流程图;

图6示出了根据本发明一实施例的应用于文件服务器的漏洞修复方法的流程图;

图7示出了根据本发明一实施例的应用于客户端的漏洞修复方法的流程图;

图8示出了根据本发明一实施例的数据发布服务器的结构示意图;

图9示出了根据本发明一实施例的文件服务器的结构示意图;以及

图10示出了根据本发明一实施例的客户端的结构示意图。

具体实施方式

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

为解决上述技术问题,本发明实施例提供了一种漏洞修复系统。图1示出了根据本发明一实施例的漏洞修复系统的结构示意图。如图1所示,该漏洞修复系统100可以包括:数据发布服务器110、文件服务器120、客户端130。

数据发布服务器110,适于按照指定时间周期从程序提供者处同步获取用于修复程序漏洞的累计更新数据;从累计更新数据中提取包含一个或多个更新补丁的全平台扫描库,对全平台扫描库按照系统平台进行拆分,得到各平台的扫描库;将累计更新数据中的更新文件发布到文件服务器,以及通过指定通道发布各平台的扫描库;

文件服务器120,与数据发布服务器110相耦合,适于同步更新文件,并获取更新文件的标识和更新文件所在文件服务器的地址信息,建立更新文件的包含标识和地址信息的索引;

客户端130,与文件服务器120相耦合,适于当接收到漏洞修复的触发事件时,加载通过指定通道发布的与本地系统平台匹配的目标扫描库,利用目标扫描库对本地漏洞进行扫描,得到待安装更新文件的标识;利用待安装更新文件的标识从文件服务器处获取待安装更新文件,进而利用待安装更新文件对本地漏洞进行修复。

本发明实施例由于数据发布服务器110按照指定时间周期从程序提供者处同步获取累计更新数据,并对累计更新数据进行处理和发布,这样客户端130在进行漏洞修复时无需从程序提供者处获取并处理累计更新数据,而是直接从发布至的文件服务器120处获取更新文件,能够提高漏洞修复的效率。并且,数据发布服务器110对全平台扫描库按照系统平台进行拆分,得到各平台的扫描库,这样客户端130在进行漏洞修复时直接加载与自身系统平台匹配的扫描库,可以提高扫描效率,并提升漏洞修复的有效性。

在本发明的可选实施例中,数据发布服务器110在同步累计更新数据时,可以按照指定时间周期从程序提供者处同步获取用于修复程序漏洞的累计更新数据的描述信息,其中,描述信息中包含下载累计更新数据的下载地址;进而根据描述信息中的下载地址下载得到累计更新数据。

在本发明的可选实施例中,数据发布服务器110在对全平台扫描库进行拆分时,可以调用第一命令从累计更新数据中提取包含一个或多个更新补丁的全平台扫描库,随后调用第二命令根据各系统平台的标识从全平台扫描库中导出各平台的补丁的更新列表,之后调用第三命令根据全平台扫描库和更新列表生成各平台的扫描库。这里的各系统平台的标识可以如win7、win8.1、win10、office等,本发明不限于此。

在本发明的可选实施例中,文件服务器120可以包括多个cdn(contentdeliverynetwork,内容分发网络)结点和kv服务器。多个cdn结点中的各cdn结点适于同步更新文件,kv服务器适于获取更新文件的标识和更新文件所在各cdn结点的地址信息,并建立更新文件的包含标识和地址信息的索引。这里的索引可以是key-value的形式,索引中的标识可以作为key,地址信息可以作为value。在可选的实施例中,索引中还可以包括更新文件的摘要信息、大小、发布时间、校验信息等索引信息,这些索引信息均可以作为value。

在本发明的可选实施例中,在各cdn结点同步更新文件时,可以是由数据发布服务器110将更新文件上传到cdn发布服务器并同步到各cdn结点。

在本发明的可选实施例中,各平台的扫描库中记录有各补丁对应的更新文件的标识,这样客户端130在利用目标扫描库按照扫描规则对本地漏洞进行扫描时,可以确定本地系统上未安装的补丁的扫描结果集,随后从扫描结果集中选取待安装的补丁,进而根据目标扫描库中记录的各补丁对应的更新文件的标识,确定待安装的补丁对应的待安装更新文件的标识。

进一步地,客户端130可以枚举目标扫描库中所有的补丁,得到更新列表,随后遍历更新列表,判断各补丁是否已经安装在本地系统上,若否,则将该补丁添加到扫描结果集中;若是,则继续从更新列表中选取下一个补丁,判断下一个补丁是否已经安装在本地系统上,以此类推。

在可选的实施例中,客户端130在遍历更新列表,判断各补丁是否已经安装在本地系统上之前,还可以判断各补丁的父依赖是否检测通过,若是,则判断各补丁是否已经安装在本地系统上;若否,则继续从更新列表中选取下一个补丁,判断下一个补丁的父依赖是否检测通过,以此类推。

在本发明的可选实施例中,为了减少下载流量,提高漏洞修复效率,本发明实施例实现了差量更新文件的下载,并将差量更新文件与本系统的已有文件进行合并,然后进行快速安装,从而实现漏洞修复。具体地,本发明实施例可以根据目标扫描库中记录的各补丁对应的更新文件的标识,确定待安装的补丁对应的备选更新文件的标识,进而根据备选更新文件的标识确定待安装更新文件的标识。这里的备选更新文件可以认为是待安装的补丁对应的所有更新文件,待安装更新文件是差量更新文件,下面将分别介绍如何确定备选更新文件的标识和待安装更新文件的标识。

首先介绍备选更新文件的标识的确定方案,在该方案中,更新文件包括更新包,更新包中记录有备选更新文件的标识,客户端130根据目标扫描库中记录的各补丁对应的更新包的标识,确定待安装的补丁对应的目标更新包的标识;随后利用目标更新包的标识从kv服务器处获取目标更新包的地址信息;进而利用目标更新包的地址信息从相应的cdn结点处下载得到目标更新包;之后解压目标更新包得到备选更新文件的标识。

接着介绍待安装更新文件的标识的确定方案,即,客户端130根据备选更新文件的标识,判断本地系统上是否已经存在该备选更新文件;若否,则将该备选更新文件的标识写入差量文件清单中,并将差量文件清单中文件的标识作为待安装更新文件的标识;若是,则将本地系统上的该备选更新文件复制到临时安装目录。

在确定待安装更新文件的标识后,客户端130可以利用待安装更新文件的标识从kv服务器处获取待安装更新文件的地址信息,进而利用待安装更新文件的地址信息从相应的cdn结点处下载得到待安装更新文件。接下来,客户端130可以将下载得到的待安装更新文件复制到临时安装目录,并安装临时安装目录中的文件,以对本地漏洞进行修复。

在可选的实施例中,为了保证待安装更新文件的有效性,可以对待安装更新文件进行信息校验,具体地,可以利用待安装更新文件的标识,从kv服务器处获取待安装更新文件的包含更新文件的校验信息的索引信息,进而利用校验信息对下载得到待安装更新文件进行校验,在校验通过后,将待安装更新文件复制到临时安装目录。

在可选的实施例中,客户端130可以安装在用户终端上。

下面以一具体应用实例来介绍本发明实施例提供的漏洞修复系统。以程序提供者为微软为例,如前文介绍,在win10中,微软引入了新的windows更新发布机制,即不再使用过去的分散独立安装包的形式,而是改用每月一个大累计更新包的形式。本发明实施例提供的漏洞修复系统中的数据发布服务器110为wsus(windowsserverupdateservices,windows服务器更新服务)服务器,它包含一个标准wsus服务以及一系列自实现的数据发布工具。

一方面,wsus服务负责定期地从微软云服务器同步最新的更新数据库,更新数据库里面会包含重要的描述信息,主要有全平台扫描库、所有补丁的快速体验包url(uniformresourcelocator,统一资源定位符)、所有补丁的完整包url及补丁的psf文件url,等等。

另一方面,数据发布工具负责根据上述更新数据库中的描述信息,将累计更新数据(如全平台扫描库、补丁的快速体验包、补丁的完整包、各补丁的psf文件等)下载到本wsus服务器上。接着,从累计更新数据中提取包含一个或多个更新补丁的全平台扫描库,对全平台扫描库按照系统平台进行拆分,得到各平台的扫描库。然后,将累计更新数据中的更新文件发布到文件服务器,以及通过指定通道发布各平台的扫描库。最后,将重要数据进行备份。作为唯一的运营数据来源,一台wsus服务器就可以了,同时这台服务器的安全性也至关重要。

本发明实施例提供的漏洞修复系统中的文件服务器120同步来自数据发布服务器110发布的更新文件,这里的文件服务器120是一个抽象的概念,作为数据发布的目的地,文件服务器120并非单独的一台或几台服务器,而是一系列相互配合的服务器集群。文件服务器120主要包含cdn结点和kv服务器两个部分。一方面,分布于全国各地的各cdn结点负责及时同步最新发布的更新文件,同时负责响应数以亿计的客户端文件下载请求。另一方面,kv服务器集群负责及时建立更新数据的索引,同时负责响应数以亿计的客户端索引请求,具体地,kv服务器获取更新文件的标识和更新文件所在各cdn结点的地址信息,并建立更新文件的包含标识和地址信息的索引。

本发明实施例提供的漏洞修复系统中的客户端130在接收到漏洞修复的触发事件(如用户触发或定时器等)时,加载通过指定通道发布的与本地系统平台匹配的目标扫描库,利用目标扫描库对本地漏洞进行扫描,得到待安装更新文件的标识;随后,利用待安装更新文件的标识向kv服务器发起索引请求,当索引请求返回后,从请求结果中提取待安装更新文件的下载信息(包含url及各种校验信息),然后利用这些下载信息向cdn结点发起数据下载请求,数据下载完成后,使用从kv服务器拿到的校验信息对下载到的数据进行校验,当所有校验都通过以后,将这些下载到的数据同本地文件进行合并,得到完整的安装包,最后通过本地指定接口进行安装。

需要说明的是,此处列举的程序提供者微软仅仅是示意性的,并不对本发明进行限制,本发明实施例可以应用在任何需要对程序(如操作系统、应用程序等)进行漏洞修复的场景。

图2示出了根据本发明另一实施例的漏洞修复系统的结构示意图。如图2所示,该漏洞修复系统200(图2中未示出)可以包括:wsus服务器210、cdn结点221、kv服务器222以及客户端230。

漏洞修复系统200的工作流程可以分为数据发布阶段和客户端更新阶段,下面将分别进行详细介绍。

首先介绍数据发布阶段。数据发布阶段,简单说就是当微软有数据更新时,漏洞修复系统及时将这些新数据同步过来并加以处理,然后以自己的方式发布给全网用户的过程。这是一个“推”的过程。数据发布阶段又可以分为同步更新数据、处理更新数据、发布更新数据、数据备份阶段。

(1)同步更新数据

为实现及时获取微软累计更新数据的需求,需要搭建一台标准wsus服务器210,wsus服务器210定期(如每30分钟一次等)地从微软云服务器同步获取用于修复系统程序漏洞的累计更新数据的描述信息,其中,累计更新数据包括全平台扫描库、补丁的快速体验包、补丁的完整包、各补丁的psf文件等,描述信息中包含下载累计更新数据的下载地址。

(2)处理更新数据

wsus服务器210根据描述信息中的下载地址下载得到累计更新数据。接着,从累计更新数据中提取包含一个或多个更新补丁的全平台扫描库,对全平台扫描库按照系统平台进行拆分,得到各平台的扫描库。

在对全平台扫描库进行拆分时,可以调用wsusutil命令从累计更新数据中提取包含一个或多个更新补丁的全平台扫描库,随后调用updatemake命令根据各系统平台的标识从全平台扫描库中导出各平台的补丁的更新列表,之后调用wsusscan命令根据全平台扫描库和更新列表生成各平台的扫描库。这里的各系统平台的标识可以如win7、win8.1、win10、office等,本发明不限于此。

(3)发布更新数据

数据准备好后,就可以开始发布数据了。wsus服务器210将累计更新数据中的更新文件发布到cdn结点221。之后,计算这些更新文件的key及索引信息(如更新文件的摘要信息、大小及发布到cdn上用于客户端230下载的url)推送到kv服务器222群集建立索引。然后,对新的更新文件中的pe文件进行加白。最后通过指定通道发布各平台扫描库。

(4)数据备份阶段

发布完成后,需要对重要的数据进行备份,这里主要需要备份已经计算完成的索引信息及各平台的扫描库,而且必须采用异地备份策略,备份于其它服务器。

其次介绍客户端更新阶段。数据发布完成后,就是发挥这些数据作用的时候了,也就是客户端从kv服务器及cdn结点请求数据并应用这些数据更新操作系统或应用程序,这个阶段可以分为扫描阶段和安装阶段两个部分。

1)扫描阶段

用户手动或后台定时器触发扫描时,客户端230首先更新增量扫描库libleak2_diff.dat,请求成功后,加载通过指定通道发布的与本地系统平台匹配的目标扫描库的最新版本,然后再依据目标扫描库中规则对本地漏洞进行扫描,得到本地系统上未安装的补丁的扫描结果集,从扫描结果集中选取待安装的补丁。

图3示出了客户端230的一种扫描流程的示意图,如图3所示,客户端230的扫描流程可以包括以下步骤s302至s330。

步骤s302,加载通过指定通道发布的与本地系统平台匹配的目标扫描库。

步骤s304,枚举目标扫描库中所有的补丁,得到更新列表。

步骤s306,判断更新列表是否遍历完毕,若否,则继续执行步骤s308;若是,则继续执行步骤s330。

步骤s308,从更新列表中取出一个补丁。

步骤s310,判断该补丁的父依赖是否检测通过,若否,则返回执行步骤s306;若是,则继续执行步骤s312。

步骤s312,枚举该补丁的所有子补丁,得到子更新列表,继续执行步骤s314。

步骤s314,判断子更新列表是否遍历完毕,若否,则继续执行步骤s316;若是,则继续执行步骤s326。

步骤s316,从子更新列表中取出一个子补丁。

步骤s318,判断该子补丁的父依赖是否检测通过,若否,则返回执行步骤s314;若是,则继续执行步骤s320。

步骤s320,判断该补丁是否已经安装在本地系统上,若是,则返回执行步骤s314;若否,则继续执行步骤s322。

步骤s322,判断该补丁是否适用,若否,则返回执行步骤s314;若是,则继续执行步骤s324。

步骤s324,添加该子补丁到子更新扫描结果集。

步骤s326,判断子更新扫描结果集是否为空,若是,则返回执行步骤s306;若否,则继续执行步骤s328。

步骤s328,添加当前补丁到更新扫描结果集,并继续执行步骤s306。

步骤s330,得到扫描结果集。

2)安装阶段

扫描完成后,用户可以从扫描结果集中选择需要安装的补丁(即待安装的补丁),然后启动安装过程。首先,根据目标扫描库计算出快速体验包(即待安装的补丁对应的更新包)key,使用该key向kv服务器请求快速体验包的索引信息(如,快速体验包的下载url、校验信息等),当kv服务器返回快速体验包的索引信息后,从中提取出快速体验包的下载url,然后利用该url向cdn结点请求快速体验包,当cdn返回快速体验包后,利用索引信息中的摘要等校验信息对快速体验包进行校验。快速体验包校验通过后,利用快速体验包计算出所需差量更新文件的key,使用这些key向kv服务器请求差量索引信息,当kv服务器返回差量索引信息后,从中提取出差量更新文件的下载url,然后利用该url向cdn结点请求差量更新文件,当cdn结点返回差量更新文件后,利用索引信息中的摘要等校验信息对差量更新文件进行校验。所有差量更新文件都校验通过后,通过合并本地文件及差量更新文件生成完整包,最后调用指定接口对合成的完整包进行安装。

图4示出了客户端230的一种安装流程的示意图,如图4所示,客户端230的安装流程可以包括以下步骤s402至s430。

步骤s402,下载快速体验包。

步骤s404,将快速体验包解压到临时安装目录。

在该步骤中,临时安装目录可以是默认的,也可以是自定义的。

步骤s406,枚举所有以psf.cix.xml结尾文件,得到xml文件集合。

步骤s408,判断xml文件集合是否取完,若否,则继续执行步骤s410;若是,则继续执行步骤s424。

步骤s410,取出集合中的一个xml文件。

步骤s412,枚举该xml文件中所有files/file节点,得到文件集合。

步骤s414,判断文件集合是否取完,若是,则返回执行步骤s408;若否,则继续执行步骤s416。

步骤s416,取出集合中的一个文件。

步骤s418,判断winsxs历史版本中是否已经存在该文件,若是,则执行步骤s420;若否,则继续执行步骤s422。

步骤s420,复制该文件到临时安装目录,返回执行步骤s414。

步骤s422,将该文件相对路径写入差量文件清单中,返回执行步骤s414。

步骤s424,判断差量文件清单是否为空,若是,则继续执行步骤s426;若否,则继续执行步骤s428。

步骤s426,通过指定接口启动安装临时安装目录中的文件。

步骤s428,通过差量文件清单向自有cdn结点请求差量文件包,继续执行步骤s430。

步骤s430,差量文件包下载成功后,将其解压到临时安装目录,继续执行步骤s426。

本发明实施例提供的漏洞修复系统,其核心思想是“累计更新数据的差量发布”,即,通过使用本平台的扫描库,对用户终端的当前系统环境进行扫描,从而计算出所有需更新文件的二进制差量(binarydiffpatch,即碎片文件),然后将所需的碎片文件从服务端下载到本地,最后使用这些碎片文件和本地文件合成所需的完整包进行安装,以修复用户终端上存在的漏洞。这种差量更新发布机制能节省80%以上的下载流量,可以从根本上解决现有实现方案存在的问题。

此外,本发明实施例提供的漏洞修复系统,相较于windows系统自带的windowsupdate更新机制还存在以下优点。

首先,因为客观原因的存在,国内普通用户直接访问微软官方服务器很慢,这就会造成windowsupdate的扫描和下载速度非常慢,甚至慢到无法接受。相对而言,本发明实施例中的服务器都在国内,不存在这个问题,而且结合cdn和p2p加速,数据下载速度远胜微软的windowsupdate。

其次,因为带宽的限制,微软采用了bits(后台智能传送服务)的带宽优化策略更新机制,这样一来,windowsupdate就只能在后台默默地分时段更新,这就必然导致更新的滞后性。相对而言,本发明实施例提供的漏洞修复系统可以随时启动更新,并集中大规模为国内用户打补丁。所以虽然本发明实施例提供的漏洞修复系统中的累计更新数据来源于微软,但是却能让用户早于微软windowsupdate获得更新。

再次,微软的更新机制现在变得越来越难以使用,主要在于其强制性、不可控性,这给用户带来了很大的困扰。相对而言,本发明实施例提供的漏洞修复系统则可以完全在用户的干预下工作,用户完全可控,在用户体验上的优势非常明显。

基于同一发明构思,本发明实施例还提供了一种应用于数据发布服务器的漏洞修复方法。图5示出了根据本发明一实施例的应用于数据发布服务器的漏洞修复方法的流程图。如图5所示,该方法至少可以包括以下步骤s502至步骤s506。

步骤s502,按照指定时间周期从程序提供者处同步获取用于修复程序漏洞的累计更新数据。

步骤s504,从累计更新数据中提取包含一个或多个更新补丁的全平台扫描库,对全平台扫描库按照系统平台进行拆分,得到各平台的扫描库。

步骤s506,将累计更新数据中的更新文件发布到文件服务器,以及通过指定通道发布各平台的扫描库。

在本发明实施例中,数据发布服务器按照指定时间周期从程序提供者处同步获取累计更新数据,并对累计更新数据进行处理和发布,这样客户端在进行漏洞修复时无需从程序提供者出获取并处理累计更新数据,而是直接从发布至的文件服务器处获取更新文件,能够提高漏洞修复的效率。并且,数据发布服务器对全平台扫描库按照系统平台进行拆分,得到各平台的扫描库,这样客户端在进行漏洞修复时直接加载与自身系统平台匹配的扫描库,可以提高扫描效率,并提升漏洞修复的有效性。

上文步骤s502在同步累计更新数据时,本发明实施例提供了一种可选的方案,在该方案中,可以按照指定时间周期从程序提供者处同步获取用于修复程序漏洞的累计更新数据的描述信息,其中,描述信息中包含下载累计更新数据的下载地址;进而根据描述信息中的下载地址下载得到累计更新数据。

上文步骤s504在对全平台扫描库进行拆分时,本发明实施例提供了一种可选的方案,即,可以调用第一命令从累计更新数据中提取包含一个或多个更新补丁的全平台扫描库,随后调用第二命令根据各系统平台的标识从全平台扫描库中导出各平台的补丁的更新列表,之后调用第三命令根据全平台扫描库和更新列表生成各平台的扫描库。这里的各系统平台的标识可以如win7、win8.1、win10、office等,本发明不限于此。

在本发明的可选实施例中,文件服务器可以包括多个cdn结点和kv服务器,上文步骤s506将累计更新数据中的更新文件发布到文件服务器,可以是将更新文件上传到cdn发布服务器并同步到各cdn结点。

基于同一发明构思,本发明实施例还提供了一种应用于文件服务器的漏洞修复方法。图6示出了根据本发明一实施例的应用于文件服务器的漏洞修复方法的流程图。如图6所示,该方法至少可以包括以下步骤s602至步骤s604。

步骤s602,同步来自数据发布服务器的更新文件。

步骤s604,获取更新文件的标识和更新文件所在文件服务器的地址信息,建立更新文件的包含标识和地址信息的索引。

在本发明实施例中,数据发布服务器按照指定时间周期从程序提供者处同步获取累计更新数据,并对累计更新数据进行处理和发布,这样客户端在进行漏洞修复时无需从程序提供者出获取并处理累计更新数据,而是直接从发布至的文件服务器处获取更新文件,能够提高漏洞修复的效率。

在本发明的可选实施例中,文件服务器可以包括多个cdn结点和kv服务器,则由各cdn结点同步更新文件,由kv服务器获取更新文件的标识和更新文件所在各cdn结点的地址信息,并建立更新文件的包含标识和地址信息的索引。这里的索引可以是key-value的形式,索引中的标识可以作为key,地址信息可以作为value。在可选的实施例中,索引中还可以包括更新文件的摘要信息、大小、发布时间、校验信息等索引信息,这些索引信息均可以作为value。

基于同一发明构思,本发明实施例还提供了一种应用于客户端的漏洞修复方法。图7示出了根据本发明一实施例的应用于客户端的漏洞修复方法的流程图。如图7所示,该方法至少可以包括以下步骤s702至步骤s706。

步骤s702,当接收到漏洞修复的触发事件时,加载数据发布服务器通过指定通道发布的与本地系统平台匹配的目标扫描库。

步骤s704,利用目标扫描库对本地漏洞进行扫描,得到待安装更新文件的标识。

步骤s706,利用待安装更新文件的标识从文件服务器处获取待安装更新文件,进而利用待安装更新文件对本地漏洞进行修复。

在本发明实施例中,由于数据发布服务器按照指定时间周期从程序提供者处同步获取累计更新数据,并对累计更新数据进行处理和发布,这样客户端在进行漏洞修复时无需从程序提供者出获取并处理累计更新数据,而是直接从发布至的文件服务器处获取更新文件,能够提高漏洞修复的效率。并且,由于数据发布服务器对全平台扫描库按照系统平台进行拆分,得到各平台的扫描库,这样客户端在进行漏洞修复时直接加载与自身系统平台匹配的扫描库,可以提高扫描效率,并提升漏洞修复的有效性。

在本发明的可选实施例中,各平台的扫描库中记录有各补丁对应的更新文件的标识,这样步骤s704在利用目标扫描库对本地漏洞进行扫描时,可以确定本地系统上未安装的补丁的扫描结果集,随后从扫描结果集中选取待安装的补丁,进而根据目标扫描库中记录的各补丁对应的更新文件的标识,确定待安装的补丁对应的待安装更新文件的标识。

进一步地,本发明实施例可以枚举目标扫描库中所有的补丁,得到更新列表,随后遍历更新列表,判断各补丁是否已经安装在本地系统上,若否,则将该补丁添加到扫描结果集中;若是,则继续从更新列表中选取下一个补丁,判断下一个补丁是否已经安装在本地系统上,以此类推。另外,在遍历更新列表,判断各补丁是否已经安装在本地系统上之前,还可以判断各补丁的父依赖是否检测通过,若是,则判断各补丁是否已经安装在本地系统上;若否,则继续从更新列表中选取下一个补丁,判断下一个补丁的父依赖是否检测通过,以此类推。

在本发明的可选实施例中,为了减少下载流量,提高漏洞修复效率,本发明实施例实现了差量更新文件的下载,并将差量更新文件与本系统的已有文件进行合并,然后进行快速安装,从而实现漏洞修复。具体地,本发明实施例可以根据目标扫描库中记录的各补丁对应的更新文件的标识,确定待安装的补丁对应的备选更新文件的标识,进而根据备选更新文件的标识确定待安装更新文件的标识。这里的备选更新文件可以认为是待安装的补丁对应的所有更新文件,待安装更新文件是差量更新文件,下面将分别介绍如何确定备选更新文件的标识和待安装更新文件的标识。

首先介绍备选更新文件的标识的确定方案,在该方案中,更新文件包括更新包,更新包中记录有备选更新文件的标识,客户端根据目标扫描库中记录的各补丁对应的更新包的标识,确定待安装的补丁对应的目标更新包的标识;随后利用目标更新包的标识从kv服务器处获取目标更新包的地址信息;进而利用目标更新包的地址信息从相应的cdn结点处下载得到目标更新包;之后解压目标更新包得到备选更新文件的标识。

接着介绍待安装更新文件的标识的确定方案,即,本发明实施例根据备选更新文件的标识,判断本地系统上是否已经存在该备选更新文件;若否,则将该备选更新文件的标识写入差量文件清单中,并将差量文件清单中文件的标识作为待安装更新文件的标识;若是,则将本地系统上的该备选更新文件复制到临时安装目录。

在确定待安装更新文件的标识后,本发明实施例可以利用待安装更新文件的标识从kv服务器处获取待安装更新文件的地址信息,进而利用待安装更新文件的地址信息从相应的cdn结点处下载得到待安装更新文件。接下来,将下载得到的待安装更新文件复制到临时安装目录,并安装临时安装目录中的文件,以对本地漏洞进行修复。

在可选的实施例中,为了保证待安装更新文件的有效性,可以对待安装更新文件进行信息校验,具体地,可以利用待安装更新文件的标识,从kv服务器处获取待安装更新文件的包含更新文件的校验信息的索引信息,进而利用校验信息对下载得到待安装更新文件进行校验,在校验通过后,将待安装更新文件复制到临时安装目录。

基于同一发明构思,本发明实施例还提供了一种数据发布服务器。图8示出了根据本发明一实施例的数据发布服务器的结构示意图。如图8所示,该数据发布服务器可以包括:第一同步模块810、第一处理模块820以及发布模块830。

第一同步模块810,适于按照指定时间周期从程序提供者处同步获取用于修复程序漏洞的累计更新数据;

第一处理模块820,与第一同步模块810相耦合,适于从所述累计更新数据中提取包含一个或多个更新补丁的全平台扫描库,对所述全平台扫描库按照系统平台进行拆分,得到各平台的扫描库;

发布模块830,与第一处理模块820相耦合,适于将所述累计更新数据中的更新文件发布到文件服务器,以及通过指定通道发布所述各平台的扫描库。

在本发明一实施例中,所述文件服务器包括多个内容分发网络cdn结点,所述发布模块830还适于:

将所述更新文件上传到cdn发布服务器并同步到各cdn结点。

在本发明一实施例中,所述第一同步模块810还适于:

按照指定时间周期从程序提供者处同步获取用于修复程序漏洞的累计更新数据的描述信息,其中,所述描述信息中包含下载所述累计更新数据的下载地址;

根据所述描述信息中的下载地址下载得到所述累计更新数据。

在本发明一实施例中,所述第一处理模块820还适于:

调用第一命令从所述累计更新数据中提取包含一个或多个更新补丁的全平台扫描库;

调用第二命令根据各系统平台的标识从所述全平台扫描库中导出各平台的补丁的更新列表;

调用第三命令根据所述全平台扫描库和所述更新列表生成各平台的扫描库。

基于同一发明构思,本发明实施例还提供了一种文件服务器。图9示出了根据本发明一实施例的文件服务器的结构示意图。如图9所示,该文件服务器可以包括:第二同步模块910以及第二处理模块920。

第二同步模块910,适于同步来自数据发布服务器的更新文件;

第二处理模块920,与第二同步模块910相耦合,适于获取所述更新文件的标识和所述更新文件所在所述文件服务器的地址信息,建立所述更新文件的包含标识和地址信息的索引。

在本发明一实施例中,所述文件服务器包括多个内容分发网络cdn结点和kv服务器;

所述第二同步模块910还适于由各cdn结点同步所述更新文件;

所述第二处理模块920还适于由所述kv服务器获取所述更新文件的标识和所述更新文件所在各cdn结点的地址信息,并建立所述更新文件的包含标识和地址信息的索引。

基于同一发明构思,本发明实施例还提供了一种客户端。图10示出了根据本发明一实施例的客户端的结构示意图。如图10所示,该客户端可以包括:加载模块1010、扫描模块1020以及漏洞修复模块1030。

加载模块1010,适于当接收到漏洞修复的触发事件时,加载数据发布服务器通过指定通道发布的与本地系统平台匹配的目标扫描库;

扫描模块1020,与加载模块1010相耦合,适于利用所述目标扫描库对本地漏洞进行扫描,得到待安装更新文件的标识;

漏洞修复模块1030,与扫描模块1020相耦合,适于利用所述待安装更新文件的标识从文件服务器处获取所述待安装更新文件,进而利用所述待安装更新文件对本地漏洞进行修复。

在本发明一实施例中,所述目标扫描库中记录有各补丁对应的更新文件的标识,所述扫描模块1020还适于:

利用所述目标扫描库对本地漏洞进行扫描,得到本地系统上未安装的补丁的扫描结果集;

从所述扫描结果集中选取待安装的补丁;

根据所述目标扫描库中记录的各补丁对应的更新文件的标识,确定所述待安装的补丁对应的所述待安装更新文件的标识。

在本发明一实施例中,所述扫描模块1020还适于:

枚举所述目标扫描库中所有的补丁,得到更新列表;

遍历所述更新列表,判断各补丁是否已经安装在本地系统上,若否,则将该补丁添加到所述扫描结果集中。

在本发明一实施例中,所述扫描模块1020还适于:

在遍历所述更新列表,判断各补丁是否已经安装在本地系统上之前,判断各补丁的父依赖是否检测通过,若是,则判断各补丁是否已经安装在本地系统上。

在本发明一实施例中,所述扫描模块1020还适于:

若某补丁的父依赖未检测通过,则继续从所述更新列表中取下一个补丁,判断下一个补丁的父依赖是否检测通过。

在本发明一实施例中,所述扫描模块1020还适于:

根据所述目标扫描库中记录的各补丁对应的更新文件的标识,确定所述待安装的补丁对应的备选更新文件的标识;

根据所述备选更新文件的标识确定所述待安装更新文件的标识。

在本发明一实施例中,所述文件服务器包括多个内容分发网络cdn结点和kv服务器,各cdn结点同步有所述更新文件;所述kv服务器建立有所述更新文件的标识和地址信息的索引,所述扫描模块1020还适于:

当所述更新文件包括更新包时,根据所述目标扫描库中记录的各补丁对应的更新包的标识,确定所述待安装的补丁对应的目标更新包的标识;

利用所述目标更新包的标识从所述kv服务器处获取所述目标更新包的地址信息;

利用所述目标更新包的地址信息从相应的cdn结点处下载得到所述目标更新包;

解压所述目标更新包得到备选更新文件的标识。

在本发明一实施例中,所述扫描模块1020还适于:

根据所述备选更新文件的标识,判断本地系统上是否已经存在该备选更新文件;

若否,则将该备选更新文件的标识写入差量文件清单中,并将所述差量文件清单中文件的标识作为所述待安装更新文件的标识;

若是,则将本地系统上的该备选更新文件复制到临时安装目录。

在本发明一实施例中,所述漏洞修复模块1030还适于:

利用所述待安装更新文件的标识从所述kv服务器处获取所述待安装更新文件的地址信息;

利用所述待安装更新文件的地址信息从相应的cdn结点处下载得到所述待安装更新文件。

在本发明一实施例中,所述漏洞修复模块1030还适于:

将下载得到的所述待安装更新文件复制到所述临时安装目录;

安装所述临时安装目录中的文件,以对本地漏洞进行修复。

在本发明一实施例中,所述漏洞修复模块1030还适于:

利用所述待安装更新文件的标识,从所述kv服务器处获取所述待安装更新文件的包含更新文件的校验信息的索引信息;

利用所述校验信息对下载得到所述待安装更新文件进行校验,在校验通过后,将所述待安装更新文件复制到所述临时安装目录。

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

本发明实施例提供了一种包括数据发布服务器、文件服务器以及客户端的漏洞修复系统,数据发布服务器按照指定时间周期从程序提供者处同步获取用于修复程序漏洞的累计更新数据;从累计更新数据中提取包含一个或多个更新补丁的全平台扫描库,对全平台扫描库按照系统平台进行拆分,得到各平台的扫描库;将累计更新数据中的更新文件发布到文件服务器,以及通过指定通道发布各平台的扫描库;文件服务器同步更新文件,并获取更新文件的标识和更新文件所在文件服务器的地址信息,建立更新文件的包含标识和地址信息的索引;客户端当接收到漏洞修复的触发事件时,加载通过指定通道发布的与本地系统平台匹配的目标扫描库,利用目标扫描库对本地漏洞进行扫描,得到待安装更新文件的标识;利用待安装更新文件的标识从文件服务器处获取待安装更新文件,进而利用待安装更新文件对本地漏洞进行修复。由此可见,由于数据发布服务器按照指定时间周期从程序提供者处同步获取累计更新数据,并对累计更新数据进行处理和发布,这样客户端在进行漏洞修复时无需从程序提供者处获取并处理累计更新数据,而是直接从发布至的文件服务器处获取更新文件,能够提高漏洞修复的效率。并且,数据发布服务器对全平台扫描库按照系统平台进行拆分,得到各平台的扫描库,这样客户端在进行漏洞修复时直接加载与自身系统平台匹配的扫描库,可以提高扫描效率,并提升漏洞修复的有效性。

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

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

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

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

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

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

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

根据本发明实施例的一方面,提供了a1、一种漏洞修复系统,包括:数据发布服务器、文件服务器以及客户端;

所述数据发布服务器,适于按照指定时间周期从程序提供者处同步获取用于修复程序漏洞的累计更新数据;从所述累计更新数据中提取包含一个或多个更新补丁的全平台扫描库,对所述全平台扫描库按照系统平台进行拆分,得到各平台的扫描库;将所述累计更新数据中的更新文件发布到所述文件服务器,以及通过指定通道发布所述各平台的扫描库;

所述文件服务器,适于同步所述更新文件,并获取所述更新文件的标识和所述更新文件所在所述文件服务器的地址信息,建立所述更新文件的包含标识和地址信息的索引;

所述客户端,适于当接收到漏洞修复的触发事件时,加载通过所述指定通道发布的与本地系统平台匹配的目标扫描库,利用所述目标扫描库对本地漏洞进行扫描,得到待安装更新文件的标识;利用所述待安装更新文件的标识从所述文件服务器处获取所述待安装更新文件,进而利用所述待安装更新文件对本地漏洞进行修复。

a2、根据a1所述的漏洞修复系统,其中,所述文件服务器包括多个内容分发网络cdn结点和kv服务器;

各cdn结点,适于同步所述更新文件;

所述kv服务器,适于获取所述更新文件的标识和所述更新文件所在各cdn结点的地址信息,并建立所述更新文件的包含标识和地址信息的索引。

a3、根据a2所述的漏洞修复系统,其中,所述索引中还包括下列至少之一的索引信息:

更新文件的摘要信息、大小、发布时间、校验信息。

a4、根据a2或a3所述的漏洞修复系统,其中,所述数据发布服务器还适于:

将所述更新文件上传到cdn发布服务器并同步到各cdn结点。

a5、根据a1-a4中任一项所述的漏洞修复系统,其中,所述数据发布服务器还适于:

按照指定时间周期从程序提供者处同步获取用于修复程序漏洞的累计更新数据的描述信息,其中,所述描述信息中包含下载所述累计更新数据的下载地址;

根据所述描述信息中的下载地址下载得到所述累计更新数据。

a6、根据a1-a5中任一项所述的漏洞修复系统,其中,所述数据发布服务器还适于:

调用第一命令从所述累计更新数据中提取包含一个或多个更新补丁的全平台扫描库;

调用第二命令根据各系统平台的标识从所述全平台扫描库中导出各平台的补丁的更新列表;

调用第三命令根据所述全平台扫描库和所述更新列表生成各平台的扫描库。

a7、根据a1-a6中任一项所述的漏洞修复系统,其中,所述各平台的扫描库中记录有各补丁对应的更新文件的标识,所述客户端还适于:

利用所述目标扫描库对本地漏洞进行扫描,得到本地系统上未安装的补丁的扫描结果集;

从所述扫描结果集中选取待安装的补丁;

根据所述目标扫描库中记录的各补丁对应的更新文件的标识,确定所述待安装的补丁对应的所述待安装更新文件的标识。

a8、根据a7所述的漏洞修复系统,其中,所述客户端还适于:

枚举所述目标扫描库中所有的补丁,得到更新列表;

遍历所述更新列表,判断各补丁是否已经安装在本地系统上,若否,则将该补丁添加到所述扫描结果集中。

a9、根据a8所述的漏洞修复系统,其中,所述客户端还适于:

在遍历所述更新列表,判断各补丁是否已经安装在本地系统上之前,判断各补丁的父依赖是否检测通过,若是,则判断各补丁是否已经安装在本地系统上。

a10、根据a9所述的漏洞修复系统,其中,所述客户端还适于:

若某补丁的父依赖未检测通过,则继续从所述更新列表中取下一个补丁,判断下一个补丁的父依赖是否检测通过。

a11、根据a7所述的漏洞修复系统,其中,所述客户端还适于:

根据所述目标扫描库中记录的各补丁对应的更新文件的标识,确定所述待安装的补丁对应的备选更新文件的标识;

根据所述备选更新文件的标识确定所述待安装更新文件的标识。

a12、根据a11所述的漏洞修复系统,其中,当所述更新文件包括更新包时,所述客户端还适于:

根据所述目标扫描库中记录的各补丁对应的更新包的标识,确定所述待安装的补丁对应的目标更新包的标识;

利用所述目标更新包的标识从所述kv服务器处获取所述目标更新包的地址信息;

利用所述目标更新包的地址信息从相应的cdn结点处下载得到所述目标更新包;

解压所述目标更新包得到备选更新文件的标识。

a13、根据a11或a12所述的漏洞修复系统,其中,所述客户端还适于:

根据所述备选更新文件的标识,判断本地系统上是否已经存在该备选更新文件;

若否,则将该备选更新文件的标识写入差量文件清单中,并将所述差量文件清单中文件的标识作为所述待安装更新文件的标识;

若是,则将本地系统上的该备选更新文件复制到临时安装目录。

a14、根据a13所述的漏洞修复系统,其中,所述客户端还适于:

利用所述待安装更新文件的标识从所述kv服务器处获取所述待安装更新文件的地址信息;

利用所述待安装更新文件的地址信息从相应的cdn结点处下载得到所述待安装更新文件。

a15、根据a14所述的漏洞修复系统,其中,所述客户端还适于:

将下载得到的所述待安装更新文件复制到所述临时安装目录。

a16、根据a14所述的漏洞修复系统,其中,所述客户端还适于:

利用所述待安装更新文件的标识,从所述kv服务器处获取所述待安装更新文件的包含更新文件的校验信息的索引信息;

利用所述校验信息对下载得到所述待安装更新文件进行校验,在校验通过后,将所述待安装更新文件复制到所述临时安装目录。

a17、根据a15或a16所述的漏洞修复系统,其中,所述客户端还适于:

安装所述临时安装目录中的文件,以对本地漏洞进行修复。

根据本发明实施例的另一方面,还提供了b18、一种漏洞修复方法,应用于数据发布服务器,包括:

按照指定时间周期从程序提供者处同步获取用于修复程序漏洞的累计更新数据;

从所述累计更新数据中提取包含一个或多个更新补丁的全平台扫描库,对所述全平台扫描库按照系统平台进行拆分,得到各平台的扫描库;

将所述累计更新数据中的更新文件发布到文件服务器,以及通过指定通道发布所述各平台的扫描库。

b19、根据b18所述的漏洞修复方法,其中,所述文件服务器包括多个内容分发网络cdn结点,将所述累计更新数据中的更新文件发布到文件服务器,包括:

将所述更新文件上传到cdn发布服务器并同步到各cdn结点。

b20、根据b18或b19所述的漏洞修复方法,其中,所述按照指定时间周期从程序提供者处同步获取用于修复程序漏洞的累计更新数据,包括:

按照指定时间周期从程序提供者处同步获取用于修复程序漏洞的累计更新数据的描述信息,其中,所述描述信息中包含下载所述累计更新数据的下载地址;

根据所述描述信息中的下载地址下载得到所述累计更新数据。

b21、根据b18-b20中任一项所述的漏洞修复方法,其中,从所述累计更新数据中提取包含一个或多个更新补丁的全平台扫描库,对所述全平台扫描库按照系统平台进行拆分,得到各平台的扫描库,包括:

调用第一命令从所述累计更新数据中提取包含一个或多个更新补丁的全平台扫描库;

调用第二命令根据各系统平台的标识从所述全平台扫描库中导出各平台的补丁的更新列表;

调用第三命令根据所述全平台扫描库和所述更新列表生成各平台的扫描库。

根据本发明实施例的另一方面,还提供了c22、一种漏洞修复方法,应用于文件服务器,包括:

同步来自数据发布服务器的更新文件;

获取所述更新文件的标识和所述更新文件所在所述文件服务器的地址信息,建立所述更新文件的包含标识和地址信息的索引。

c23、根据c22所述的漏洞修复方法,其中,所述文件服务器包括多个内容分发网络cdn结点和kv服务器;

所述同步来自数据发布服务器的更新文件,包括:由各cdn结点同步所述更新文件;

所述获取所述更新文件的标识和所述更新文件所在所述文件服务器的地址信息,建立所述更新文件的包含标识和地址信息的索引,包括:由所述kv服务器获取所述更新文件的标识和所述更新文件所在各cdn结点的地址信息,并建立所述更新文件的包含标识和地址信息的索引。

c24、根据c22或c23所述的漏洞修复方法,其中,所述索引中还包括下列至少之一的索引信息:

更新文件的摘要信息、大小、发布时间、校验信息。

根据本发明实施例的另一方面,还提供了d25、一种漏洞修复方法,应用于客户端,包括:

当接收到漏洞修复的触发事件时,加载数据发布服务器通过指定通道发布的与本地系统平台匹配的目标扫描库;

利用所述目标扫描库对本地漏洞进行扫描,得到待安装更新文件的标识;

利用所述待安装更新文件的标识从文件服务器处获取所述待安装更新文件,进而利用所述待安装更新文件对本地漏洞进行修复。

d26、根据d25所述的漏洞修复方法,其中,所述目标扫描库中记录有各补丁对应的更新文件的标识,利用所述目标扫描库对本地漏洞进行扫描,得到待安装更新文件的标识,包括:

利用所述目标扫描库对本地漏洞进行扫描,得到本地系统上未安装的补丁的扫描结果集;

从所述扫描结果集中选取待安装的补丁;

根据所述目标扫描库中记录的各补丁对应的更新文件的标识,确定所述待安装的补丁对应的所述待安装更新文件的标识。

d27、根据d26所述的漏洞修复方法,其中,利用所述目标扫描库对本地漏洞进行扫描,得到本地系统上未安装的补丁的扫描结果集,包括:

枚举所述目标扫描库中所有的补丁,得到更新列表;

遍历所述更新列表,判断各补丁是否已经安装在本地系统上,若否,则将该补丁添加到所述扫描结果集中。

d28、根据d27所述的漏洞修复方法,其中,还包括:

在遍历所述更新列表,判断各补丁是否已经安装在本地系统上之前,判断各补丁的父依赖是否检测通过,若是,则判断各补丁是否已经安装在本地系统上。

d29、根据d28所述的漏洞修复方法,其中,所述判断各补丁的父依赖是否检测通过,包括:

若某补丁的父依赖未检测通过,则继续从所述更新列表中取下一个补丁,判断下一个补丁的父依赖是否检测通过。

d30、根据d26所述的漏洞修复方法,其中,根据所述目标扫描库中记录的各补丁对应的更新文件的标识,确定所述待安装的补丁对应的所述待安装更新文件的标识,包括:

根据所述目标扫描库中记录的各补丁对应的更新文件的标识,确定所述待安装的补丁对应的备选更新文件的标识;

根据所述备选更新文件的标识确定所述待安装更新文件的标识。

d31、根据d30所述的漏洞修复方法,其中,所述文件服务器包括多个内容分发网络cdn结点和kv服务器,各cdn结点同步有所述更新文件;所述kv服务器建立有所述更新文件的标识和地址信息的索引;

当所述更新文件包括更新包时,根据所述目标扫描库中记录的各补丁对应的更新文件的标识,确定所述待安装的补丁对应的备选更新文件的标识,包括:

根据所述目标扫描库中记录的各补丁对应的更新包的标识,确定所述待安装的补丁对应的目标更新包的标识;

利用所述目标更新包的标识从所述kv服务器处获取所述目标更新包的地址信息;

利用所述目标更新包的地址信息从相应的cdn结点处下载得到所述目标更新包;

解压所述目标更新包得到备选更新文件的标识。

d32、根据d30或d31所述的漏洞修复方法,其中,根据所述备选更新文件的标识确定所述待安装更新文件的标识,包括:

根据所述备选更新文件的标识,判断本地系统上是否已经存在该备选更新文件;

若否,则将该备选更新文件的标识写入差量文件清单中,并将所述差量文件清单中文件的标识作为所述待安装更新文件的标识;

若是,则将本地系统上的该备选更新文件复制到临时安装目录。

d33、根据d32所述的漏洞修复方法,其中,利用所述待安装更新文件的标识从所述文件服务器处获取所述待安装更新文件,包括:

利用所述待安装更新文件的标识从所述kv服务器处获取所述待安装更新文件的地址信息;

利用所述待安装更新文件的地址信息从相应的cdn结点处下载得到所述待安装更新文件。

d34、根据d33所述的漏洞修复方法,其中,利用所述待安装更新文件对本地漏洞进行修复,包括:

将下载得到的所述待安装更新文件复制到所述临时安装目录;

安装所述临时安装目录中的文件,以对本地漏洞进行修复。

d35、根据d34所述的漏洞修复方法,其中,将下载得到的所述待安装更新文件复制到所述临时安装目录,包括:

利用所述待安装更新文件的标识,从所述kv服务器处获取所述待安装更新文件的包含更新文件的校验信息的索引信息;

利用所述校验信息对下载得到所述待安装更新文件进行校验,在校验通过后,将所述待安装更新文件复制到所述临时安装目录。

根据本发明实施例的又一方面,还提供了e36、一种数据发布服务器,包括:

第一同步模块,适于按照指定时间周期从程序提供者处同步获取用于修复程序漏洞的累计更新数据;

第一处理模块,适于从所述累计更新数据中提取包含一个或多个更新补丁的全平台扫描库,对所述全平台扫描库按照系统平台进行拆分,得到各平台的扫描库;

发布模块,适于将所述累计更新数据中的更新文件发布到文件服务器,以及通过指定通道发布所述各平台的扫描库。

根据本发明实施例的又一方面,还提供了f37、一种文件服务器,包括:

第二同步模块,适于同步来自数据发布服务器的更新文件;

第二处理模块,适于获取所述更新文件的标识和所述更新文件所在所述文件服务器的地址信息,建立所述更新文件的包含标识和地址信息的索引。

根据本发明实施例的又一方面,还提供了g38、一种客户端,包括:

加载模块,适于当接收到漏洞修复的触发事件时,加载数据发布服务器通过指定通道发布的与本地系统平台匹配的目标扫描库;

扫描模块,适于利用所述目标扫描库对本地漏洞进行扫描,得到待安装更新文件的标识;

漏洞修复模块,适于利用所述待安装更新文件的标识从文件服务器处获取所述待安装更新文件,进而利用所述待安装更新文件对本地漏洞进行修复。

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