意图指令的处理方法及移动终端的制作方法

文档序号:10553234阅读:182来源:国知局
意图指令的处理方法及移动终端的制作方法
【专利摘要】本发明实施例涉及移动通信技术领域,公开了一种意图指令的处理方法,应用于移动终端,包括:获取第一意图指令信息和发送第一意图指令信息的发起应用程序的信息,根据第一意图指令信息和发起应用程序的信息,判断执行第一意图指令目标组件是否为发起应用程序的内部组件,若目标组件不是发起应用程序的内部组件,则根据发起应用程序对目标组件发送意图指令的时间间隔,判断发起应用程序对目标组件是否存在攻击行为。本发明另一方面公开了一种移动终端,按上述方法进行拦截。本发明解决了现有技术中因遭受Intent攻击导致应用程序崩溃以及因防御Intent攻击导致占用太多资源的问题。
【专利说明】
意图指令的处理方法及移动终端
技术领域
[0001]本发明涉及移动通信技术领域,尤其是一种意图指令的处理方法及移动终端。
【背景技术】
[0002]在现有技术中,安卓操作系统(Android)提供了Activity(活动)、Service(服务)和Broadcast Receiver(广播接收器)等组件,并提供了意图(Intent,传递信息的数据结构)机制来协助应用间的交互与通讯。作为不同组件之间通信专门提供组件、互相调用的相关信息的“媒介”,Intent负责对应用程序中一次操作的动作、动作涉及数据、附加数据进行描述,Android系统则根据此Intent的描述,负责找到对应的组件,将Intent传递给被调用的组件,并完成组件的调用。Android的应用程序在本地拒绝服务,是由于应用程序没有对Intent.getXXXEXtra()(该方法用来获取Intent中携带的XXX类型数据)获取的异常或者畸形数据进行异常捕获和处理,从而导致攻击者可通过向受害方应用程序发送此类空数据、异常或者畸形数据来达到使该应用程序crash(崩溃)的目的,简单的说就是攻击者进行Intent攻击,通过Intent发送空数据、异常或畸形数据给受害方应用程序,导致其崩溃。Intent攻击不仅可以导致安全防护应用程序(如杀毒应用、安全卫士、防盗锁屏等)的防护功能被绕过或失效,而且也可被竞争方的应用程序攻击,使得受害方的应用程序崩溃,给用户造成不同程度的经济利益损失。
[0003]Intent攻击的情况有如下几种:
[0004]I)空指针异常攻击:Nul IPointerExcept 1n (java中的异常类型)异常导致的拒绝服务,是由于应用程序没有对getAct1nO (该方法获取Intent中携带的动作数据,是一个字符串)等获取到的数据进行空指针判断,从而导致空指针异常而导致应用程序崩溃。
[0005]2)类型转换异常攻击:ClassCastExcept 1n (java中的异常类型)异常导致的拒绝服务,是由于应用程序没有对getSerializableExtraO(该方法获取Intent中携带的序列化数据)等获取到的数据进行类型判断而进行强制类型转换,从而导致类型转换异常而导致应用程序崩溃。
[0006]3)数组越界访问异常攻击:IndexOutOf BoundsExcept1n(java中的异常类型)异常导致的拒绝服务,是由于应用程序没有对getIntegerArrayListExtra()(该方法获取Intent中携带的数组类型的数据)等获取到的数据数组元素大小的判断,从而导致数组访问越界而导致应用程序崩溃。
[0007]4)类未定义异常攻击:ClassNotFoundExcept 1n (java中的异常类型)异常导致的拒绝服务,是由于应用程序没有找到从getSerializableExtra()获取到的序列化类对象的类定义,因此发生类未定义的异常而导致应用程序崩溃。
[0008]5)其他异常攻击。
[0009]传统应对这些Intent攻击的方法,往往是在处理通过Intent.getXXXExtra()获取的数据时进行相应判断,以及用try catch( java中的一种异常捕获方式)方式捕获所有异常,以防止应用程序受到攻击而崩溃。然而,使用try catch的防范方式仍然存在不足:虽然能够防范Intent攻击,但是需要大量分析判断,消耗资源;如果频繁遭到攻击,也会导致应用程序拒绝服务。

【发明内容】

[0010]本发明提供了一种意图指令的处理方法,用以解决现有技术中因遭受Intent攻击导致应用程序崩溃以及因防御Intent攻击导致占用太多资源的问题。
[0011]本发明实施例一方面提供一种意图指令的处理方法,应用于移动终端,包括以下步骤:
[0012]获取第一意图指令信息和发送所述第一意图指令信息的发起应用程序的信息;
[0013]根据所述第一意图指令信息和所述发起应用程序的信息,判断执行所述第一意图指令的目标组件是否为所述发起应用程序的内部组件;若是,放行所述第一意图指令信息;
[0014]若所述目标组件不是所述发起应用程序的内部组件,则根据所述发起应用程序对所述目标组件发送意图指令的时间间隔,判断所述发起应用程序对所述目标组件是否存在攻击行为;若否,放行所述第一意图指令信息。
[0015]另一方面,本发明实施例还提供了一种移动终端,包括:
[0016]第一获取模块,用于获取第一意图指令信息和发送所述第一意图指令信息的发起应用程序的信息;
[0017]第一判断模块,用于根据所述第一意图指令信息和所述发起应用程序的信息,判断执行所述第一意图指令的目标组件是否为所述发起应用程序的内部组件;若是,放行所述第一意图指令信息;
[0018]第二判断模块,用于若所述目标组件不是所述发起应用程序的内部组件,则根据所述发起应用程序对所述目标组件发送意图指令的时间间隔,判断所述发起应用程序对所述目标组件是否存在攻击行为;若否,放行所述第一意图指令信息。
[0019]本发明实施例提供的意图指令的处理方法,通过获取第一意图指令信息和发送所述第一意图指令信息的发起应用程序的信息,根据所述第一意图指令信息和所述发起应用程序的信息,判断执行所述第一意图指令的目标组件是否为所述发起应用程序的内部组件,若所述目标组件不是所述发起应用程序的内部组件,则根据所述发起应用程序对所述目标组件发送意图指令的时间间隔,判断所述发起应用程序对所述目标组件是否存在攻击行为,实现在消耗少量资源的前提下起到有效防御的作用,可防止应用程序因Intent攻击发生异常而使用户遭受不必要的损失,同时还起到节省电量和提高用户体验的作用。
【附图说明】
[0020]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,下面描述中的附图仅仅是本发明的一些实施例的附图,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0021]图1是本发明的意图指令的处理方法的第一实施例的流程示意图;
[0022]图2是本发明的意图指令的处理方法的第二实施例的流程示意图;
[0023]图3是本发明的移动终端的第一实施例的结构示意图;
[0024]图4是本发明的移动终端的第二实施例的结构示意图;
[0025]图5是本发明的移动终端的第三实施例的结构示意图。
【具体实施方式】
[0026]为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0027]如图1所示,是本发明的意图指令的处理方法的第一实施例的流程示意图。该方法应用于移动终端,该方法包括S101-S103:
[0028]SlOl,获取第一意图指令信息和发送第一意图指令信息的发起应用程序的信息。
[0029]在本步骤中,当接收到应用程序中StartActivity(启动活动),SendBroadcast(发送一个广播),StartService(启动服务)等组件的第一意图指令信息时,获取该第一意图指令信息和发送该第一意图指令信息的发起应用程序的信息。其中,第一意图指令信息包括操作的动作、动作涉及数据和附加数据的描述信息;发起应用程序的信息包括该发起应用程序的包名等信息。
[0030]S102,根据第一意图指令信息和发起应用程序的信息,判断执行第一意图指令的目标组件是否为发起应用程序的内部组件;若是,放行第一意图指令信息。
[0031]在本实施例中,由于第一意图指令信息中包含目标组件的信息,通过比对发起应用程序的包名等信息和执行该第一意图指令的目标组件的信息,便可判断该目标组件是不是该发起应用程序的内部组件。如果该目标组件是该发起应用程序的内部组件,即该第一意图指令信息用于应用程序的内部组件调用,不存在Intent攻击的可能,此时放行该第一意图指令信息。
[0032]其中,明确指定目标组件名的Intent为显式意图(Explicit Intents),显式意图的目标组件不需要解析即可得到;而没有明确指定目标组件名的Intent为隐式意图(Implicit Intents),隐式意图需要进一步解析才能得到其目标组件。
[0033]S103,若目标组件不是发起应用程序的内部组件,则根据发起应用程序对目标组件发送意图指令的时间间隔,判断发起应用程序对目标组件是否存在攻击行为;若否,放行第一意图指令信息。
[0034]在本实施例中,当该目标组件不是该发起应用程序的内部组件,则通过发起应用程序对目标组件发送意图指令的时间间隔,来判断该发起应用程序对该目标组件是否存在攻击行为。发起应用程序对目标组件发送意图指令的时间间隔短,则存在攻击的可能性,且其频繁发送到指令可能会导致目标组件所在的应用程序崩溃。因此也可以通过检测在一段时间内同一发起应用程序调用另一应用程序的组件(包括StartActivity(启动活动),sendBroadcast(发送一个广播),startService (启动服务))的次数,来主动识别该发起应用程序是否存在攻击行为,当该发起应用程序发送意图指令的时间间隔过短(如小于预设值等),则阻止该发起应用程序的发送到意图指令信息,起到防范Intent攻击的作用。
[0035]本发明实施例提供的意图指令的处理方法,通过获取第一意图指令信息和发送第一意图指令信息的发起应用程序的信息,根据第一意图指令信息和发起应用程序的信息,判断执行第一意图指令的目标组件是否为发起应用程序的内部组件,若目标组件不是发起应用程序的内部组件,则根据发起应用程序对目标组件发送意图指令的时间间隔,判断发起应用程序对目标组件是否存在攻击行为,实现在消耗少量资源的前提下起到有效防御的作用,可防止应用程序因Intent攻击发生异常而使用户遭受不必要的损失,同时还起到节省电量和提高用户体验的作用。
[0036]如图2所示,是本发明的意图指令的处理方法的第二实施例的流程示意图。该方法应用于移动终端,该方法包括S201-S213:
[0037]S201,获取第一意图指令信息和发送第一意图指令信息的发起应用程序的信息。
[0038]S201与本发明实施例的意图指令信息的方法的第一实施例的相应步骤相同,此处不再赘述。
[0039]S202,获取目标组件的应用禁行名单。
[0040]在本实施例中,应用禁行名单可由服务器设定或分析获得,并发放至移动终端本地。该应用禁行名单可以包括竞争方的应用程序包名以及其他可能存在攻击行为的应用程序包名。
[0041]S203,根据发起应用程序的包名信息和应用通行名单,判断发起应用程序是否在应用禁行名单中。
[0042]在本步骤中,比对发起应用程序的包名信息是否存在于该应用禁行名单中。
[0043]S204,若是,阻止第一意图指令信息;若否,则进行下一步。
[0044]在本步骤中,若该发起应用程序在应用禁行名单中,则拦截其发送的第一意图指令信息,以防范其攻击行为;若该发起应用程序不在应用禁行名单中,则需要进一步判断是否应当拦截该第一意图指令信息。
[0045]S205,获取目标组件的应用通行名单。
[0046]在本步骤中,当发起应用程序的包名不存在于目标组件的应用禁行名单之中,则进一步获取该目标组件的应用通行名单。在本实施例中,应用通行名单可由服务器设定或分析获得,并发放至移动终端本地。该应用通行名单可以包括同一出品方的应用程序包名以及其他可能不存在攻击行为的应用程序包名。
[0047]S206,根据发起应用程序的包名信息和应用通行名单,判断发起应用程序是否在应用通行名单中。
[0048]在本步骤中,比对发起应用程序的包名信息是否存在于该应用通行名单中。
[0049]S207,若是,放行第一意图指令信息;若否,则进行下一步。
[0050]在本步骤中,若该发起应用程序在应用通行名单中,则该发起应用程序默认为友好的应用程序,放行其发送的第一意图指令信息;若该发起应用程序不在应用通行名单中,则需要进一步判断是否应当拦截该第一意图指令信息。
[0051]S208,解析第一意图指令信息,得到目标组件所属的目标应用程序的包名信息。
[0052]在本步骤中,通过解析该第一意图指令信息可以得到其目标组件的目标应用程序的包名信息。具体地,没有明确指定目标组件名的Intent为隐式意图(Implicit Intents),此时需要根据隐式意图中设置的动作(act1n)、类别(category)、数据URI等来匹配最合适的组件作为目标组件。已知地,Intent的Compent属性指定Intent的的目标组件的类名称。通常Android会根据Intent中包含的其它属性的信息,比如act 1n、data/type、category进行查找,最终找到与之匹配的目标组件和给目标组件所属的目标应用程序的包名信息。
[0053]S209,比对发起应用程序的包名信息和目标应用程序的包名信息,若发起应用程序的包名信息和目标应用程序的包名信息相同,放行第一意图指令信息。
[0054]在本步骤中,由于应用程序的包名具有唯一性,通过比对发起应用程序的包名信息和目标应用程序的包名信息,由两者的包名信息是否相同可以判断目标组件是不是发起应用的内部组件。例如:发起方:com.app.0ffice(包名)、MainActivity(组件名);目标方:com.app.0ffice(包名),OpenFileActivity(组件名),包名相同,所以是内部组件间的启动过程。
[0055]如果发起应用程序的包名信息和目标应用程序的包名信息相同,可断定该目标组件为该发起应用程序的内部组件,则该第一意图指令信息用于应用程序的内部通信,应放行该第一意图指令信息。
[0056]S210,若目标组件不是发起应用程序的内部组件,获取发起应用程序发送第一意图指令信息和发送第二意图指令信息的时间间隔。
[0057]在本步骤中,若判断出该目标组件不属于该发起应用程序的内部组件,则需要进一步检测该发起应用程序对该目标组件发送意图指令的时间间隔,具体为获取发起应用程序发送第一意图指令信息和发送第二意图指令信息的时间间隔。
[0058]本实施例中,“第一”和“第二”不作为发生先后次序的区分。
[0059]为方便该时间间隔的获取,优选地,第二意图指令信息可以是第一意图指令信息的前一条意图指令信息。
[0060]S211,比对所述时间间隔和预设时间阈值,若所述时间间隔大于所述预设时间阈值,放行所述第一意图指令信息。
[0061]在本步骤中,获取到发起应用程序发送第一意图指令信息和第二意图指令信息的时间间隔后,则将该时间间隔和预设时间阈值进行对比。该预设时间阈值可由存在攻击行为的应用程序的攻击频率得到,也可根据目标组件的处理速度得到,以确保目标组件不因无法响应过多的意图指令而令其所在的应用程序出现崩溃的情况。如可将该时间间隔设定为3S,作为保护目标组件的底线。如果发起应用程序发送第一意图指令信息和第二意图指令信息的时间间隔大于预设时间阈值,比如该时间间隔超过3S,则可判断出该发起应用程序对目标组件不存在攻击行为,放行其发送的第一意图指令信息。
[0062]S212,若所述时间间隔小于所述预设时间阈值,则发出是否放行所述第一意图指令信息的提示。
[0063]在本步骤中,如果发起应用程序发送第一意图指令信息和第二意图指令信息的时间间隔小于预设时间阈值,如该时间间隔小于3S,则可判断出该发起应用程序对目标组件可能存在攻击行为,此时需要发出是否放行第一意图指令信息的提示,使用户收到该提示后下达是否放行该第一意图指令信息的操作指令。如用户确实在利用发起应用程序对目标组件进行调用,则可下达放行的操作指令,使系统可以顺利通过意图指令调用目标组件;反之亦然。
[0064]S213,将发起应用程序的信息发送至服务器,以使服务器分析发起应用程序的信息,并根据分析结果更新应用通行名单或应用禁行名单。
[0065]在本实施例中,当判断出是否拦截该第一意图指令信息后,还可将该发起应用程序的信息发送至服务器,该服务器可综合各个移动终端的数据,通过分析这些发起应用程序的包名和发送意图指令的时间间隔来判定是否需要更新应用通行名单或应用禁行名单。如当分析出同一包名的发起应用程序发送意图指令的时间间隔过短,则可在应用禁行名单中添加该包名,或者从应用通行名单中将该包名删除。
[0066]本发明实施例提供的意图指令的处理方法,通过以应用禁行名单拦截已知的存在攻击行为的发起应用程序,以应用通行名单放行已知的友好的发起应用程序,在进行内部组件判断和时间间隔判断之前先对该第一意图指令信息进行简单过滤,进一步减轻了系统负荷和提高了拦截判断的准确度;通过比对目标应用程序的包名和发起应用程序的包名可快速判断出目标组件是否为发起应用程序的内部组件;通过获取该发起应用程序对该目标组件发送的相邻两次意图指令的时间间隔,并以该时间间隔和预设时间阈值对比来判断发起应用程序对目标组件是否存在攻击行为,实现在消耗少量资源的前提下起到有效防御的作用,可防止应用程序因Intent攻击发生异常而使用户遭受不必要的损失,同时还起到节省电量和提高用户体验的作用。
[0067]上文对本发明移动终端的意图信息的处理方法的实施例作了详细介绍。下面将相应于上述方法的装置(即移动终端)作进一步阐述。其中,移动终端可以是带有安卓系统的手机、平板电脑、可穿戴设备、MP3或MP4等。
[0068]如图3所示,是本发明的移动终端的第一实施例的结构示意图。用于实现上述方法的第一实施例中的意图指令的处理方法。移动终端100包括第一获取模块101、第一判断模块102和第二判断模块103。
[0069]其中,第一获取模块101,与第一判断模块102连接,用于获取第一意图指令信息和发送第一意图指令信息的发起应用程序的信息。
[0070]在本实施例中,当接收到应用程序中StartActivity(启动活动),SendBroadcast(发送一个广播),StartService(启动服务)等组件的第一意图指令信息时,第一获取模块101获取该第一意图指令信息和发送该第一意图指令信息的发起应用程序的信息。其中,第一意图指令信息包括操作的动作、动作涉及数据和附加数据的描述信息;发起应用程序的信息包括该发起应用程序的包名等信息。
[0071]第一判断模块102,与第二判断模块103连接,用于根据第一意图指令信息和发起应用程序的信息,判断执行第一意图指令的目标组件是否为发起应用程序的内部组件;若是,放行第一意图指令信息。
[0072]在本实施例中,由于第一意图指令信息中包含目标组件的信息,第一判断模块102通过比对发起应用程序的包名等信息和执行第一意图指令的目标组件的信息,便可判断该目标组件是不是该发起应用程序的内部组件。如果该目标组件是该发起应用程序的内部组件,即该第一意图指令信息用于应用程序的内部组件调用,不存在Intent攻击的可能,此时放行该第一意图指令信息。
[0073]其中,明确指定目标组件名的Intent为显式意图(Explicit Intents),显式意图的目标组件不需要解析即可得到;而没有明确指定目标组件名的Intent为隐式意图(Implicit Intents),隐式意图需要进一步解析才能得到其目标组件。
[0074]第二判断模块103,用于若第一判断模块判断出目标组件不是发起应用程序的内部组件,则根据发起应用程序对目标组件发送意图指令的时间间隔,判断发起应用程序对目标组件是否存在攻击行为;若否,放行第一意图指令信息。
[0075]在本实施例中,当该目标组件不是该发起应用程序的内部组件,则通过发起应用程序对目标组件发送意图指令的时间间隔,来判断该发起应用程序对该目标组件是否存在攻击行为。发起应用程序对目标组件发送意图指令的时间间隔短,则存在攻击的可能性,且其频繁发送到指令可能会导致目标组件所在的应用程序崩溃。因此也可以通过检测在一段时间内同一发起应用程序调用另一应用程序的组件(包括StartActivity(启动活动),sendBroadcast(发送一个广播),startService (启动服务))的次数,来主动识别该发起应用程序是否存在攻击行为,当该发起应用程序发送意图指令的时间间隔过短(如小于预设值等),则阻止该发起应用程序的发送到意图指令信息,起到防范Intent攻击的作用。
[0076]本发明实施例提供的移动终端,通过获取第一意图指令信息和发送第一意图指令信息的发起应用程序的信息,根据第一意图指令信息和发起应用程序的信息,判断执行第一意图指令的目标组件是否为发起应用程序的内部组件,若目标组件不是发起应用程序的内部组件,则根据发起应用程序对目标组件发送意图指令的时间间隔,判断发起应用程序对目标组件是否存在攻击行为,实现在消耗少量资源的前提下起到有效防御的作用,可防止应用程序因Intent攻击发生异常而使用户遭受不必要的损失,同时还起到节省电量和提高用户体验的作用。
[0077]如图4所示,是本发明的移动终端的第二实施例的结构示意图。用于实现上述方法的第二实施例中的意图指令的处理方法。移动终端200包括第一获取模块201、第三获取模块202、第四判断模块203、阻止模块204、第二获取模块205、第三判断模块206、放行模块207、第一判断模块208、第二判断模块209和发送模块210。
[0078]第一获取模块201,与第三获取模块202连接,用于获取第一意图指令信息和发送第一意图指令信息的发起应用程序的信息。
[0079]第一获取模块201与本发明实施例的移动终端的第一实施例的相应模块相同,此处不再赘述。
[0080]第三获取模块202,与第四判断模块203连接,用于通过服务器获取目标组件的应用禁行名单。
[0081]在本实施例中,应用禁行名单可由服务器设定或分析获得,并发放至移动终端本地。该应用禁行名单可以包括竞争方的应用程序包名以及其他可能存在攻击行为的应用程序包名。
[0082]第四判断模块203,与阻止模块204、第二获取模块205连接,用于根据发起应用程序的包名信息和应用通行名单,判断发起应用程序是否在应用禁行名单中。
[0083]在本实施例中,第四判断模块203比对发起应用程序的包名信息是否存在于该应用禁行名单中。
[0084]阻止模块204,用于阻止第一意图指令信息。
[0085]在本实施例中,若该发起应用程序在应用禁行名单中,阻止模块204则拦截其发送的第一意图指令信息,以防范其攻击行为;若该发起应用程序不在应用禁行名单中,则需要进一步判断是否应当拦截该第一意图指令信息。
[0086]第二获取模块205,与第三判断模块206连接,用于通过服务器获取目标组件的应用通行名单。
[0087]在本实施例中,当发起应用程序的包名不存在于目标组件的应用禁行名单之中,第二获取模块205获取该目标组件的应用通行名单。在本实施例中,应用通行名单可由服务器设定或分析获得,并发放至移动终端本地。该应用通行名单可以包括同一出品方的应用程序包名以及其他可能不存在攻击行为的应用程序包名。
[0088]第三判断模块206,与放行模块207、第一判断模块208连接,用于根据发起应用程序的包名信息和应用通行名单,判断发起应用程序是否在应用通行名单中。
[0089]在本实施例中,第三判断模块206比对发起应用程序的包名信息是否存在于该应用通行名单中。
[0090]放行模块207,用于若发起应用程序在应用通行名单中,放行第一意图指令信息。
[0091]在本实施例中,若该发起应用程序在应用通行名单中,则该发起应用程序默认为友好的应用程序,放行模块207放行其发送的第一意图指令信息;若该发起应用程序不在应用通行名单中,则需要进一步判断是否应当拦截该第一意图指令信息。
[0092]第一判断模块208,与第二判断模块209连接,用于根据第一意图指令信息和发起应用程序的信息,判断目标组件是否为发起应用程序的内部组件;若是,放行第一意图指令?目息O
[0093]其中,第一判断模块208包括以下单元:
[0094]解析单元2081,与第一比对单元2082连接,用于解析第一意图指令信息,得到目标组件所属的目标应用程序的包名信息。
[0095]在本实施例中,解析单元2081通过解析该第一意图指令信息可以得到其目标组件的目标应用程序的包名信息。具体地,没有明确指定目标组件名的Intent为隐式意图(Implicit Intents),此时需要根据隐式意图中设置的动作(act1n)、类别(category)、数据URI等来匹配最合适的组件作为目标组件。已知地,Intent的Compent属性指定Intent的的目标组件的类名称。通常Android会根据Intent中包含的其它属性的信息,比如act1n、data/type、category进行查找,最终找到与之匹配的目标组件和给目标组件所属的目标应用程序的包名信息。
[0096]第一比对单元2082,用于比对发起应用程序的包名信息和目标应用程序的包名信息,若发起应用程序的包名信息和目标应用程序的包名信息相同,放行第一意图指令信息。
[0097]在本实施例中,由于应用程序的包名具有唯一性,第一比对单元2082通过比对发起应用程序的包名信息和目标应用程序的包名信息,由两者的包名信息是否相同可以判断目标组件是不是发起应用的内部组件。例如:发起方:com.app.0ffice(包名)、MainActivity(组件名);目标方:com.app.0ffice(包名),OpenFileActivity(组件名),包名相同,所以是内部组件间的启动过程。
[0098]在本实施例中,如果比对出该发起应用程序的包名信息和目标应用程序的包名信息相同,可断定该目标组件为该发起应用程序的内部组件,则该第一意图指令信息用于应用程序的内部通信,则放行该第一意图指令信息。
[0099]第二判断模块209,与发送模块210连接,用于若第一判断模块208判断出目标组件不是发起应用程序的内部组件,则根据发起应用程序对目标组件发送意图指令的时间间隔,判断发起应用程序对目标组件是否存在攻击行为;若否,放行第一意图指令信息。
[0100]其中,第二判断模块209包括以下单元:
[0101 ]获取单元2091,与第二比对单元2092连接,用于若目标组件不是发起应用程序的内部组件,获取发起应用程序发送第一意图指令信息和发送第二意图指令信息的时间间隔。
[0102]在本实施例中,若第一判断模块208判断出该目标组件不属于该发起应用程序的内部组件,则需要进一步检测该发起应用程序对该目标组件发送意图指令的时间间隔,此时,获取单元2091获取发起应用程序发送第一意图指令信息和发送第二意图指令信息的时间间隔。
[0103]本实施例中,“第一”和“第二”不作为发生先后次序的区分。
[0104]为方便该时间间隔的获取,优选地,第二意图指令信息可以是第一意图指令信息的前一条意图指令信息。
[0105]第二比对单元2092,与提示单元2093连接,用于判断时间间隔是否小于预设时间阈值。
[0106]在本实施例中,获取单元2091获取到发起应用程序发送第一意图指令信息和第二意图指令信息的时间间隔后,第二比对单元2092则将该时间间隔和预设时间阈值进行比对。该预设时间阈值可由存在攻击行为的应用程序的攻击频率得到,也可根据目标组件的处理速度得到,以确保目标组件不因无法响应过多的意图指令而令其所在的应用程序出现崩溃的情况。如可将该时间间隔设定为3S,作为保护目标组件的底线。如果发起应用程序发送第一意图指令信息和第二意图指令信息的时间间隔大于预设时间阈值,如该时间间隔超过3S,则可判断出该发起应用程序对目标组件不存在攻击行为,进而放行其发送的第一意图指令信息。
[0107]提示单元2093,用于发出是否放行第一意图指令信息的提示。
[0108]在本实施例中,如果发起应用程序发送第一意图指令信息和第二意图指令信息的时间间隔小于预设时间阈值,如该时间间隔小于3S,则第二比对单元2092可判断出该发起应用程序对目标组件可能存在攻击行为,此时发出是否放行第一意图指令信息的提示,使用户收到该提示后下达是否放行该第一意图指令信息的操作指令。如用户确实在利用发起应用程序对目标组件进行调用,则可下达放行的操作指令,使系统可以顺利通过意图指令调用目标组件;反之亦然。
[0109]发送模块210,用于将发起应用程序的信息发送至服务器,以使服务器分析发起应用程序的信息,并根据分析结果更新应用通行名单或应用禁行名单。
[0110]在本实施例中,当判断出是否拦截该第一意图指令信息后,发送模块210将该发起应用程序的信息发送至服务器,该服务器可综合各个移动终端的数据,通过分析这些发起应用程序的包名和发送意图指令的时间间隔来判定是否需要更新应用通行名单或应用禁行名单。如当分析出同一包名的发起应用程序发送意图指令的时间间隔过短,则可在应用禁行名单中添加该包名,或者从应用通行名单中将该包名删除。
[0111]本发明实施例提供的移动终端,通过以应用禁行名单拦截已知的存在攻击行为的发起应用程序,以应用通行名单放行已知的友好的发起应用程序,在进行内部组件判断和时间间隔判断之前先对该第一意图指令信息进行简单过滤,进一步减轻了系统负荷和提高了拦截判断的准确度;通过比对目标应用程序的包名和发起应用程序的包名可快速判断出目标组件是否为发起应用程序的内部组件;通过获取该发起应用程序对该目标组件发送的相邻两次意图指令的时间间隔,并以该时间间隔和预设时间阈值对比来判断发起应用程序对目标组件是否存在攻击行为,实现在消耗少量资源的前提下起到有效防御的作用,可防止应用程序因Intent攻击发生异常而使用户遭受不必要的损失,同时还起到节省电量和提高用户体验的作用。
[0112]图5是本发明移动终端的第三实施例的结构框图。图5所示的移动终端700包括:至少一个处理器701、存储器702、至少一个网络接口 704和用户接口 703。移动终端700中的各个组件通过总线系统705耦合在一起。可理解,总线系统705用于实现这些组件之间的连接通信。总线系统705除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图5中将各种总线都标为总线系统705。
[0113]其中,用户接口 703可以包括显示器、键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等。
[0114]可以理解,本发明实施例中的存储器702可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-OnlyMemory, ROM)、可编程只读存储器(ProgrammabI eROM,PROM)、可擦除可编程只读存储器(ErasablePR0M,EPR0M)、电可擦除可编程只读存储器(ElectricallyEPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(RandomAccessMemory’RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(3七&〖化!^1,31^10、动态随机存取存储器(0711&1^^^1,01^10、同步动态随机存取存储器(SynchronousDRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(DoubleDataRateSDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchl inkDRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambuSRAM,DRRAM)。本发明实施例描述的系统和方法的存储器702旨在包括但不限于这些和任意其它适合类型的存储器。
[0115]在一些实施方式中,存储器702存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:操作系统7021和应用程序7022。
[0116]其中,操作系统7021,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序7022,包含各种应用程序,例如媒体播放器(MediaPlayer)、浏览器(Browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序7022中。
[0117]在本发明实施例中,通过调用存储器702存储的程序或指令,具体的,可以是应用程序7022中存储的程序或指令,处理器701用于获取第一意图指令信息和发送第一意图指令信息的发起应用程序的信息;根据第一意图指令信息和发起应用程序的信息,判断执行第一意图指令的目标组件是否为发起应用程序的内部组件;若是,放行第一意图指令信息;若目标组件不是发起应用程序的内部组件,则根据发起应用程序对目标组件发送意图指令的时间间隔,判断发起应用程序对目标组件是否存在攻击行为;若否,放行第一意图指令信息。
[0118]上述本发明实施例揭示的方法可以应用于处理器701中,或者由处理器701实现。处理器701可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器701中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器701可以是通用处理器、数字信号处理器(DigitalSignalProcessor,DSP)、专用集成电路(Applicat1nSpecific IntegratedCircuit ,ASIC)、现成可编程门阵列(FieldProgrammableGateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器702,处理器701读取存储器702中的信息,结合其硬件完成上述方法的步骤。
[0119]可以理解的是,本发明实施例描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(Applicat1nSpecificIntegratedCircuits,ASIC)、数字信号处理器(DigitalSignalProcessing,DSP)、数字信号处理设备(DSPDevice,DSPD)、可编程逻辑设备(ProgrammableLogicDevice ,PLD)、现场可编程门阵列(Field-ProgrammableGateArray,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请功能的其它电子单元或其组合中。
[0120]对于软件实现,可通过执行本发明实施例功能的模块(例如过程、函数等)来实现本发明实施例的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
[0121]可选地,处理器701还用于:解析第一意图指令信息,得到目标组件所属的目标应用程序的包名信息;比对发起应用程序的包名信息和目标应用程序的包名信息,若发起应用程序的包名信息和目标应用程序的包名信息相同,放行第一意图指令信息。
[0122]可选地,处理器701还用于:若目标组件不是发起应用程序的内部组件,获取发起应用程序发送第一意图指令信息和发送第二意图指令信息的时间间隔;比对所述时间间隔和预设时间阈值,若所述时间间隔大于所述预设时间阈值,放行所述第一意图指令信息;若所述时间间隔小于所述预设时间阈值,则发出是否放行所述第一意图指令信息的提示。
[0123]可选地,处理器701还用于:获取目标组件的应用通行名单;根据发起应用程序的包名信息和应用通行名单,判断发起应用程序是否在应用通行名单中;若是,放行第一意图指令信息;若否,则进行下一步。
[0124]可选地,处理器701还用于:获取目标组件的应用禁行名单;根据发起应用程序的包名信息和应用通行名单,判断发起应用程序是否在应用禁行名单中;若是,阻止第一意图指令信息;若否,则进行下一步。
[0125]可选地,处理器701还用于:将发起应用程序的信息发送至服务器,以使服务器分析发起应用程序的信息,并根据分析结果更新应用通行名单或应用禁行名单。
[0126]移动终端700能够实现前述实施例中移动终端实现的各个过程,为避免重复,这里不再赘述。移动终端700通过以应用禁行名单拦截已知的存在攻击行为的发起应用程序,以应用通行名单放行已知的友好的发起应用程序,在进行内部组件判断和时间间隔判断之前先对该第一意图指令信息进行简单过滤,进一步减轻了系统负荷和提高了拦截判断的准确度;通过比对目标应用程序的包名和发起应用程序的包名可快速判断出目标组件是否为发起应用程序的内部组件;通过获取该发起应用程序对该目标组件发送的相邻两次意图指令的时间间隔,并以该时间间隔和预设时间阈值对比来判断发起应用程序对目标组件是否存在攻击行为,实现在消耗少量资源的前提下起到有效防御的作用,可防止应用程序因Intent攻击发生异常而使用户遭受不必要的损失,同时还起到节省电量和提高用户体验的作用。
[0127]本领域普通技术人员可以意识到,结合本发明实施例中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0128]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0129]在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0130]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0131]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0132]所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0133]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
【主权项】
1.一种意图指令的处理方法,应用于移动终端,其特征在于,包括: 获取第一意图指令信息和发送所述第一意图指令信息的发起应用程序的信息; 根据所述第一意图指令信息和所述发起应用程序的信息,判断执行所述第一意图指令的目标组件是否为所述发起应用程序的内部组件;若是,放行所述第一意图指令信息;若所述目标组件不是所述发起应用程序的内部组件,则根据所述发起应用程序对所述目标组件发送意图指令的时间间隔,判断所述发起应用程序对所述目标组件是否存在攻击行为;若否,放行所述第一意图指令信息。2.如权利要求1所述的方法,其特征在于,所述根据所述第一意图指令信息和所述发起应用程序的信息,判断执行所述第一意图指令的目标组件是否为所述发起应用程序的内部组件;若是,放行所述第一意图指令信息的步骤,包括: 解析所述第一意图指令信息,得到所述目标组件所属的目标应用程序的包名信息; 比对所述发起应用程序的包名信息和所述目标应用程序的包名信息,若所述发起应用程序的包名信息和所述目标应用程序的包名信息相同,放行所述第一意图指令信息。3.如权利要求1所述的方法,其特征在于,所述若所述目标组件不是所述发起应用程序的内部组件,则根据所述发起应用程序对所述目标组件发送意图指令的时间间隔,判断所述发起应用程序对所述目标组件是否存在攻击行为;若否,放行所述第一意图指令信息的步骤,包括: 若所述目标组件不是所述发起应用程序的内部组件,获取所述发起应用程序发送所述第一意图指令信息和发送第二意图指令信息的时间间隔; 比对所述时间间隔和预设时间阈值,若所述时间间隔大于所述预设时间阈值,放行所述第一意图指令信息; 若所述时间间隔小于所述预设时间阈值,则发出是否放行所述第一意图指令信息的提不O4.如权利要求1所述的方法,其特征在于,在所述根据所述第一意图指令信息和所述发起应用程序的信息,判断执行所述第一意图指令的目标组件是否为所述发起应用程序的内部组件;若是,放行所述第一意图指令信息的步骤之前,还包括: 获取所述目标组件的应用通行名单; 根据所述发起应用程序的包名信息和所述应用通行名单,判断所述发起应用程序是否在所述应用通行名单中; 若是,放行所述第一意图指令信息;若否,则进行下一步。5.如权利要求4所述的方法,其特征在于,在所述通过服务器获取所述目标组件的应用通行名单的步骤之前,还包括: 获取所述目标组件的应用禁行名单; 根据所述发起应用程序的包名信息和所述应用通行名单,判断所述发起应用程序是否在所述应用禁行名单中; 若是,阻止所述第一意图指令信息;若否,则进行下一步。6.如权利要求5所述的方法,其特征在于,在所述若所述目标组件不是所述发起应用程序的内部组件,则根据所述发起应用程序对所述目标组件发送意图指令的时间间隔,判断所述发起应用程序对所述目标组件是否存在攻击行为;若否,放行所述第一意图指令信息的步骤之后,还包括: 将所述发起应用程序的信息发送至服务器,以使所述服务器分析所述发起应用程序的信息,并根据分析结果更新所述应用通行名单或所述应用禁行名单。7.一种移动终端,其特征在于,包括: 第一获取模块,用于获取第一意图指令信息和发送所述第一意图指令信息的发起应用程序的信息; 第一判断模块,用于根据所述第一意图指令信息和所述发起应用程序的信息,判断执行所述第一意图指令的目标组件是否为所述发起应用程序的内部组件;若是,放行所述第一意图指令信息; 第二判断模块,用于若所述目标组件不是所述发起应用程序的内部组件,则根据所述发起应用程序对所述目标组件发送意图指令的时间间隔,判断所述发起应用程序对所述目标组件是否存在攻击行为;若否,放行所述第一意图指令信息。8.如权利要求7所述的移动终端,其特征在于,所述第一判断模块包括: 解析单元,用于解析所述第一意图指令信息,得到所述目标组件所属的目标应用程序的包名信息; 第一比对单元,用于比对所述发起应用程序的包名信息和所述目标应用程序的包名信息,若所述发起应用程序的包名信息和所述目标应用程序的包名信息相同,放行所述第一意图指令信息。9.如权利要求7所述的移动终端,其特征在于,所述第二判断模块包括: 获取单元,用于若所述目标组件不是所述发起应用程序的内部组件,获取所述发起应用程序发送所述第一意图指令信息和发送第二意图指令信息的时间间隔; 第二比对单元,用于比对所述时间间隔和预设时间阈值,若所述时间间隔大于所述预设时间阈值,放行所述第一意图指令信息; 提示单元,用于若所述时间间隔小于所述预设时间阈值,则发出是否放行所述第一意图指令信息的提示。10.如权利要求7所述的移动终端,其特征在于,还包括: 第二获取模块,用于获取所述目标组件的应用通行名单; 第三判断模块,用于根据所述发起应用程序的包名信息和所述应用通行名单,判断所述发起应用程序是否在所述应用通行名单中; 放行模块,用于若所述发起应用程序在所述应用通行名单中,放行所述第一意图指令?目息O11.如权利要求10所述的移动终端,其特征在于,还包括: 第三获取模块,用于获取所述目标组件的应用禁行名单; 第四判断模块,用于根据所述发起应用程序的包名信息和所述应用通行名单,判断所述发起应用程序是否在所述应用禁行名单中; 阻止模块,用于阻止所述第一意图指令信息。12.如权利要求11所述的移动终端,其特征在于,还包括: 发送模块,用于将所述发起应用程序的信息发送至服务器,以使所述服务器分析所述发起应用程序的信息,并根据分析结果更新所述应用通行名单或所述应用禁行名单。
【文档编号】G06F9/54GK105912928SQ201610188905
【公开日】2016年8月31日
【申请日】2016年3月29日
【发明人】顾卫华
【申请人】维沃移动通信有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1