一种应用程序启动控制方法和装置与流程

文档序号:18901222发布日期:2019-10-18 21:58阅读:212来源:国知局
一种应用程序启动控制方法和装置与流程

本发明涉及监控领域,尤其涉及监控领域中一种应用程序启动控制方法和装置。



背景技术:

对于应用程序启动控制方法,最常见的就是杀毒软件。杀毒软件是一种黑名单控制方法,限制黑名单内的程序的执行权限,黑名单之外的程序一律允许执行。这就对黑名单库提出了很高的要求,黑名单不够全面,杀毒软件就起不到保护主机安全的功能。因此,黑名单库必须具有高覆盖性而且及时更新。然而,黑名单库必然滞后于病毒的生成,对于新生病毒无法首先启到保护作用;而且对于局域网环境下,黑名单库更新不及时,更无法起到防护作用。而白名单控制则正好相反,对于新生的未知程序,白名单防护可以阻止程序运行,从而比黑名单防护起到更加严苛的防护效果。



技术实现要素:

本发明要解决的技术问题是提供一种应用程序启动控制方法,能够保护系统安全。

为了解决上述技术问题,本发明实施例提供了一种应用程序启动控制方法,包括:

当检测到应用程序启动时,拦截应用程序启动消息,根据所述应用程序启动消息获取所述应用程序的数字签名、路径和sha1;其中,所述应用程序的sha1指根据安全哈希算法sha1对应用程序的文件进行计算得到的值;

根据所述应用程序的数字签名、路径和sha1匹配第一控制策略,当所述数字签名、路径或sha1与第一控制策略匹配时,则根据第一控制策略确定启动或禁止启动所述应用程序;

当所述数字签名、路径和sha1与第一控制策略不匹配时,判断所述应用程序的路径和sha1与预设的应用程序清单是否匹配;若所述应用程序与预设的应用程序清单匹配且所述应用程序的清单级别为黑名单、白名单或灰名单,则根据第二控制策略确定启动或禁止启动所述应用程序;若所述应用程序与预设的应用程序清单匹配且所述应用程序的清单级别为未知,或者所述应用程序与预设的应用程序清单不匹配,则根据第三控制策略确定启动或禁止启动所述应用程序;其中,所述应用程序的清单级别指所述应用程序处在预设的应用程序清单中的级别,所述级别包括黑名单、白名单、灰名单和未知。

一种示例性的实施例中,上述方法还具有下面特点:

当所述数字签名、路径或sha1与第一控制策略匹配时,则根据第一控制策略确定启动或禁止启动所述应用程序,包括:

判断所述数字签名是否有效;

若所述数字签名有效,则启动所述应用程序;

若所述数字签名无效,则判断所述路径是否为预设的信任路径;

若所述路径为信任路径,则启动所述应用程序;

若所述路径不为信任路径,则判断所述应用程序是否为预设的信任程序;

若所述应用程序为预设的信任程序,则启动所述应用程序;

若所述应用程序为预设的非法程序,则禁止启动所述应用程序;

其中,所述信任路径指当启动的是该路径下的应用程序时就启动该应用程序。

一种示例性的实施例中,上述方法还具有下面特点:

所述拦截应用程序启动消息,包括:

通过基于内核hook技术拦截应用程序启动消息;

所述数字签名、路径和sha1与第一控制策略不匹配,包括:

若所述应用程序不为预设的信任程序和预设的非法程序,则判断所述数字签名、路径和sha1与第一控制策略不匹配;

判断所述应用程序是否为预设的信任程序,包括:所述应用程序是否为信任路径下的应用程序或应用程序的sha1是否与预设的sha1一致。

一种示例性的实施例中,上述方法还具有下面特点:

判断所述应用程序的路径和sha1与预设的应用程序清单是否匹配;若所述应用程序与预设的应用程序清单匹配且所述应用程序的清单级别为黑名单、白名单或灰名单,则根据第二控制策略确定启动或禁止启动所述应用程序,包括:

当所述路径与预设的应用程序清单中的某一路径一致,且所述sha1与所述应用程序清单中的某一sha1一致时,确定所述应用程序与所述应用程序清单匹配;

若确定所述应用程序与所述应用程序清单匹配且所述应用程序的清单级别为黑名单,则禁止启动所述应用程序;若确定所述应用程序与所述应用程序清单匹配且所述应用程序的清单级别为白名单或灰名单,则启动所述应用程序。

一种示例性的实施例中,上述方法还具有下面特点:

若所述应用程序与预设的应用程序清单匹配且所述应用程序的清单级别为未知,或者所述应用程序与预设的应用程序清单不匹配,则根据第三控制策略确定启动或禁止启动所述应用程序,包括:

当所述应用程序的清单级别为未知或者所述应用程序与预设的应用程序清单不匹配,且预设的防御模式为正常时,禁止启动所述应用程序;

当所述应用程序与预设的应用程序清单不匹配,且预设的防御模式为监控或停止时,启动所述应用程序。

为了解决上述问题,本发明还提供了一种应用程序启动控制装置,包括:

存储器和处理器;

所述存储器,用于保存用于应用程序启动控制的程序;

所述处理器,用于读取执行所述用于应用程序启动控制的程序,执行如下操作:

当检测到应用程序启动时,拦截应用程序启动消息,根据所述应用程序启动消息获取所述应用程序的数字签名、路径和sha1;其中,所述应用程序的sha1指根据安全哈希算法sha1对应用程序的文件进行计算得到的值;

根据所述应用程序的数字签名、路径和sha1匹配第一控制策略,当所述数字签名、路径或sha1与第一控制策略匹配时,则根据第一控制策略确定启动或禁止启动所述应用程序;

当所述数字签名、路径和sha1与第一控制策略不匹配时,判断所述应用程序的路径和sha1与预设的应用程序清单是否匹配;若所述应用程序的与预设的应用程序清单匹配且所述应用程序的清单级别为黑名单、白名单或灰名单,则根据第二控制策略确定启动或禁止启动所述应用程序;若所述应用程序与预设的应用程序清单匹配且所述应用程序的清单级别为未知,或者所述应用程序与预设的应用程序清单不匹配,则根据第三控制策略确定启动或禁止启动所述应用程序;其中,所述应用程序的清单级别指所述应用程序处在预设的应用程序清单中的级别,所述级别包括黑名单、白名单、灰名单和未知。

一种示例性的实施例中,上述装置还具有下面特点:

当所述数字签名、路径或sha1与第一控制策略匹配时,则根据第一控制策略确定启动或禁止启动所述应用程序,包括:

判断所述数字签名是否有效;

若所述数字签名有效,则启动所述应用程序;

若所述数字签名无效,则判断所述路径是否为预设的信任路径;

若所述路径为信任路径,则启动所述应用程序;

若所述路径不为信任路径,则判断所述应用程序是否为预设的信任程序;

若所述应用程序为预设的信任程序,则启动所述应用程序;

若所述应用程序为预设的非法程序,则禁止启动所述应用程序;

其中,所述信任路径指当启动的是该路径下的应用程序时就启动该应用程序。

一种示例性的实施例中,上述装置还具有下面特点:

所述拦截应用程序启动消息,包括:

通过基于内核hook技术拦截应用程序启动消息;

所述数字签名、路径和sha1与第一控制策略不匹配,包括:

若所述应用程序不为预设的信任程序和预设的非法程序,则判断所述数字签名、路径和sha1与第一控制策略不匹配;

判断所述应用程序是否为预设的信任程序,包括:所述应用程序是否为信任路径下的应用程序或应用程序的sha1是否与预设的sha1一致。

一种示例性的实施例中,上述装置还具有下面特点:

判断所述应用程序的路径和sha1与预设的应用程序清单是否匹配;若所述应用程序与预设的应用程序清单匹配且所述应用程序的清单级别为黑名单、白名单或灰名单,则根据第二控制策略确定启动或禁止启动所述应用程序,包括:

当所述路径与预设的应用程序清单中的某一路径一致,且所述sha1与所述应用程序清单中的某一sha1一致时,确定所述应用程序与所述应用程序清单匹配;

若所述应用程序与所述应用程序清单匹配且所述应用程序的清单级别为黑名单,则禁止启动所述应用程序;若所述应用程序与所述应用程序清单匹配且所述应用程序的清单级别为白名单或灰名单,则启动所述应用程序。

一种示例性的实施例中,上述装置还具有下面特点:

若所述应用程序与预设的应用程序清单匹配且应用程序清单级别为未知或者所述应用程序与预设的应用程序清单不匹配,则根据第三控制策略确定启动或禁止启动所述应用程序,包括:

当所述应用程序的清单级别为未知或者所述应用程序与预设的应用程序清单不匹配,且预设的防御模式为正常时,禁止启动所述应用程序;

当所述应用程序与预设的应用程序清单不匹配,且预设的防御模式为监控或停止时,启动所述应用程序。

综上,本发明实施例提供的应用程序启动控制方法和装置,综合决策逻辑,控制决策更灵活,保护了系统安全。

附图说明

图1为根据本发明实施例的应用程序启动控制方法的示意图。

图2为根据本发明实施例的高级策略匹配逻辑的示意图。

图3为根据本发明实施例的应用程序清单匹配逻辑的示意图。

图4为根据本发明实施例的应用程序整体决策逻辑的示意图。

图5为根据本发明实施例的应用程序启动控制装置的示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

图1为本发明实施例的应用程序启动控制方法的示意图,如图1所示,本实施例的应用程序启动控制方法包括:

s11、当检测到应用程序启动时,拦截应用程序启动消息,根据所述应用程序启动消息获取所述应用程序的数字签名、路径和sha1。

内核通过hook技术,创建进程,以及创建预处理回调,在应用程序启动前拦截启动消息,可以获知应用程序的数字签名或证书、路径和sha1。

其中,hook技术又叫做钩子函数,在系统没有调用该函数之前,钩子程序就先捕获该消息,钩子函数先得到控制权,这时钩子函数既可以加工处理(改变)该函数的执行行为,还可以强制结束消息的传递。简单来说,就是把系统的程序拉出来变成我们自己执行代码片段。

其中,数字签名是微软提供的,用于验证文件可靠性。所述应用程序的sha1指根据安全哈希算法对应用程序的文件进行计算得到的值,sha1对于每个应用程序都有不同的值。本发明中的sha1也可为根据sha1或sha256或其它哈希算法对应用程序的文件进行计算得到的值。路径是指应用程序的可执行文件的路径。

s12、根据所述应用程序的数字签名、路径和sha1匹配第一控制策略,当所述数字签名、路径或sha1与第一控制策略匹配时,则根据第一控制策略确定启动或禁止启动所述应用程序。

一种可选实施方式中,当所述数字签名、路径和sha1与第一控制策略匹配时,则根据第一控制策略确定启动或禁止启动所述应用程序,包括:

判断所述数字签名是否有效;

若所述数字签名有效,则启动所述应用程序;

若所述数字签名无效,则判断所述路径是否为预设的信任路径;

若所述路径为信任路径,则启动所述应用程序;

若所述路径不为信任路径,则判断所述应用程序是否为预设的信任程序;

若所述应用程序为预设的信任程序,则启动所述应用程序;

若所述应用程序为预设的非法程序,则禁止启动所述应用程序;

其中,所述信任路径指当启动的是该路径下的应用程序时就启动该应用程序。

其中,判断所述应用程序是否为预设的信任程序,包括:所述应用程序是否为信任路径下的应用程序或应用程序的sha1是否与预设的sha1一致。

s13、当所述数字签名、路径和sha1与第一控制策略不匹配时,判断所述应用程序的路径和sha1与预设的应用程序清单是否匹配;若所述应用程序与预设的应用程序清单匹配且所述应用程序的清单级别为黑名单、白名单或灰名单,则根据第二控制策略确定启动或禁止启动所述应用程序;若所述应用程序与预设的应用程序清单匹配且所述应用程序的清单级别为未知,或者所述应用程序与预设的应用程序清单不匹配,则根据第三控制策略确定启动或禁止启动所述应用程序。

一种可选实施方式中,其中,所述应用程序的清单级别指所述应用程序处在预设的应用程序清单中的级别,所述级别包括黑名单、白名单、灰名单和未知。若所述应用程序不为信任程序和非法程序,则判断所述数字签名、客体路径和sha1与第一控制策略不匹配。可以预先指定何种路径或sha1或sha256为何的程序允许运行,这些程序都属于信任程序。也可以预先指定何种路径或sha1或sha256为何的程序禁止运行,这些程序都属于非法程序。例如:\a.exe禁止运行、sha1为2fd4e1c67a2d28fced849ee1bb76e7391b93eb12的应用程序允许运行等。

一种可选实施方式中,判断所述应用程序与预设的应用程序清单是否匹配;若所述应用程序与预设的应用程序清单匹配且应用程序清单包括黑名单、白名单和灰名单,则根据第二控制策略确定启动或禁止启动所述应用程序,包括:

当所述客体路径预设的应用程序清单中的某一路径一致,且所述sha1与所述应用程序清单中的某一sha1一致时,确定所述应用程序与所述应用程序清单匹配;

若确定所述应用程序与所述应用程序清单中的黑名单匹配,则禁止启动所述应用程序;若确定所述应用程序与所述应用程序清单中的白名单或灰名单匹配,则启动所述应用程序。

在联网环境下,应用程序清单通过互联网大数据获取,存储于清单库服务器中,任何联网主机都可以连接清单库服务器,即时获取清单数据。在局域网环境中,清单可以离线导入,即通过清单库服务器导出清单数据文件,为局域网环境预制清单。清单数据与本机匹配后,记录该主机上所有的应用程序的路径、sha1或sha256、清单级别信息。清单级别可配置。清单级别包括黑名单、白名单、灰名单以及未知。

“白名单”的概念与“黑名单”相对应。例如:在电脑系统里,有很多软件都应用到了黑白名单规则,操作系统、防火墙、杀毒软件、邮件系统、应用软件等,凡是涉及到控制方面几乎都应用了黑白名单规则。白名单是设置了允许的行为,白名单以外的行为都不能执行。黑名单是设置不能执行的行为,黑名单以外的行为都能执行。一般将运行严重影响主机安全的应用程序列入黑名单中,将经过认证,可以安全运行的应用程序列入白名单中,将未经认证,无法确定运行是否应用主机安全的应用程序列入灰名单中,将清单采集后生成的,完全未知的程序列入未知名单中。黑名单、白名单、灰名单与未知名单界定的标准是清单库建立的时间点,清单生成前主机已经存在的应用程序为黑名单、白名单或灰名单,清单生成之后新生成的程序为未知,加入到未知名单中。

一种可选实施方式中,若所述应用程序与预设的应用程序清单匹配且应用程序清单级别为未知或者所述应用程序与预设的应用程序清单不匹配,则根据第三控制策略确定启动或禁止启动所述应用程序,包括:

当所述应用程序清单级别为未知或者所述应用程序与预设的应用程序清单不匹配,且预设的防御模式为正常时,禁止启动所述应用程序;

当所述应用程序与预设的应用程序清单不匹配,且预设的防御模式为监控或停止时,启动所述应用程序。

其中,预设的防御模式包括正常、监控和停止三种,防御模式为正常表示根据策略启动或拦截程序,防御模式为监控表示只监控行为,不拦截,防御模式为停止表示功能关闭。

图2为本发明实施例的高级策略匹配逻辑的示意图。

高级策略包括三种策略:数字签名(标记应用程序的文件的归属公司及合法性)、信任路径(该路径下的应用程序可以运行)、信任/非法程序。

高级策略的匹配逻辑如下:

a)证书签名、信任路径、信任/非法程序匹配优先级依次降低;

b)遍历高级策略,如图2所示。第一优先级,当应用程序的文件存在证书且证书有效,高级策略决策为准许(access);

c)第二优先级,当客体路径在信任路径中时,高级策略决策为准许(access);

d)第三优先级,当客体路径或者sha1与信任/非法程序相同时,根据信任/非法程序的决策做出高级策略的决策,即准许或禁止(access或forbid);

e)第四优先级,当客体路径或者sha1与信任/非法程序不相同时,高级策略决策为不匹配(notmatched)。

图3为本发明实施例的应用程序清单匹配逻辑的示意图。

应用程序清单匹配逻辑如下:

a)如图1所示,遍历应用程序清单,优先匹配程序路径,而后匹配程序的sha1;

b)当且仅当路径一致且sha1一致时,根据应用程序清单匹配逻辑匹配为准确匹配(exactmatch);

c)当程序路径匹配失败时,根据应用程序清单匹配逻辑匹配为新生程序,即newfile;清单采集后生成的,完全未知的程序;

d)当程序路径一致,sha1不一致时,根据应用程序清单匹配逻辑匹配为被篡改的程序(modifymatch)。

图4为本发明实施例的应用程序整体决策逻辑的示意图。

本发明实施例的应用程序整体决策逻辑如下:

a)应用程序启动与否由高级策略、清单策略、防御模式做出综合决策,优先级依次降低。

b)第一优先级,匹配高级策略。当高级策略决策为准许或禁止(access或forbid)后立即做出启动应用程序或禁止启动应用程序的决策。

c)第二优先级,当高级策略匹配为不匹配(notmatched)时,匹配应用程序清单策略。当清单匹配决策为准确匹配(exactmatch)时,根据其清单级别做出决策,即黑名单禁止启动应用程序,白名单、灰名单启动应用程序。

d)第三优先级,当预设的防御模式为正常时,若清单级别为未知或者根据应用程序清单匹配决策为新生程序或被篡改的程序,则禁止启动应用程序。当预设的防御模式为监控或停止时,若清单级别为未知或者根据应用程序清单匹配决策为新生程序或被篡改的程序,则启动应用程序。

本发明的高级策略将程序的启动权限细化到证书、路径、sha1,控制决策更灵活。通过应用程序清单级别实现白名单控制,不同于现行的杀毒软件,杀毒软件是一种黑名单控制,限制黑名单内程序的执行权限,然而黑名单库必然滞后于病毒的生成,对于新生病毒无法首先启到保护作用;而且对于局域网环境下,黑名单库更新不及时,更无法起到防护作用。而白名单控制则正好相反,对于新生的未知程序,白名单防护可以阻止程序运行,从而比黑名单防护起到更加严苛的防护效果。程序清单记录程序路径、sha1,配合程序清单匹配逻辑及时识别到出新生程序(newfile)和被篡改的程序(modifymatch),从而保证程序清单的准确性。本发明提供一种高级策略、应用程序清单、防御模式综合决策逻辑,控制决策更灵活。

图5为本发明实施例的应用程序启动控制装置的示意图。如图5所示,应用程序启动控制装置包括:存储器和处理器。

所述存储器,用于保存用于应用程序启动控制的程序;

所述处理器,用于读取执行所述用于应用程序启动控制的程序,执行如下操作:

当检测到应用程序启动时,拦截应用程序启动消息,根据所述应用程序启动消息获取所述应用程序的数字签名、路径和sha1;其中,所述应用程序的sha1指根据安全哈希算法对应用程序的文件进行计算得到的值;

根据所述应用程序的数字签名、路径和sha1匹配第一控制策略,当所述数字签名、路径或sha1与第一控制策略匹配时,则根据第一控制策略确定启动或禁止启动所述应用程序;

当所述数字签名、路径和sha1与第一控制策略不匹配时,判断所述应用程序的路径和sha1与预设的应用程序清单是否匹配;若所述应用程序的与预设的应用程序清单匹配且所述应用程序的清单级别为黑名单、白名单或灰名单,则根据第二控制策略确定启动或禁止启动所述应用程序;若所述应用程序与预设的应用程序清单匹配且所述应用程序的清单级别为未知,或者所述应用程序与预设的应用程序清单不匹配,则根据第三控制策略确定启动或禁止启动所述应用程序;其中,所述应用程序的清单级别指所述应用程序处在预设的应用程序清单中的级别,所述级别包括黑名单、白名单、灰名单和未知。

一种示例性的实施例中,当所述数字签名、路径或sha1与第一控制策略匹配时,则根据第一控制策略确定启动或禁止启动所述应用程序,包括:

判断所述数字签名是否有效;

若所述数字签名有效,则启动所述应用程序;

若所述数字签名无效,则判断所述路径是否为预设的信任路径;

若所述路径为信任路径,则启动所述应用程序;

若所述路径不为信任路径,则判断所述应用程序是否为预设的信任程序;

若所述应用程序为预设的信任程序,则启动所述应用程序;

若所述应用程序为预设的非法程序,则禁止启动所述应用程序;

其中,所述信任路径指当启动的是该路径下的应用程序时就启动该应用程序。

一种示例性的实施例中,所述拦截应用程序启动消息,包括:

通过基于内核hook技术拦截应用程序启动消息;

所述数字签名、路径和sha1与第一控制策略不匹配,包括:

若所述应用程序不为预设的信任程序和预设的非法程序,则判断所述数字签名、路径和sha1与第一控制策略不匹配;

判断所述应用程序是否为预设的信任程序,包括:所述应用程序是否为信任路径下的应用程序或应用程序的sha1是否与预设的sha1一致。

一种示例性的实施例中,判断所述应用程序的路径和sha1与预设的应用程序清单是否匹配;若所述应用程序与预设的应用程序清单匹配且所述应用程序的清单级别为黑名单、白名单或灰名单,则根据第二控制策略确定启动或禁止启动所述应用程序,包括:

当所述路径与预设的应用程序清单中的某一路径一致,且所述sha1与所述应用程序清单中的某一sha1一致时,确定所述应用程序与所述应用程序清单匹配;

若所述应用程序与所述应用程序清单匹配且所述应用程序的清单级别为黑名单,则禁止启动所述应用程序;若所述应用程序与所述应用程序清单匹配且所述应用程序的清单级别为白名单或灰名单,则启动所述应用程序。

一种示例性的实施例中,若所述应用程序与预设的应用程序清单匹配且应用程序清单级别为未知或者所述应用程序与预设的应用程序清单不匹配,则根据第三控制策略确定启动或禁止启动所述应用程序,包括:

当所述应用程序的清单级别为未知或者所述应用程序与预设的应用程序清单不匹配,且预设的防御模式为正常时,禁止启动所述应用程序;

当所述应用程序与预设的应用程序清单不匹配,且预设的防御模式为监控或停止时,启动所述应用程序。

本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。

以上仅为本发明的优选实施例,当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。

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