基于白名单动态部署软件安装方法、装置、电子设备和介质与流程

文档序号:30950715发布日期:2022-07-30 07:25阅读:210来源:国知局
基于白名单动态部署软件安装方法、装置、电子设备和介质与流程

1.本技术涉及软件安装的领域,尤其是涉及一种基于白名单动态部署软件安装方法、装置、电子设备和介质。


背景技术:

2.在电脑系统中,设置在白名单系统中的用户(或ip地址、ip包、邮件等)会优先通过,白名单以外的用户都不能通过。在安装软件过程中,安装包会释放新的可执行文件或脚本文件,而这些文件都不在白名单中,如果这些文件不能正常运行,会导致安装过程失败,如果允许所有的文件运行,则可能会有其他非法程序被允许运行。
3.目前已有在安装部署之前解析安装包,得到其中关键文件信息并把它们加入白名单后再允许用户安装的方式,但是在软件安装过程中可能会自动生成不在白名单中的可执行文件或脚本文件,并且软件安装过程中,文件位置或名称可能会发生变化,不能有效跟踪,进而可能会影响软件安装。
4.针对上述中的相关技术,发明人认为如何解决软件安装过程中,跟踪记录软件安装过程中生成的所有文件,使软件安装过程成功完成,成为一个关键问题。


技术实现要素:

5.为了监测软件安装过程,使软件顺利安装,本技术提供一种基于白名单动态部署软件安装方法、装置、电子设备和介质。
6.第一方面,本技术实施例提供一种基于白名单动态部署软件安装方法,包括:检测当前进程的进程执行文件路径是否存储于白名单中;若是,则创建安装进程记录,其中,所述安装进程记录包括当前进程的进程id和安装释放文件路径;若否,则从安装进程记录中查找当前进程的父进程id;若查找到所述父进程id,则将当前进程的进程id和安装释放文件路径写入所述安装进程记录;若未查找到所述父进程id,则判断当前进程的执行文件是否为安装释放文件;若是安装释放文件,则判断当前进程的父进程是否为特殊信任进程或脚本解释进程;若是特殊信任进程或脚本解释进程,则将当前进程id和安装释放文件路径写入所述安装进程记录。
7.通过采用上述技术方案,电子设备中的白名单系统判断当前进程的进程执行文件路径是否存储于白名单中,若是,则创建安装进程记录,将当前进程id和安装过程产生的安装释放文件路径保存入安装进程记录。若当前进程的进程执行文件未保存于白名单中,则白名单系统在安装进程记录中查找当前进程的父进程id,若父进程id保存在安装进程记录中,则将当前进程id写入安装进程记录,若未查找到父进程id,则进一步判断当前进程的执
行文件是否为安装释放文件,若是,则判断当前进程的父进程是否为特殊信任进程或脚本解释进程,若是,则将当前进程id写入安装进程记录。白名单系统在安装软件的过程中,记录所有进程id和安装释放文件路径,同时根据进程的进程执行文件是否保存于安装过程记录中或者进程的父子关系,判断当前进程是否可加入到白名单中,在软件安装过程中,完成白名单动态部署,使软件安装进程顺利运行,防止非法程序启动安装释放文件。
8.进一步地,所述安装进程记录包括多个进程链,所述进程链包括至少一个第一进程链,所述若查找到父进程id,则将当前的进程id和安装释放文件路径写入所述安装进程记录,包括:若查找到父进程id,则将当前的进程id写入父进程id之后,生成第一进程链。
9.通过采用上述技术方案,第一进程链用于记录进程的父子关系,便于通过进程的父子关系确定子进程是否加入到白名单中,更完整地记录安装过程。
10.进一步地,所述安装进程记录包括第一进程链和第二进程链,所述若当前进程的父进程是特殊信任进程或脚本解释进程,则将当前进程id写入所述安装进程记录,包括:若当前进程的父进程是特殊信任进程,则在安装进程记录中创建第二进程链,将当前的进程id写入所述第二进程链;若当前进程的父进程是脚本解释进程,则在安装进程记录中创建第三进程链,将当前的进程id写入所述第三进程链。
11.通过采用上述技术方案,当前进程的父进程是特殊信任进程时,将当前进程id写入第二进程链,当前进程的父进程是脚本解释进程时,将当前进程id写入第三进程链,白名单系统根据进程的不同类型,分别设置不同的进程链,提高进程id记录精度。
12.所述安装进程记录包括exe格式和/或msi格式的安装程序文件以及多个进程链,所述进程链包括第四进程链,所述方法还包括:若msiexec安装程序载入msi文件生成第一安装进程,则创建第四进程链,并将所述第一安装进程id写入所述第四进程链;若所述msiexec安装程序载入exe文件生成第二安装进程,则将所述第二安装进程id写入所述第四进程链。
13.通过采用上述技术方案,当msiexec安装程序载入msi文件生成第一安装进程时,则将第一安装进程id写入第四进程链,并且msiexec安装程序载入其他exe文件生成第二安装进程时,将第二安装进程id也写入第四进程链,监测安装程序过程中exe格式和msi格式的安装程序文件相互嵌套运行的情况,并记录相互嵌套运行时产生的进程id。
14.在另一种可能的实现方式中,所述安装进程记录包括用于记录所述安装释放文件路径的释放文件路径记录,所述方法还包括:若位于任一进程链中的进程发起释放文件操作,生成安装释放文件,则将所述安装释放文件的文件路径写入释放文件路径记录;当所述安装释放文件关闭时,若所述安装释放文件为pe文件或脚本文件,则将所述pe文件或脚本文件写入白名单;若确定所述安装释放文件的文件路径被缩写成缩写路径,则将所述安装释放文件的文件路径和所述缩写路径均写入释放文件路径记录。
15.通过采用上述技术方案,白名单系统监测软件安装过程中释放文件的操作,并在
生成安装释放文件时,将安装释放文件路径写入释放文件路径记录,在安装释放文件关闭时,保存pe文件和脚本文件;并监测安装释放文件的缩写操作,及时记录安装释放文件路径,跟踪安装软件安装过程中安装释放文件的生成、关闭和移动,减小文件丢失的可能性,使软件顺利安装。
16.在另一种可能的实现方式中,所述方法还包括:获取安装释放文件移动前以及移动后的文件路径;若基于所述安装释放文件移动前的文件路径判断所述安装释放文件属于任一进程的释放文件,则将所述安装释放文件移动后的文件路径写入释放文件路径记录。
17.通过采用上述技术方案,白名单系统监测安装释放文件移动操作,当安装释放文件移动后产生新路径时,白名单系统将安装释放文件移动后的文件路径写入释放文件路径记录,减小文件因移动而丢失的可能性。
18.在另一种可能的实现方式中,所述方法还包括:当所述安装进程结束运行时,将所述安装进程对应的安装进程id从进程链中清除;当所有所述进程链中的进程结束运行时,清除所述安装进程记录。
19.通过采用上述技术方案,白名单系统在安装进程结束时,将安装进程id从进程链中清除,及时释放内存,并且在进程链中所有进程结束运行时,清除安装进程记录等临时文件,避免内存过多造成系统运行困难的问题。
20.在另一种可能的实现方式中,所述方法还包括:若安装进程结束后需要重启系统,推迟系统关机时间直至安装释放文件完全保存至数据库中;若所述当前进程为explorer.exe,不将explorer.exe加入白名单中;若安装进程结束后启动部署进程,将所述部署进程加入白名单。
21.通过采用上述技术方案,白名单系统在重启系统时推迟系统关机时间,为安装释放文件保存至数据库预留时间,减小文件丢失的可能性,并且忽略explorer进程的启动,避免用户在软件安装过程中操作,提高软件安装过程中的安全性,并且将部署进程加入白名单,使软件安装完成后成功部署。
22.第二方面,本技术提供一种基于白名单动态部署软件安装装置,包括:检测模块,用于检测当前进程的进程执行文件路径是否存储于白名单中;创建模块,用于在检测当前进程的进程执行文件路径存储于白名单中时,创建安装进程记录,其中,所述安装进程记录包括当前进程的进程id和安装释放文件路径;查找模块,用于在在检测当前进程的进程执行文件路径未存储于白名单中时,从安装进程记录中查找当前进程的父进程id;第一写入模块,用于若查找到所述父进程id,则将当前进程的进程id和安装释放文件路径写入所述安装进程记录;第一判断模块,用于若未查找到所述父进程id,则判断当前进程的执行文件是否为安装释放文件;第二判断模块,用于确定当前进程的执行文件是安装释放文件时,判断当前进程的父进程是否为特殊信任进程或脚本解释进程;
第二写入模块,用于判断当前进程的执行文件是特殊信任进程或特殊信任进程时,将当前进程id和安装释放文件路径写入所述安装进程记录。
23.通过采用上述技术方案,在安装软件的过程中,基于白名单动态部署软件安装装置记录所有进程id和安装释放文件路径,同时根据进程的进程执行文件是否保存于安装过程记录中或者进程的父子关系,判断当前进程是否可加入到白名单中,在软件安装过程中,完成白名单动态部署,使软件安装进程顺利运行,防止非法程序启动安装释放文件。
24.在另一种可能的实现方式中,安装进程记录包括多个进程链,所述进程链包括至少一个第一进程链,第一写入模块,具体包括:若查找到父进程id,则将当前的进程id写入父进程id之后,生成第一进程链。
25.在另一种可能的实现方式中,安装进程记录包括多个进程链,所述进程链包括第二进程链和第三进程链,第二写入模块,具体包括:若当前进程的父进程是特殊信任进程,则在安装进程记录中创建第二进程链,将当前的进程id写入所述第二进程链;若当前进程的父进程是特殊信任进程,则在安装进程记录中创建第三进程链,将当前的进程id写入所述第三进程链。
26.在另一种可能的实现方式中,安装进程记录包括exe格式和/或msi格式的安装程序文件和第四进程链,基于白名单动态部署软件安装装置还包括:第一安装进程id记录模块,用于当msiexec安装程序载入msi文件生成第一安装进程时,则创建第四进程链,并将所述第一安装进程id写入所述第四进程链;第二安装进程id记录模块,用于当所述msiexec安装程序载入exe文件生成第二安装进程时,则将所述第二安装进程id写入所述第四进程链。
27.在另一种可能的实现方式中,安装进程记录包括用于记录所述安装释放文件路径的释放文件路径记录,基于白名单动态部署软件安装装置还包括:第一记录模块,用于若位于任一进程链中的进程发起释放文件操作,生成安装释放文件,则将所述安装释放文件的文件路径写入释放文件路径记录;第二记录模块,当所述安装释放文件关闭时,若所述安装释放文件为pe文件或脚本文件,则将所述pe文件或脚本文件写入白名单;第三记录模块,用于若基于所述释放文件的文件路径确定对应的文件缩写路径,则将所述释放文件的文件路径和所述文件缩写路径均写入释放文件路径记录。
28.在另一种可能的实现方式中,基于白名单动态部署软件安装装置还包括:移动文件路径获取模块,用于获取安装释放文件移动前以及移动后的文件路径;移动文件记录模块,用于若基于所述安装释放文件移动前的文件路径判断所述安装释放文件属于任一进程的释放文件,则将所述安装释放文件移动后的文件路径写入释放文件路径记录。
29.在另一种可能的实现方式中,基于白名单动态部署软件安装装置还包括:第一清除模块,用于当所述安装进程结束运行时,将所述安装进程对应的安装进程id从进程链中清除;第二清除模块,用于当所有所述进程链中的进程结束运行时,清除所述安装进程记录。
30.在另一种可能的实现方式中,基于白名单动态部署软件安装装置还包括:重启模块,用于若安装进程结束后需要重启系统,推迟系统关机时间直至安装释放文件完全保存至数据库中;处理模块,用于若所述当前进程为explorer.exe,不将explorer.exe加入白名单中;部署模块,用于若安装进程结束后启动部署进程,将所述部署进程加入白名单。
31.第三方面,本技术提供一种电子设备,包括:至少一个处理器;存储器;至少一个应用程序,其中所述至少一个应用程序被存储在所述存储器中并被配置为由所述至少一个处理器执行,所述至少一个应用程序配置用于:执行根据第一方面中任一项所述的一种基于白名单动态部署软件安装方法。
32.通过采用上述技术方案,在安装软件的过程中,处理器加载并执行存储在存储器中的应用程序,记录所有进程id和安装释放文件路径,同时根据进程的进程执行文件是否保存于安装过程记录中或者进程的父子关系,判断当前进程是否可加入到白名单中,在软件安装过程中,完成白名单动态部署,使软件安装进程顺利运行,防止非法程序启动安装释放文件。
33.第四方面,本技术提供一种计算机可读存储介质,存储有能够被处理器加载并执行如第一方面中任一种基于白名单动态部署软件安装方法的计算机程序。
34.通过采用上述技术方案,在安装软件的过程中,处理器加载并执行计算机可读存储介质中的计算机程序,记录所有进程id和安装释放文件路径,同时根据进程的进程执行文件是否保存于安装过程记录中或者进程的父子关系,判断当前进程是否可加入到白名单中,在软件安装过程中,完成白名单动态部署,使软件安装进程顺利运行,防止非法程序启动安装释放文件。
35.综上所述,本技术包括以下至少一种有益技术效果:1.白名单系统在安装软件的过程中,记录所有进程id和安装释放文件路径,同时根据进程的进程执行文件是否保存于安装过程记录中或者进程的父子关系,判断当前进程是否可加入到白名单中,在软件安装过程中,完成白名单动态部署,使软件安装进程顺利运行,防止非法程序启动安装释放文件;2.第一进程链用于记录进程的父子关系,便于通过进程的父子关系确定子进程是否加入到白名单中,更完整地记录安装过程。
附图说明
36.图1是本技术实施例中一种基于白名单动态部署软件安装方法的流程示意图。
37.图2是本技术实施例中进程链的结构示意图。
38.图3是本技术实施例中基于白名单动态部署软件安装装置的结构示意图。
39.图4是本技术实施例中电子设备的结构示意图。
具体实施方式
40.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
41.另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
42.本技术实施例公开一种基于白名单动态部署软件安装方法。由电子设备执行,具体是由安装在电子设备上的白名单系统执行,参照图1,方法包括:步骤s101:检测当前进程的进程执行文件路径是否存储于白名单中,若是,则执行步骤s102;否则,执行步骤s103。
43.具体地,待安装的软件安装包上传至服务器上后,管理员查看安装包并确认安全后,保存安装包,安装包则被添加至白名单中,安装包可合法运行。
44.安装包运行时,可生成多个进程和/或多个安装释放文件,其中释放文件包括可执行文件、脚本文件等,安装释放文件均保存于白名单中。其中,安装包生成的进程可以直接运行,而此时生成的多个进程id、进程的执行文件路径和/或多个安装释放文件路径均未保存于白名单中,因此需要进一步处理。
45.若白名单系统检测当前进程的进程执行文件路径存储于白名单中,则当前进程为运行安装包的进程,白名单系统则执行步骤s102;否则,当前进程为运行安装包以后产生的新进程,需要进一步判断新进程是否与安装软件相关,则执行步骤s103。
46.步骤s102:创建安装进程记录,其中,安装进程记录包括当前进程的进程id和安装释放文件路径。
47.具体地,白名单系统在监测到安装包启动时,判断安装包是否是合法启动的,即再次确认安装包是否在白名单中,若确定安装包合法,则创建安装过程记录。
48.安装过程记录用于记录安装包在安装过程中的安装程序文件、安装进程id以及释放文件路径记录,全面记录软件安装过程,使安装过程成功完成。
49.步骤s103:从安装进程记录中查找当前进程的父进程id。
50.参照图2,例如,部署程序名叫install.exe,它在运行过程中释放了step1.exe并运行它,则step1.exe为install.exe的子程序。而安装进程记录中记录了安装软件过程中的进程id,因此白名单系统可以根据当前进程id查找对应的父进程id。
51.若查找到父进程id,则执行步骤s104;否则,执行步骤s105。
52.步骤s104:将当前进程的进程id和安装释放文件路径写入安装进程记录。
53.具体地,若白名单系统在安装进程记录中查找到父进程id,则当前进程由其父进程生成,即当前进程是由合法进程生成的,则可以认为当前进程也可以写入安装进程记录。
54.步骤s105:判断当前进程的执行文件是否为安装释放文件;若是安装释放文件,则执行步骤s106;否则,不操作。
55.具体地,软件安装过程中,安装进程生成的安装释放文件路径均保存至安装进程记录中,因此白名单系统可以将当前进程的执行文件路径与安装进程记录中的安装释放文
件路径对比,若对比一致,则确定当前进程的执行文件是安装释放文件。
56.步骤s106:判断当前进程的父进程是否为特殊信任进程或脚本解释进程;若是特殊信任进程或脚本解释进程,则执行步骤s107;否则,不操作。
57.步骤s107:将当前进程id和安装释放文件路径写入安装进程记录。
58.具体地,在软件安装过程中,会有部署程序通过特定系统程序服务运行程序的问题,特殊信任进程可以是services.exe、svchost.exe(service host)、conhost.exe(console host process)等系统启动程序中任一种,为了使安装过程顺利完成,当白名单系统确定父进程为特殊信任进程时,则将当前进程id写入安装进程记录,即记录在白名单中,使安装过程顺利进行。若白名单系统在判断安装释放文件被非法程序运行后,不对当前安装进程做出操作,则当前进程不会被加入到白名单中,提高安装过程安全性。
59.或者白名单系统判断父进程为脚本解释程序时,则父进程载入了安装过程释放的脚本文件,则将当前进程id写入安装进程记录,即记录在白名单中,使安装过程顺利进行。若白名单系统在判断脚本文件被非法程序运行后,不对当前进程做出操作,则当前进程不会被加入到白名单中,提高安装过程安全性。
60.若进程运行过程中产生安装释放文件,则将安装释放文件路径写入释放文件路径记录中。
61.本技术提供一种基于白名单动态部署软件安装方法的实施原理为:白名单系统判断当前进程的进程执行文件路径是否存储于白名单中,若是,则创建安装进程记录,将当前进程id和安装过程产生的安装释放文件路径保存入安装进程记录。若当前进程的进程执行文件未保存于白名单中,则白名单系统在安装进程记录中查找当前进程的父进程id,若父进程id保存在安装进程记录中,则将当前进程id写入安装进程记录,若未查找到父进程id,则进一步判断当前进程的执行文件是否为安装释放文件,若是,则判断当前进程的父进程是否为特殊信任进程或脚本解释进程,若是,则将当前进程id写入安装进程记录。白名单系统在安装软件的过程中,记录所有进程id和安装释放文件路径,同时根据进程的进程执行文件是否保存于安装过程记录中或者进程的父子关系,判断当前进程是否可加入到白名单中,在软件安装过程中,完成白名单动态部署,使软件安装进程顺利运行,防止非法程序启动安装释放文件。
62.在另一种可能的实现方式中,安装进程记录包括多个进程链,进程链包括至少一个第一进程链,白名单系统若查找到父进程id,执行步骤s104将当前进程的进程id和安装释放文件路径写入安装进程记录时,具体包括:若查找到父进程id,则将当前的进程id写入父进程id之后,生成第一进程链。
63.具体地,安装进程记录还包括若干个进程链,进程链用于记录安装进程之间的关系,若白名单系统确定父进程id属于某个安装过程记录,即父进程记录在白名单中,因此当前安装进程也可以加入白名单中,并且为了便于查询安装进程的父子关系,将当前安装进程id写入父进程id之后,生成记录进程父子关系的第一进程链,不仅可以清楚定位各个安装进程的位置,还可以防止文件在移动的过程中丢失。
64.参照图2,例如,一个部署程序名叫install.exe,它在运行过程中释放了step1.exe并运行它,则install.exe为step1.exe的父进程,将step1.exe的id写入install.exe的id之后,生成第一进程链。
65.在另一种可能的实现方式中,,为了便于区分记录通过不同来源产生的安装进程,若当前进程的父进程是特殊信任进程或脚本解释进程,安装进程记录包括多个进程链,进程链包括第二进程链和第三进程链,步骤s107将当前进程id写入安装进程记录,包括(步骤s1071~步骤s1072)(图中未示出):步骤s1071:若当前进程的父进程是特殊信任进程,则在安装进程记录中创建第二进程链,将当前的进程id写入第二进程链。
66.步骤s1072:若当前进程的父进程是脚本解释进程,则在安装进程记录中创建第三进程链,将当前的进程id写入第三进程链。
67.具体地,若根据当前进程的父进程的类别不同,则白名单系统根据类别分别记录当前进程id,提高进程链的记录精度。
68.参照图2,例如,若services.exe运行了安装释放文件a生成step2.exe,则将step2.exe的id写入第二进程链。若脚本解释程序运行了安装释放文件b生成step3.exe,则将step3.exe的id写入第三进程链。
69.在另一种可能的实现方式中,,安装进程记录包括exe格式和/或msi格式的安装程序文件以及多个进程链,进程链包括第四进程链,在安装程序过程中,可能会有exe格式和msi格式的安装程序文件相互嵌套执行的问题,上述方法还包括(步骤s11~步骤s12)(图中未示出):步骤s11:若msiexec安装程序载入msi文件生成第一安装进程,则创建第一进程链,并将第一安装进程写入第四进程链。
70.步骤s12:若msiexec安装程序载入exe文件生成第二安装进程,则将第二安装进程写入第四进程链。
71.具体地,第一进程链的开头元素是载入msi格式的安装程序文件的msiexec进程,以后一旦msiexec安装程序再启动其他exe形式的安装程序文件,白名单系统也将对应的第二安装进程写入第四进程链。记录载入相互嵌套的exe格式文件和msi格式文件的进程路径,避免软件安装过程中文件遗漏。
72.参照图2,例如,部署程序install.exe在运行过程中,又释放了depmsi.msi文件并启动它,depmsi.msi的安装过程中又释放并启动了step4.exe,msiexec.exe表示启动depmsi.msi的进程。白名单系统则将depmsi.exe写入第四进程链,并且也将step4.exe写入depmsi.exe之后。
73.进一步地,安装进程记录包括用于记录安装释放文件路径的释放文件路径记录,方法还包括(步骤s21~步骤s23)(图中未示出):步骤s21:若位于任一进程链中的进程发起释放文件操作,生成安装释放文件,则将安装释放文件的文件路径写入释放文件路径记录。
74.具体地,安装程序可能通过两种方式释放文件,即文件写入和扇区拷贝。其中,文件写入通过irp_mj_write事件处理,扇区拷贝通过irp_mj_acquire_for_section_synchronization事件处理。
75.当白名单系统监测上述两种文件操作由某个进程链中的进程发起时,则载入安装释放文件的安装程序为合法程序,因此将释放文件的文件路径录入释放文件路径记录。
76.步骤s22:当安装释放文件关闭时,若安装释放文件为pe文件或脚本文件,则将pe
文件或脚本文件写入白名单。
77.具体地,文件关闭操作通过irp_mj_cleanup事件处理,在进程开始运行时,安装过程记录记录进程id,并监测进程的运行。当进程安装释放文件中的pe文件和脚本文件是软件运行需要使用的文件,因此在安装释放文件关闭时,将pe文件和脚本文件保存至白名单中,使软件可顺利运行。
78.步骤s23:若确定安装释放文件的文件路径被缩写成缩写路径,则将安装释放文件的文件路径和缩写路径均写入释放文件路径记录。
79.具体地,如果安装释放文件在被释放到例如“program files(x86)”这样的路径中,文件路径有时可能会被缩写成类似“prog~2”的形式,为了完整记录所有的安装释放文件,减小文件丢失的情况,白名单系统将安装释放文件的完整路径和缩写路径均写入释放文件路径记录中。
80.进一步地,软件安装过程中,安装释放文件可能会发生移动,为了提高记录安装释放文件的准确性,上述方法还包括:获取释放文件移动前以及移动后的文件路径;若基于释放文件移动前的文件路径判断释放文件属于任一安装进程的释放文件,则将释放文件移动后的文件路径写入任一安装进程的释放的文件路径记录。
81.具体地,若释放文件发生移动,白名单系统通过irp_mj_set_information事件得知文件移动行为,并得到文件移动前和移动后的路径。并且移动前的释放文件属于任一安装进程,则当前释放文件已保存至白名单中,是合法运行的,因此白名单系统将释放文件移动后的路径也写入相应安装进程的释放的文件路径记录中。白名单系统跟踪移动的释放文件,减小文件丢失的可能性。
82.进一步地,白名单系统一般在安装释放文件关闭时判断安装释放文件是否为脚本文件,并将脚本文件加入白名单中,而文件移动不会伴随文件关闭行为,因此白名单系统需要在处理文件移动的步骤中判断安装释放文件是否是脚本文件,若是,则加入白名单。
83.进一步地,白名单系统通过set_information事件得到的目标路径是用户态的格式,如“c:\program files\software
…”
,需要把它转换成内核态的格式(如“\device\harddiskvolume1\program files\software
…”
),以便与其他部分的逻辑保持一致。
84.进一步地,白名单的数据需要保存到数据库中。而驱动无法直接保存数据库,只能将安装释放文件信息保存至自身内存记录中。因此白名单驱动需要将安装释放文件路径、特征值等信息通知一个用户态程序,用户态程序将数据保存至数据库。当系统再次启动时,该用户态程序可以从数据库中取出白名单数据并提供给驱动。驱动和应用程序之间通过minifilter框架提供的flt communication port方式通信。
85.进一步地,为了在软件安装结束后,释放内存,上述方法还包括(步骤s31~步骤s32)(图中未示出):步骤s31:当安装进程结束运行时,将安装进程对应的安装进程id从进程链中清除。
86.具体地,白名单系统可以在程序运行过程中随时监测安装进程的运行,当某一安装进程结束时,白名单系统及时将安装进程从进程链中清除,及时释放内存,提高运行速度。
87.步骤s32:当所有进程链中的进程结束运行时,清除安装进程记录。
88.具体地,安装进程记录为软件安装过程中临时创建的文件,当安装进程结束后,软件运行需要的文件保存至白名单中,软件可以正常运行。而白名单系统清除作为临时性文件的安装进程记录后,可以及时释放内存,提高系统运行速度。
89.进一步地,白名单系统在判断安装结束时,需要对一些部署程序做特殊处理,上述方法还包括(步骤s41~步骤s43)(图中未示出):步骤s41:若安装进程结束后需要重启系统,推迟系统关机时间直至安装释放文件完全保存至数据库中。
90.具体地,若软件安装完成后需要重启系统,而此时安装释放文件信息可能并未完全保存至数据库中,为了防止在关闭系统时丢失软件数据,白名单系统推迟系统关机时间,将安装释放文件完全保存至数据库中。
91.步骤s42:若当前进程为explorer.exe,不将explorer.exe加入白名单中。
92.具体地,软件安装完成后,与explorer.exe有关的设置须等待explorer.exe重启后才能生效。因此许多软件在安装完成之后必须重启计算机才能使软件运行环境生效。
93.如果把exploer.exe加入白名单系统,意味着explorer.exe可以启动任意程序。如果把explorer.exe加入进程链,意味着在某个程序安装期间用户也可以通过桌面操作运行任意程序,影响软件正常安装。因此白名单系统不能将exploer.exe加入白名单。
94.步骤s43:若安装进程结束后启动部署进程,将部署进程加入白名单。
95.具体地,部署进程表现为安装进程的子进程,白名单系统通过部署进程id判断部署进程属于软件安装的一部分,因此白名单系统无法确定安装过程结束。因此,白名单系统在确定进程链中的安装进程结束后且部署程序启动时,经部署进程加入白名单,白名单保护软件的正常部署安装。
96.为了更好执行上述方法,本技术实施例提供一种基于白名单动态部署软件安装装置,参照图3,基于白名单动态部署软件安装装置200,包括:检测模块201,用于检测当前进程的进程执行文件路径是否存储于白名单中;创建模块202,用于在检测当前进程的进程执行文件路径存储于白名单中时,创建安装进程记录,其中,安装进程记录包括当前进程的进程id和安装释放文件路径;查找模块203,用于在在检测当前进程的进程执行文件路径未存储于白名单中时,从安装进程记录中查找当前进程的父进程id;第一写入模块204,用于若查找到父进程id,则将当前进程的进程id和安装释放文件路径写入安装进程记录;第一判断模块205,用于若未查找到父进程id,则判断当前进程的执行文件是否为安装释放文件;第二判断模块206,用于确定当前进程的执行文件是安装释放文件时,判断当前进程的父进程是否为特殊信任进程或脚本解释进程;第二写入模块207,用于判断当前进程的执行文件是特殊信任进程或特殊信任进程时,将当前进程id和安装释放文件路径写入安装进程记录。
97.在另一种可能的实现方式中,安装进程记录包括多个进程链,进程链包括至少一个第一进程链,第一写入模块204,具体包括:若查找到父进程id,则将当前的进程id写入父进程id之后,生成第一进程链。
98.在另一种可能的实现方式中,安装进程记录包括多个进程链,进程链包括第二进程链和第三进程链,第二写入模块207,具体包括:若当前进程的父进程是特殊信任进程,则在安装进程记录中创建第二进程链,将当前的进程id写入第二进程链;若当前进程的父进程是特殊信任进程,则在安装进程记录中创建第三进程链,将当前的进程id写入第三进程链。
99.在另一种可能的实现方式中,安装进程记录包括exe格式和/或msi格式的安装程序文件和第四进程链,基于白名单动态部署软件安装装置200还包括:第一安装进程id记录模块,用于当msiexec安装程序载入msi文件生成第一安装进程时,则创建第四进程链,并将第一安装进程id写入第四进程链;第二安装进程id记录模块,用于当msiexec安装程序载入exe文件生成第二安装进程时,则将第二安装进程id写入第四进程链。
100.在另一种可能的实现方式中,安装进程记录包括用于记录安装释放文件路径的释放文件路径记录,基于白名单动态部署软件安装装置200还包括:第一记录模块,用于若位于任一进程链中的进程发起释放文件操作,生成安装释放文件,则将安装释放文件的文件路径写入释放文件路径记录;第二记录模块,当安装释放文件关闭时,若安装释放文件为pe文件或脚本文件,则将pe文件或脚本文件写入白名单;第三记录模块,用于若基于释放文件的文件路径确定对应的文件缩写路径,则将释放文件的文件路径和文件缩写路径均写入释放文件路径记录。
101.在另一种可能的实现方式中,基于白名单动态部署软件安装装置200还包括:移动文件路径获取模块,用于获取安装释放文件移动前以及移动后的文件路径;移动文件记录模块,用于若基于安装释放文件移动前的文件路径判断安装释放文件属于任一进程的释放文件,则将安装释放文件移动后的文件路径写入释放文件路径记录。
102.在另一种可能的实现方式中,基于白名单动态部署软件安装装置200还包括:第一清除模块,用于当安装进程结束运行时,将安装进程对应的安装进程id从进程链中清除;第二清除模块,用于当所有进程链中的进程结束运行时,清除安装进程记录。
103.在另一种可能的实现方式中,基于白名单动态部署软件安装装置200还包括:重启模块,用于若安装进程结束后需要重启系统,推迟系统关机时间直至安装释放文件完全保存至数据库中;处理模块,用于若当前进程为explorer.exe,不将explorer.exe加入白名单中;部署模块,用于若安装进程结束后启动部署进程,将部署进程加入白名单。
104.前述实施例中的方法中的各种变化方式和具体实例同样适用于本实施例的基于白名单动态部署软件安装装置,通过前述对基于白名单动态部署软件安装方法的详细描述,本领域技术人员可以清楚的知道本实施例中的基于白名单动态部署软件安装装置的实施方法,所以为了说明书的简洁,在此不再详述。
105.为了更好地实施以上方法,本技术实施例提供一种电子设备,参照图4,电子设备
300包括:处理器301、存储器303和显示器305。其中,处理器301分别和存储器303以及显示器305相连,如通过通信总线302相连。可选地,电子设备300还可以包括收发器304,需要说明的是,实际应用中收发器304不限于一个。该电子设备300的结构并不构成对本技术实施例的限定。
106.处理器301可以是cpu(central processing unit,中央处理器),通用处理器,dsp(digital signal processor,数据信号处理器),asic(application specific integrated circuit,专用集成电路),fpga(field programmable gate array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本技术公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器301也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等。
107.总线302可包括一通路,在上述组件之间传送信息。总线302可以是pci(peripheral component interconnect,外设部件互连标准)总线或eisa(extended industry standard architecture,扩展工业标准结构)总线等。总线302可以分为地址总线、数据总线、控制总线等。
108.存储器303可以是rom(read only memory,只读存储器)或可存储静态信息和指令的其他类别的静态存储设备,ram(random access memory,随机存取存储器)或者可存储信息和指令的其他类别的动态存储设备,也可以是eeprom(electrically erasable programmable read only memory,电可擦可编程只读存储器)、cd-rom(compact disc read only memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
109.存储器303用于存储执行本技术方案的应用程序代码,并由处理器301来控制执行。处理器301用于执行存储器303中存储的应用程序代码,以实现前述方法实施例所示的内容。
110.图4示出的电子设备300仅仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。
111.本技术实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的一种基于白名单动态部署软件安装方法,判断当前进程的进程执行文件路径是否存储于白名单中,若是,则创建安装进程记录,将当前进程id和安装过程产生的安装释放文件路径保存入安装进程记录。若当前进程的进程执行文件未保存于白名单中,则白名单系统在安装进程记录中查找当前进程的父进程id,若父进程id保存在安装进程记录中,则将当前进程id写入安装进程记录,若未查找到父进程id,则进一步判断当前进程的执行文件是否为安装释放文件,若是,则判断当前进程的父进程是否为特殊信任进程或脚本解释进程,若是,则将当前进程id写入安装进程记录。在安装软件的过程中,处理器记录所有进程id和安装释放文件路径,同时根据进程的进程执行文件是否保存于安装过程记录中或者进程的父子关系,判断当前进程是否可加入到白名单中,在软件安装过程中,完成白名单动态部署,使软件安装进程顺利运行,防止非法程序启动安装释放文件。
112.本实施例中,计算机可读存储介质可以是保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意组合。具体的,计算机可读存储介质可以是便携式计算机盘、硬盘、u盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、讲台随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、光盘、磁碟、机械编码设备以及上述任意组合。
113.本实施例中的计算机程序包含用于执行前述所有的方法的程序代码,程序代码可包括对应执行上述实施例提供的方法步骤对应的指令。计算机程序可从计算机可读存储介质下载到各个计算/处理设备,或者通过网络(例如因特网、局域网、广域网和/或无线网)下载到外部计算机或外部存储设备。计算机程序可完全地在用户计算机上执行、作为一个独立的软件包执行。
114.以上均为本技术的较佳实施例,并非依此限制本技术的保护范围,故:凡依本技术的结构、形状、原理所做的等效变化,均应涵盖于本技术的保护范围之内。
115.另外,需要理解的是,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1