发明内容
本申请实施例的目的在于提供了一种补丁包的安装方法及装置,以提高补丁包的安装成功率,保证系统安全性能。
为了解决上述技术问题,本申请实施例公开了如下技术方案:
一种补丁包的安装方法,包括:
根据漏洞及其相关补丁包生成基于每个补丁包的注册表和/或文件信息的补丁包安装条件;
判断所述补丁包对应的安装对象是否满足所述补丁包安装条件;
当满足所述补丁包安装条件时,下载并安装所述补丁包;其中,
所述下载并安装补丁包包括:
下载并按照顺序安装所述每个补丁包,或者下载所述每个补丁包并仅安装所述每个补丁包中最新的补丁包,或者仅下载并安装所述每个补丁包中最新的补丁包。
所述补丁包安装条件中的注册表信息包括:注册表键、注册表键值;
所述补丁包安装条件中的文件信息包括:文件版本信息、文件属性。
所述判断当前补丁包对应的安装对象是否满足补丁包安装条件包括:
判断系统中是否存在指定的注册表键、指定注册表键的值、或指定的文件。
所述判断补丁包对应的安装对象是否满足补丁包安装条件包括:
判断指定的注册表键值和/或文件的版本号是否满足预设条件或在指定的范围内。
所述下载并按照顺序安装所述补丁包:
分析每个补丁包的发布时间和顺序;
根据分析结果确定补丁包的安装顺序,并按照所述安装顺序安装所述每个补丁包。
所述下载每个补丁包并仅安装每个补丁包中最新的补丁包包括:
判断下载的所述每个补丁包是否使用相同的补丁安装判别条件;
当使用相同的补丁安装判别条件时,根据所述补丁包的发布时间选择最新的补丁包进行安装。
还包括:
所述补丁包安装结束后,返回安装结果信息;
当所述安装结果信息表示所述补丁包安装失败时,判断所述补丁包是否安装成功。
还包括:
所述补丁包安装结束后,在输出界面中显示所述补丁包的信息。
一种补丁包的安装装置,包括:
生成单元,用于根据漏洞及其相关补丁包生成基于每个补丁包的注册表和/或文件信息的补丁包安装条件;
判断单元,用于判断所述补丁包对应的安装对象是否满足所述补丁包安装条件;
安装单元,用于当满足所述补丁包安装条件时,下载并安装所述补丁包;其中,所述下载并安装补丁包包括:下载并按照顺序安装所述每个补丁包,或者下载所述每个补丁包并仅安装所述每个补丁包中最新的补丁包,或者仅下载并安装所述每个补丁包中最新的补丁包。
所述生成单元生成的每个补丁包安装条件中的注册表信息包括:注册表键、注册表键值;文件信息包括:文件版本信息、文件属性。
所述判断单元包括至少一个下述单元:
第一信息判断单元,用于判断系统中是否存在指定的注册表键、指定注册表键的值、或指定的文件;
第二信息判断单元,用于判断指定的注册表键值和/或文件的版本号是否满足预设条件或在指定的范围内。
所述安装单元包括至少一个下述单元:
顺序安装单元,用于分析每个补丁包的发布时间和顺序,根据分析结果确定补丁包的安装顺序,并按照所述安装顺序安装所述每个补丁包;
选择安装单元,用于判断下载的所述每个补丁包是否使用相同的补丁安装判别条件,当使用相同的补丁安装判别条件时,根据所述补丁包的发布时间选择最新的补丁包进行安装;
直接安装单元,用于仅下载并安装所述每个补丁包中最新的补丁包。
还包括:
返回单元,用于在所述补丁包安装结束后,返回安装结果信息;
所述判断单元,还用于当所述安装结果信息表示所述补丁包安装失败时,判断所述补丁包是否安装成功。
还包括:
显示单元,用于所述补丁包安装结束后,在输出界面中显示所述补丁包的信息。
由上述本申请实施例提供的技术方案可以看出,本申请实施例中根据漏洞及其相关补丁包生成基于每个补丁包的注册表和/或文件信息的补丁包安装条件,判断补丁包对应的安装对象是否满足所述补丁包安装条件,当满足补丁包安装条件时,下载并安装补丁包。应用本申请实施例进行补丁安装时,可以下载并按照顺序安装每个补丁包,或者下载每个补丁包并仅安装每个补丁包中最新的补丁包,或者仅下载并安装每个补丁包中最新的补丁包;应用本申请实施例,当同时检出多个漏洞时,按照顺序安装补丁包可以避免发布时间在后的补丁包先安装所导致的安装失败;并且通过选择安装最新的补丁包,使得在下载了多个具有相同判别条件的补丁包时,不会对漏洞进行重复修复,由此节省系统资源。
具体实施方式
本发明如下实施例提供了一种补丁包的安装方法及装置。
为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。
参见图1,为本申请补丁包的安装方法的第一实施例流程图:
步骤101:根据漏洞及其相关补丁包生成基于每个补丁包的注册表和/或文件信息的补丁包安装条件。
其中,补丁包安装条件中的注册表信息可以包括:注册表键、注册表键值;补丁包安装条件中的文件信息可以包括:文件版本信息、文件属性。
步骤102:判断补丁包对应的安装对象是否满足所述补丁包安装条件,若是,则执行步骤103;否则,执行步骤104。
具体的,可以判断系统中是否存在指定的注册表键、指定注册表键的值、或指定的文件;也可以判断指定的注册表键值和/或文件的版本号是否满足特定的条件或在指定的范围内。
以注册表区间为例,假设补丁kb370009为对Adobe Flash Player远程代码执行漏洞,该补丁的条件扫描逻辑包括如下两个条件:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Adobe Flash Player ActiveX\DisplayVersion小于10.1.102.64;以及
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Adobe Flash Player ActiveX\DisplayVersion大于等于10.0.0.0;
根据上述两个判断条件可知,在获取当前系统的注册表版本号后,可以比较该版本号是否在上述两个判断条件所限定的注册表范围内。
需要说明的是,由于Adobe Flash Player1的补丁在每次升级时,并非累积更新某个固定位置的文件,而是每次在注册表中写此次需要更新的版本号,或者在C:\WINDOWS\system32\Macromed\Flash文件夹下释放一个全新文件,例如,上一版本为Flash10l.ocx,则此次为Flash10m.ocx。由此可知,根据文件名称难以对该漏洞进行扫描,因此选择对注册表进行扫描。
以文件版本区间为例,由于对于Adobe的升级有一定的范围,因此判断条件会限制在对一定区间内的用户进行升级。假设补丁kb2416400用于对IE浏览器漏洞进行修复,IE浏览器针对版本为IE6.7.8。其中,微软也对IE版本进行了划分升级,例如,IE7的升级所增加的限制条件如下:
programfiles\internet explorer\IEXPLORE.EXE大于等于7.0.5730.11;以及
programfiles\internet explorer\IEXPLORE.EXE小于7.1.0.0;
根据上述两个判断条件可知,对此本次发布的补丁包,只针对上述IE区间内的用户进行升级。
又例如,IE8的升级所增加的限制条件如下:
programfiles\internet explorer\iexplore.exe大于等于8.0.6001.18702;
programfiles\internet explorer\iexplore.exe小于8.1.0.0。
步骤103:下载并安装补丁包,结束当前流程。
安装补丁包包括:下载并按照顺序安装每个补丁包,或者下载每个补丁包并仅安装每个补丁包中最新的补丁包,或者仅下载并安装每个补丁包中最新的补丁包。
其中,下载并按照顺序安装每个补丁包时,分析每个补丁包的发布时间和顺序,根据分析结果确定补丁包的安装顺序,并按照安装顺序安装每个补丁包;具体应用时,可以在服务器端完成对每个补丁包的下载以及安装顺序的分析,然后由客户端按照确定的安装顺序获取补丁包并进行安装,也可以由客户端直接从服务器下载补丁包,并对每个补丁包的发布时间和顺序进行分析,然后按照分析结果进行顺序安装。
下载每个补丁包并仅安装每个补丁包中最新的补丁包时,判断下载的每个补丁包是否使用相同的补丁安装判别条件,当使用相同的补丁安装判别条件时,根据补丁包的发布时间选择最新的补丁包进行安装;具体应用时,客户端可以从服务器下载所有的补丁包,然后由客户端判断所下载的每个补丁包的补丁安装判别条件,对于补丁安装判别条件一致的补丁包,从中选择发布时间最新的补丁包。
仅下载并安装每个补丁包中最新的补丁包时,可以在服务器完成对所有补丁包的下载,以及判断存在使用相同的判别条件的补丁包时,选择最新的补丁包,然后客户端下载该最新的补丁包进行安装,由于由服务器统一进行分析,因此减少了每个客户端对补丁包判别条件的判断所耗费的资源。
进一步,在补丁包安装结束后,系统还可以返回安装结果信息,例如返回安装成功或者安装失败的代码。由于某些补丁包在实际安装成功后,系统仍然可能返回当安装失败的代码,例如,office类补丁包,因此系统可以针对这些补丁包的安装返回失败信息时,进一步判断该补丁包是否实际安装成功。
另外,在补丁包安装结束后,系统可以在用户界面中输出所安装补丁包的详细信息,例如,该补丁包的名称,补丁包的主要用途等等,以便向用户展示补丁包的功能,提升用户体验。
步骤104:不安装获取的补丁包,结束当前流程。
参见图2,为本申请补丁包的安装方法的第二实施例流程图,该实施例示出了按照顺序安装补丁包的过程:
步骤201:根据漏洞及其相关补丁包生成基于每个补丁包的注册表和/或文件信息的补丁包安装条件。
其中,补丁包安装条件中的注册表信息可以包括:注册表键、注册表键值。根据注册表键值及键值大小可以判断系统中已经存在的注册表是否包含获取的注册表。
补丁包安装条件中的文件信息可以包括:文件版本信息、文件属性。根据文件属性可以判断文件是否存在,根据文件版本信息可以确定系统中已存在的文件版本号是否包含了文件版本号。
步骤202:判断补丁包对应的安装对象是否满足补丁包安装条件,若是,则执行步骤203;否则,执行步骤205。
需要说明的是,当从补丁包中获取到注册表信息和文件信息中的一种信息时,则仅需要对获取到的信息进行判断。例如,对于补丁KB2467659来说,假设该补丁仅修改注册表,因此不用通过文件信息来判断这个补丁是否安装,仅需要通过判断注册表项中此补丁是否已安装来判断即可,该注册表信息如下所示:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component BasedServicing\Packages\package_[*]_for_KB2467659[*]\installtimelow
步骤203:通过分析下载的补丁包中每个补丁包的发布时间和顺序,确定补丁包的安装顺序。
每次下载的补丁包可能包含多个,这些补丁包的更新时间可能不同,因此在安装时,需要按照补丁包之间的更新时间和相互之间的关系确定安装的顺序。例如,对于补丁包KB2416400和KB2467659来说,假设这两个补丁包的发布日期相同,其中补丁包KB2416400用于解决IE浏览器的CSS0day漏洞问题,但此补丁修复后会导致邮件检测日语邮件(JIS)编码错误,而补丁包KB2467659用于解决该问题,因此在安装补丁包时,通过比较发布日期、及相互之间的关系等,将补丁包KB2416400的安装顺序置前,补丁包KB2467659的安装顺序置后,以保证在解决了IE浏览器CSS0day漏洞问题的同时,解决邮件检测日语邮件(JIS)编码错误的问题。
步骤204:按照安装顺序安装获取的补丁包,结束当前流程。
步骤205:不安装获取的补丁包,结束当前流程。
当包含了获取的注册表信息和文件信息时,则说明系统中不存在相应漏洞,或者已经安装了补丁包,因此无需安装补丁包。
参见图3,为本申请补丁包的安装方法的第三实施例流程图,该实施例示出了安装最新补丁包的过程:
步骤301:根据漏洞及其相关补丁包生成基于每个补丁包的注册表和/或文件信息的补丁包安装条件。
其中,补丁包安装条件中的注册表信息可以包括:注册表键、注册表键值。根据注册表键值及键值大小可以判断系统中已经存在的注册表是否包含获取的注册表。
文件信息可以包括:文件版本号、文件标识。根据文件标识可以判断文件是否存在,根据文件版本号可以确定系统中已存在的文件版本号是否包含了获取的文件版本号。
步骤302:判断补丁包对应的安装对象是否满足补丁包安装条件,若是,则执行步骤303;否则,执行步骤306。
步骤303:判断下载的每个补丁包是否使用相同的补丁安装判别条件,若是,则执行步骤304;否则,执行步骤305。
每次下载的补丁包可能包含多个,这些补丁包的更新时间可能不同,因此在安装时,更新时间在后的补丁包中可能包含了更新在前的补丁包的功能,如果通过这些补丁包对同一漏洞进行多次修复,将耗费系统资源。因此本申请实施例中判断补丁包是否使用相同的补丁安装判别条件,以便确定补丁包是否对同一漏洞进行修复,如果有多个补丁包对同一漏洞进行修复,则可以选择发布时间最近的一个补丁包进行修复即可。
步骤304:根据补丁包的发布时间选择最新的补丁包进行安装,结束当前流程。
步骤305:安装所获取的所有补丁包,结束当前流程。
步骤306:不安装获取的补丁包,结束当前流程。
若当前系统不满足补丁包安装条件,则说明系统中不存在相应漏洞,或者已经安装了补丁包,因此无需安装补丁包。
与本申请补丁包的安装方法的实施例相对应,本申请还提供了补丁包的安装装置的实施例。
参见图4A,为本申请补丁包的安装装置的实施例框图:
该补丁包的安装装置包括:生成单元410、判断单元420和安装单元430。
其中,生成单元410,用于根据漏洞及其相关补丁包生成基于每个补丁包的注册表和/或文件信息的补丁包安装条件;
判断单元420,用于判断所述补丁包对应的安装对象是否满足所述补丁包安装条件;
安装单元430,用于当满足所述补丁包安装条件时,下载并安装所述补丁包;其中,所述下载并安装补丁包包括:下载并按照顺序安装所述每个补丁包,或者下载所述每个补丁包并仅安装所述每个补丁包中最新的补丁包,或者仅下载并安装所述每个补丁包中最新的补丁包。
其中,补丁包安装条件中的注册表信息可以包括:注册表键、注册表键值;补丁包安装条件中的文件信息可以包括:文件版本信息、文件属性。
进一步,该补丁包的安装装置还可以包括(图4A中未示出):返回单元,用于在所述补丁包安装结束后,返回安装结果信息;所述判断单元420,还用于当所述安装结果信息表示所述补丁包安装失败时,判断所述补丁包是否安装成功。
进一步,该补丁包的安装装置还可以包括(图4A中未示出):显示单元,用于所述补丁包安装结束后,在输出界面中显示所述补丁包的信息。
参见图4B,为图4A中判断单元的实施例框图:
该判断单元420可以包括至少一个下述单元(图4B将两个单元均示出):
第一信息判断单元421,用于判断系统中是否存在指定的注册表键、指定注册表键的值、或指定的文件;
第二信息判断单元422,用于判断指定的注册表键值和/或文件的版本号是否满足预设条件或在指定的范围内。
参见图4C,为本申请图4A中安装单元的实施例框图:
该安装单元430可以包括至少一个下述单元(图4C将三个单元均示出):
顺序安装单元431,用于分析每个补丁包的发布时间和顺序,根据分析结果确定补丁包的安装顺序,并按照所述安装顺序安装所述每个补丁包;
选择安装单元432,用于判断下载的所述每个补丁包是否使用相同的补丁安装判别条件,当使用相同的补丁安装判别条件时,根据所述补丁包的发布时间选择最新的补丁包进行安装;
直接安装单元,用于仅下载并安装所述每个补丁包中最新的补丁包。
通过对以上实施方式的描述可知,本申请实施例中根据漏洞及其相关补丁包生成基于每个补丁包的注册表和/或文件信息的补丁包安装条件,判断补丁包对应的安装对象是否满足所述补丁包安装条件,当满足补丁包安装条件时,下载并安装补丁包。应用本申请实施例进行补丁安装时,可以下载并按照顺序安装每个补丁包,或者下载每个补丁包并仅安装每个补丁包中最新的补丁包,或者仅下载并安装每个补丁包中最新的补丁包;应用本申请实施例,当同时检出多个漏洞时,按照顺序安装补丁包可以避免发布时间在后的补丁包先安装所导致的安装失败;并且通过选择安装最新的补丁包,使得在下载了多个具有相同判别条件的补丁包时,不会对漏洞进行重复修复,由此节省系统资源。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的保护范围之内。