针对安卓权限的控制方法、装置、及存储介质、电子装置
技术领域
本发明涉及应用防护领域,具体而言,涉及一种针对安卓权限的控制方法、装置、及存储介质、电子装置。
背景技术
在安卓系统中,应用在安装时,需要向安卓系统申请安卓权限。由于安卓系统具有这样的特性,可能会存在一些应用无论是否需要,都提前多申请一些不必要的安卓权限的情况,导致该应用的权限过高(也即拥有的安卓权限较多),甚至在运行时利用多申请的安卓权限执行一些恶意行为,损害用户的利益。
针对相关技术中存在的上述问题,目前尚未发现有效的解决方案。
发明内容
本发明实施例提供了一种针对安卓权限的控制方法、装置、及存储介质、电子装置,以至少解决现有技术中安卓系统中应用滥用安卓权限的问题。
根据本发明的一个实施例,提供了一种针对安卓权限的控制方法,该方法包括:利用Hook方式注入安卓系统的Intent过滤器,以拦截安卓系统中产生的Intent通讯消息;解析拦截到的Intent通讯消息,以确定发送Intent通讯消息的目标主体和目标主体请求执行的目标行为;在权限规则集合中,查找与目标主体和目标行为匹配的权限规则,其中,权限规则集合中的权限规则用于定义不同应用请求不同安卓权限的处理方式;根据匹配的权限规则中定义的处理方式,处理目标主体请求执行的目标行为。
进一步地,权限规则集合中包括多个权限规则,每个权限规则用于定义针对一个应用类别请求一种安卓权限的处理方式,在权限规则集合中,查找与目标主体和目标行为匹配的权限规则,包括:确定目标主体所属的应用类别;在权限规则集合中查找与目标主体所属的应用类别和目标行为匹配的权限规则。
进一步地,权限规则集合中包括多个权限规则,每个权限规则用于定义针对一个应用请求一种行为的处理方式。
进一步地,权限规则集合包括第一集合和第二集合,第一集合中的每个权限规则用于定义针对一个应用类别请求一种行为的处理方式,第二集合中的每个权限规则用于定义针对一个应用请求一种行为的处理方式,在权限规则集合中,查找与目标主体和目标行为匹配的权限规则,包括:在第一集合查找与目标主体所属的应用类别和目标行为匹配的权限规则;在第二集合中查找与目标主体和目标行为匹配的权限规则。
进一步地,根据匹配的权限规则中定义的处理方式,处理目标主体请求执行的目标行为,包括:如果在第一集合和第二集合中均查找到与目标主体和目标行为匹配的权限规则,获取在第一集合中匹配到的权限规则中针对目标主体请求执行目标行为定义的处理方式,得到第一处理方式,并获取在第二集合中匹配到的权限规则中针对目标主体请求执行目标行为定义的处理方式,得到第二处理方式;判断第一处理方式和第二处理方式是否冲突;如果冲突,则根据第二处理方式处理目标主体请求执行的目标行为。
进一步地,在权限规则集合中,查找与目标主体和目标行为匹配的权限规则之后,该方法还包括:如果未查找到与目标主体和目标行为匹配的权限规则,则根据预设处理方式对目标主体请求执行的目标行为进行处理。
进一步地,处理方式包括允许执行和拒绝执行,在处理方式为允许执行的情况下,处理目标主体请求执行的目标行为,包括:放行Intent通讯消息;在处理方式为拒绝执行的情况下,处理目标主体请求执行的目标行为,包括:拦截Intent通讯消息,以禁止将Intent通讯消息发送至接收方。
根据本发明的另一个实施例,提供了一种针对安卓权限的控制装置,包括:拦截模块,用于利用Hook方式注入安卓系统的Intent过滤器,以拦截安卓系统中产生的Intent通讯消息;解析模块,用于解析拦截到的Intent通讯消息,以确定发送Intent通讯消息的目标主体和目标主体请求执行的目标行为;查找模块,用于在权限规则集合中,查找与目标主体和目标行为匹配的权限规则,其中,权限规则集合中的权限规则用于定义不同应用请求不同安卓权限的处理方式;处理模块,用于根据匹配的权限规则中定义的处理方式,处理目标主体请求执行的目标行为。
进一步地,权限规则集合中包括多个权限规则,每个权限规则用于定义针对一个应用类别请求一种安卓权限的处理方式,查找模块包括:确定单元,用于确定目标主体所属的应用类别;第一查找单元,用于在权限规则集合中查找与目标主体所属的应用类别和目标行为匹配的权限规则。
进一步地,权限规则集合中包括多个权限规则,每个权限规则用于定义针对一个应用请求一种行为的处理方式。
进一步地,权限规则集合包括第一集合和第二集合,第一集合中的每个权限规则用于定义针对一个应用类别请求一种行为的处理方式,第二集合中的每个权限规则用于定义针对一个应用请求一种行为的处理方式,查找单元包括:第二查找单元,用于在第一集合查找与目标主体所属的应用类别和目标行为匹配的权限规则;第三查找单元,用于在第二集合中查找与目标主体和目标行为匹配的权限规则。
进一步地,处理模块包括:获取单元,用于如果在第一集合和第二集合中均查找到与目标主体和目标行为匹配的权限规则,获取在第一集合中匹配到的权限规则中针对目标主体请求执行目标行为定义的处理方式,得到第一处理方式,并获取在第二集合中匹配到的权限规则中针对目标主体请求执行目标行为定义的处理方式,得到第二处理方式;判断单元,用于判断第一处理方式和第二处理方式是否冲突;处理单元,用于如果冲突,则根据第二处理方式处理目标主体请求执行的目标行为。
进一步地,处理模块还用于在权限规则集合中未查找到与目标主体和目标行为匹配的权限规则时,则根据预设处理方式对目标主体请求执行的目标行为进行处理。
进一步地,处理方式包括允许执行和拒绝执行,处理模块包括:第一处理单元,用于在处理方式为允许执行的情况下,放行Intent通讯消息;第二处理单元,用于在处理方式为拒绝执行的情况下,拦截Intent通讯消息,以禁止将Intent通讯消息发送至接收方。
根据本发明的又一个实施例,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,通过利用Hook方式注入安卓系统的Intent过滤器,拦截安卓系统中产生的Intent通讯消息,在解析之后确定发送Intent通讯消息的目标主体和目标主体请求执行的目标行为,进而,在权限规则集合中查找匹配的权限规则,从而根据匹配的权限规则中定义的处理方式,处理目标主体请求执行的目标行为,达到了对应用请求安卓权限的行为进行监控的技术效果,能够在应用发生行为时对请求的安卓权限进行进一步地监控,防止安卓系统中的应用滥用获取到的权限,解决了相关技术中安卓系统中应用滥用安卓权限的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的针对安卓系统的应用行为控制方法的流程图;
图2是根据本发明实施例的针对安卓系统的应用行为控制装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
本实施例提供了一种针对安卓系统的应用行为控制方法,可以应用于客户端侧,其中,客户端可以运行中移动终端、手持终端或类似的运算设备之中。运行在不同的运算设备仅是方案在执行主体上的差异,本领域人员可预见在不同运算设备中运行能够产生相同的技术效果。
本实施例提供的针对安卓权限的控制方法,通过对Intent通讯消息进行拦截和分析,来确定应用所请求执行的行为,进而,在预定义的权限规则集合中查找是否存在针对该应用请求该行为的权限规则,并根据匹配的权限规则所定义的处理方式对应用行为进行处理,达到了对应用请求安卓权限的行为进行监控的技术效果,能够在应用发生行为时对请求的安卓权限进行进一步地监控,防止安卓系统中的应用滥用获取到的权限。
如图1所示,本实施例提供的针对安卓系统的应用行为控制方法包括如下步骤:
步骤101,利用Hook方式注入安卓系统的Intent过滤器,以拦截安卓系统中产生的Intent通讯消息。
安卓系统中存在Intent通讯机制,用于在应用与应用之间、以及应用与系统之间进行数据交互。在应用需要请求执行一些行为时,应用会发出Intent通讯消息,在Intent通讯消息中表明消息的发送方、请求执行的行为,从而,安卓系统可以将该Intent通讯消息发送至能够执行该行为的接收方,以使接收方执行发送方所请求的行为。
在应用请求安卓权限(需要安卓系统执行的行为)时,也是采用Intent机制,为了防止安装于安卓系统中的应用滥用安卓权限,对Intent通讯消息进行拦截,防止安卓系统将Intent通讯消息直接发送至安卓系统对应的组件来执行对应的行为。
具体的,利用Hook(挂钩/注入)方式注入安卓系统的Intent过滤器,以过滤安卓系统中所有的Intent通讯消息。每接收到一条Intent通讯消息之后,拦截该Intent通讯消息,防止直接发送至接收方,并通过步骤102~步骤104对Intent通讯消息进行过滤(判断),以对该Intent通讯消息进行相应的处理。
步骤102,解析拦截到的Intent通讯消息,以确定发送Intent通讯消息的目标主体和目标主体请求执行的目标行为。
对拦截到的Intent通讯消息进行解析,获取发送Intent通讯消息的主体名称,以确定目标主体,并获取目标主体所请求执行的行为的信息,如行为名称和/或行为参数等,以确定目标行为。
步骤103,在权限规则集合中,查找与目标主体和目标行为匹配的权限规则。
权限规则集合中的权限规则用于定义不同应用请求不同安卓权限的处理方式,例如,某一条规则定义了针对一个应用所能请求和不能请求的安卓权限。请求安卓权限是应用向安卓系统请求调用对应组件执行对应行为的方式,常用的安卓权限包括拍照权限、使用蓝牙、读取通讯录、发送短信等等。
权限规则用于规定一个或多个应用是否能够请求一个或多个安卓权限。例如,财务类的应用不允许获取发送短信的安卓权限(也即,不允许执行发送短信的行为),某一个应用允许读取通讯录,等等。具体的权限规则内容可以根据具体情况设定,无法穷举,本发明实施例对权限规则的具体内容不做限定。
需要说明的是,在权限规则集合中查找到的与目标主体和目标行为匹配的权限规则,是同时与目标主体和目标行为匹配的权限规则,也即,匹配的权限规则中定义了针对目标主体请求执行目标行为的处理方式。
作为一种可选的示例,权限规则集合中的权限规则的定义方式可以采用以下方式:在权限规则集合中包括多个权限规则,每个权限规则用于定义针对一个应用(如某一个计算器应用、某一个视频应用等等)请求一个安卓权限的处理方式。
作为另一种可选的示例,权限规则集合中的权限规则的定义方式也可以采用以下方式:在权限规则集合中包括多个权限规则,每个权限规则用于定义针对某一个应用类别(如金融类、财务类、教育类、工具类、社交类等等)请求一个安卓权限的处理方式。相应的,在权限规则集合中查找与目标主体和目标行为匹配的权限规则时,先确定目标主体所属的应用类别,进而在权限规则集合中查找与目标主体所属的应用类别和目标行为匹配的权限规则。
可选的,权限规则集合同时包括上述两种示例的集合,具体而言,权限规则集合包括第一集合和第二集合,第一集合中的每个权限规则用于定义针对一个应用类别请求一种行为的处理方式,第二集合中的每个权限规则用于定义针对一个应用请求一种行为的处理方式。
相应的,在权限规则集合中,查找与目标主体和目标行为匹配的权限规则时,分别在第一集合和第二集合中查找,具体的,在第一集合查找与目标主体所属的应用类别和目标行为匹配的权限规则,在第二集合中查找与目标主体和目标行为匹配的权限规则。
由于第一集合是针对应用类别的权限规则集合,而针对于一个应用类别的所有应用定义权限规则,通常需要定义该应用类别允许请求最少的安卓权限,防止该类别应用滥用安卓权限。而第二集合中定义了每个应用可使用的安卓权限,针对于某一个具体的应用,可能在除了该应用所属的应用类别允许使用的安卓权限之外,还需要用到其它的安卓权限,因此,可能会存在一种应用场景为:第一集合中的规则和第二集合中的规则存在冲突。例如,在第二集合中的权限规则定义了应用A允许请求安卓权限B,而在第一集合中的权限规则定义应用A所属的应用类别C不允许请求安卓权限B。
为了解决上述的第一集合与第二集合的规则发生冲突的问题,在根据匹配的权限规则中定义的处理方式,处理目标主体请求执行的目标行为时,如果在第一集合和第二集合中均查找到与目标主体和目标行为匹配的权限规则,获取在第一集合中匹配到的权限规则中针对目标主体请求执行目标行为定义的处理方式,得到第一处理方式,并获取在第二集合中匹配到的权限规则中针对目标主体请求执行目标行为定义的处理方式,得到第二处理方式,判断第一处理方式和第二处理方式是否冲突,如果冲突,则根据第二处理方式处理目标主体请求执行的目标行为。也即,第二集合的权限规则的优先级高于第一集合的权限规则。
步骤104,根据匹配的权限规则中定义的处理方式,处理目标主体请求执行的目标行为。
由于在权限规则中定义了处理方式,在查找到与目标主体和目标行为相匹配的权限规则之后,根据权限规则中定义的处理方式对目标主体请求执行目标行为进行相应的处理,例如,允许执行或拒绝执行。可选的,针对于特定的应用请求特定的行为,还可以的处理方式。
由于权限规则集合所能定义的应用或应用类别有限,因此,可能会出现在权限规则集合中未查找倒与目标主体和目标行为匹配的权限规则的情况。如果未查找到与目标主体和目标行为匹配的权限规则,则根据预设处理方式对目标主体请求执行的目标行为进行处理,例如,预设处理方式可以是允许执行或拒绝执行,或者,采用弹出提示框提示用户是否允许执行,或者,将该Intent通讯消息中提取出的目标主体和目标行为的信息发送至云服务器,由云服务器来判断是否执行,等等。
在处理目标主体请求执行的目标行为时,如果处理方式是允许执行,则通过放行Intent通讯消息来允许目标主体请求执行的目标行为,进而,在放行Intent通讯消息之后,安卓系统会将Intent通讯消息发送至对应的组件执行对应请求的行为;如果处理方式为拒绝执行,则通过拦截Intent通讯消息,以禁止将Intent通讯消息发送至接收方,从而拒绝目标主体请求执行的目标行为。
可选的,本发明实施例提供的方法通过对Intent消息的监控限制应用的行为,但是可能存在一些行为是不需要通过Intent机制来发送消息,因此,本发明实施例可以与其它的防护方法结合使用,例如,对于发送短信,是可以通过Intent消息进行过滤和防护,而对于网络访问,可以使用安卓系统自带的防火墙规则来实现控制。在具体实施时,可以基于Linux来针对不同的安卓权限采用不同的限制方法。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
在本实施例中还提供了一种针对安卓权限的控制装置,该装置用于实现上述实施例1及其优选实施方式,对于本实施例中未详述的术语或实现方式,可参见实施例1中的相关说明,已经进行过说明的不再赘述。
如以下所使用的术语“模块”,是可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可以被构想的。
图2是根据本发明实施例的针对安卓权限的控制装置的示意图,如图2所示,该装置包括:拦截模块10,解析模块20,查找模块30和处理模块40,其中,拦截模块用于利用Hook方式注入安卓系统的Intent过滤器,以拦截安卓系统中产生的Intent通讯消息;解析模块用于解析拦截到的Intent通讯消息,以确定发送Intent通讯消息的目标主体和目标主体请求执行的目标行为;查找模块用于在权限规则集合中,查找与目标主体和目标行为匹配的权限规则,其中,权限规则集合中的权限规则用于定义不同应用请求不同安卓权限的处理方式;处理模块用于根据匹配的权限规则中定义的处理方式,处理目标主体请求执行的目标行为。
可选的,权限规则集合中包括多个权限规则,每个权限规则用于定义针对一个应用类别请求一种安卓权限的处理方式,查找模块包括:确定单元,用于确定目标主体所属的应用类别;第一查找单元,用于在权限规则集合中查找与目标主体所属的应用类别和目标行为匹配的权限规则。
可选的,权限规则集合中包括多个权限规则,每个权限规则用于定义针对一个应用请求一种行为的处理方式。
可选的,权限规则集合包括第一集合和第二集合,第一集合中的每个权限规则用于定义针对一个应用类别请求一种行为的处理方式,第二集合中的每个权限规则用于定义针对一个应用请求一种行为的处理方式,查找单元包括:第二查找单元,用于在第一集合查找与目标主体所属的应用类别和目标行为匹配的权限规则;第三查找单元,用于在第二集合中查找与目标主体和目标行为匹配的权限规则。
可选的,处理模块包括:获取单元,用于如果在第一集合和第二集合中均查找到与目标主体和目标行为匹配的权限规则,获取在第一集合中匹配到的权限规则中针对目标主体请求执行目标行为定义的处理方式,得到第一处理方式,并获取在第二集合中匹配到的权限规则中针对目标主体请求执行目标行为定义的处理方式,得到第二处理方式;判断单元,用于判断第一处理方式和第二处理方式是否冲突;处理单元,用于如果冲突,则根据第二处理方式处理目标主体请求执行的目标行为。
可选的,处理模块还用于在权限规则集合中未查找到与目标主体和目标行为匹配的权限规则时,则根据预设处理方式对目标主体请求执行的目标行为进行处理。
可选的,处理方式包括允许执行和拒绝执行,处理模块包括:第一处理单元,用于在处理方式为允许执行的情况下,放行Intent通讯消息;第二处理单元,用于在处理方式为拒绝执行的情况下,拦截Intent通讯消息,以禁止将Intent通讯消息发送至接收方。
本实施例提供的针对安卓权限的控制装置,通过对Intent通讯消息进行拦截和分析,来确定应用所请求执行的行为,进而,在预定义的权限规则集合中查找是否存在针对该应用请求该行为的权限规则,并根据匹配的权限规则所定义的处理方式对应用行为进行处理,达到了对应用请求安卓权限的行为进行监控的技术效果,能够在应用发生行为时对请求的安卓权限进行进一步地监控,防止安卓系统中的应用滥用获取到的权限。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
实施例3
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
实施例4
本发明的实施例还提供了一种电子装置,例如,电子装置可以是移动终端。电子装置包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。