[0039] 以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
[0040] 需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
[0041] 实施例一
[0042] 本实施例提供一种基于权限的安全监测方法,应用于移动终端,所述基于权限的安全监测方法包括以下步骤:
[0043] 检测所述移动终端中应用程序包的用以描述所述应用程序包中暴露的组件及与安全相关配置文件以判断所述配置文件中是否存在第一安全标签,若是,确定所述配置文件安全;若否,执行下一步骤;
[0044] 判断所述配置文件中是否存在第二安全标签,若是,查看所述第二安全标签的标签值是否为真,若为真,则继续查看所述第二安全标签内的多个属性值是否安全,若是,则确定所述移动终端处于安全状态,若否,则确定所述移动终端处于非安全状态;若为假,则确定所述移动终端处于安全状态;若否,则继续执行下一步骤;
[0045] 判断所述配置文件中是否存在第三安全标签,若否,则确定所述移动终端处于安全状态;若是,则查看所述第三安全标签内的多个属性值是否安全,若是,则确定所述移动终端处于安全状态,若否,则确定所述移动终端处于非安全状态。
[0046] 以下将结合图示对本实施例所述的基于权限的安全监测方法进行详细描述。请参阅图2,显示为基于权限的安全监测方法流程示意图。如图2所示,所述基于权限的安全监测方法具体包括以下几个步骤:
[0047] S1,检测所述移动终端中应用程序包的用以描述所述应用程序包中暴露的组件及与安全相关配置文件以判断所述配置文件中是否存在第一安全标签,若是,执行步骤S2,即确定所述移动终端处于安全状态;若否,则执行步骤S3。所述移动终端包括智能手机、平板电脑、及IPAD中的任一种。在本实施例中,所述移动终端采用操作系统为Android系统的智能手机。应用程序在安装时都分配有一个用户标志(UID)以区别于其他应用程序,保护自己的数据不被其他应用获取。Android根据不同的用户和组,分配不同权限,比如访问网络、访问GPS数据等,这些Android权限在底层映射为Linux的用户与组权限。所述应用程序包(.apk文件)的权限信息在所述配置文件(AndroidManifest.xml)中通过多个安全标签制定;其中,安全标签包括权限
标签,权限-组标签,及权限-树等多个安全标签指定。例如,需要申请某个权限,使用指定。所述配置文件(AndroidManifest.xml)是每个android程序中必须的文件。它位于整个项目的根目录,描述了package中暴露的组件(activities,services,以及BroadcastReceiver等等组件),他们各自的实现类,各种能被处理的数据和启动位置。除了能声明程序中的Activities,ContentProviders,Services,和Broadcast Receivers,还能指定permissions和instrumentation(安全控制和测试)。在本实施例中,所述第一安全标签为,其用以申请应用权限。[0048] S3,判断所述配置文件中是否存在第二安全标签,若是,则执行步骤S4,若否,则执行步骤S7。在本实施例中,为了避免权限串谋攻击,需在配置文件(AndroidManifest.xml)中加入第二安全标签,即
标签,该标签用以判定是否将组件暴露给外部应用程序。[0049] S4,查看所述第二安全标签的标签值是否为真,若是,则继续执行步骤S5,若否,则表示所述第二安全标签的标签值为缺省值FALSE,转入步骤S2。
[0050] S5,查看所述第二安全标签内的多个属性值是否安全,若是,则转入步骤S2,确定所述移动终端处于安全状态。若否,则转入步骤S6,即确定所述移动终端处于非安全状态。在本实施例中,所述步骤S5还包括将所述第二安全标签内的多个属性值与预存的属性匹配库中的与所述第二安全标签内的多个属性值相对应的检测值进行匹配,若匹配,则确定所述移动终端处于安全状态,若不匹配,则确定所述移动终端处于非安全状态。所述第二安全标签内的多个属性值为
中action,category,及data。所述移动终端处于非安全状态是指所述移动终端的操作系统的应用程序中存在漏洞。
[0051] S7,判断所述配置文件中是否存在第三安全标签,若否,则转入步骤S2,确定所述移动终端处于安全状态;若是,则执行步骤S8。在本实施例中,所述步骤S7还包括将所述第三安全标签内的多个属性值与预存的属性匹配库中的与所述第三安全标签内的多个属性值相对应的监测站进行匹配,若匹配,则确定所述移动终端处于安全状态,若不匹配,则确定所述移动终端处于非安全状态,即视为存在不受信任软件,提示用户不要安装。所述第三安全标签为,其用以判断所述应用程序包中组件响应哪些隐式意图(intents)。所述第三安全标签内的多个属性值为中action,category,及data。Action属性的值为一个字符串,它代表了系统中已经定义了一系列常用的动作;Category属性用于指定当前动作(Action)被执行的环境。通过addCategory()方法或在清单文件AndroidManifest.xml中设置;Data通常是URI格式定义的操作数据。步骤S5和S7跟属性匹配库中的数据进行匹配比直接匹配API权限库增加了逻辑性,减少了匹配时间,因为匹配API权限库会根据某项权限进行遍历。
[0052] S8,查看所述第三安全标签内的多个属性值是否安全,若是,则转入步骤S2,即确定所述移动终端处于安全状态,若否,则转入步骤S6,确定所述移动终端处于非安全状态。
[0053] 本实施例所述的基于权限的安全监测方法具有以下几点优点:
[0054] 第一,本实施例针对Android应用程序中可能存在的漏洞攻击给予预判断进行检测,以树形结构对不同的属性按照逻辑结构进行层级判断,当遇到某项判断为末节点时即告知检测结束;
[0055] 第二,本实施例比直接匹配API权限库增加了逻辑性,减少了匹配时间;
[0056] 第三,本实施例直接避免了应用程序在安装操作系统,尤其是安卓,产生影响,达到预警与警告的作用,防止安全隐患对中间层、应用层的攻击。
[0057] 实施例二
[0058] 本实施例提供一种基于权限的安全监测系统,应用于移动终端,所述基于权限的安全监测系统包括:
[0059] 检测模块,用于检测所述移动终端中应用程序包的用以描述所述应用程序包中暴露的组件及与安全相关配置文件以判断所述配置文件中是否存在第一安全标签,若是,调用用于确定所述移动终端处于安全状态的确定模块;若否,调用用于判断所述配置文件中是否存在第二安全标签的第一判断模块;
[0060] 所述第一判断模块判断所述配置文件中存在第二安全标签,则调用用于查看所述第二安全标签的标签值是否为真的第一查看模块,若为真,则调用用于查看所述第二安全标签内的多个属性值是否安全的第二查看模块,若是,调用所述确定模块确定所述移动终端处于安全状态,若否,调用所述确定模块确定所述移动终端处于非安全状态;若为假,调用所述确定模块确定所述移动终端处于安全状态;
[0061] 所述第一判断模块判断所述配置文件中不存在第二安全标签,则调用用于判断所述配置文件中是否存在第三安全标签的第二判断模块,若否,调用所述确定模块确定所述移动终端处于安全状态;若是,调用用于查看所述第三安全标签内的多个属性值是否安全的第三查看模块,若是,调用所述确定模块确定所述移动终端处于安全状态,若否,调用所述确定模块确定所述移动终端处于非安全状态。
[0062] 以下将结合图示对本实施例所述的基于权限的安全监测系统进行详细描述。本实施例提供一种基于权限的安全监测系统10,请参阅图3,显示为基于权限的安全监测系统的原理结构示意图。如图3所示,所述基于权限的安全监测系,10具体包括:检测模块101、确定模块102、第一判断模块103、第一查看模块104、第二判断模块105、第二查看模块106、及第三查看模块107。
[0063] 所述检测模块101用于检测所述移动终端中应用程序包的用以描述所述应用程序包中暴露的组件及与安全相关配置文件以判断所述配置文件中是否存在第一安全标签,若是,则调用用于确定所述移动终端处于安全状态的确定模块102;若否,则调用用于判断所述配置文件中是否存在第二安全标签的第一判断模块103。所述移动终端包括智能手机、平板电脑、及IPAD中的任一种。在本实施例中,所述移动终端采用操作系统为Android系统的智能手机。应用程序在安装时都分配有一个用户标志(UID)以区别于其他应用程序,保护自己的数据不被其他应用获取。Android根据不同的用户和组,分配不同权限,比如访问网络、访问GPS数据等,这些Android权限在底层映射为Linux的用户与组权限。所述应用程序包(.apk文件)的权限信息在所述配置文件(AndroidManifest.xml)中通过多个安全标签制定;其中,安全标签包括权限
标签,权限-组标签,及权限-树等多个安全标签指定。例如,需要申请某个权限,使用指定。所述配置文件(AndroidManifest.xml)是每个android程序中必须的文件。它位于整个项目的根目录,描述了package中暴露的组件(activities,services,以及BroadcastReceiver等等组件),他们各自的实现类,各种能被处理的数据和启动位置。除了能声明程序中的Activities,ContentProviders,Services,和Broadcast Receivers,还能指定permissions和instrumentation(安全控制和测试)。在本实施例中,所述第一安全标签为,其用以申请应用权限。[0064] 所述第一判断模块103在判断所述配置文件中是否存在第二安全标签时,若存在,则调用所述第一查看模块104,若否,则调用所述第二判断模块105。在本实施例中,所述第一判断模块103判断是否存在第二安全标签是为了避免权限串谋攻击,需在配置文件(AndroidManifest.xml)中加入第二安全标签,即
标签,该标签用以判定是否将组件暴露给外部应用程序。[0065] 所述第一查看模块104用于查看所述第二安全标签的标签值是否为真,若是,则调用所述第二查看模块106,若否,则调用所述确定模块102确定所述移动终端处于安全状态,也可以表示所述第二安全标签的标签值为缺省值FALSE。
[0066] 所述第二查看模块106用于查看所述第二安全标签内的多个属性值是否安全,若是,调用所述确定模块102确定所述移动终端处于安全状态。若否,则调用所述确定模块102确定所述移动终端处于非安全状态。在本实施例中,所述第二查看模块106中预存有一属性匹配库,所述第二查看模块106还用于将所述第二安全标签内的多个属性值与预存的属性匹配库中的与所述第二安全标签内的多个属性值相对应的检测值进行匹配,若匹配,则确定所述移动终端处于安全状态,若不匹配,则确定所述移动终端处于非安全状态。所述第二安全标签内的多个属性值为
中action,category,及data。所述移动终端处于非安全状态是指所述移动终端的操作系统的应用程序中存在漏洞。[0067] 第二判断模块105用于判断所述配置文件中是否存在第三安全标签,若否,则调用所述确定模块102确定所述移动终端处于安全状态;若是,则调用所述第三查看模块107。在本实施例中,所述第二判断模块105中预存有属性匹配库。所述第二判断模块105还用于将所述第三安全标签内的多个属性值与预存的属性匹配库中的与所述第三安全标签内的多个属性值相对应的监测站进行匹配,若匹配,则确定所述移动终端处于安全状态,若不匹配,则确定所述移动终端处于非安全状态,即视为存在不受信任软件,提示用户不要安装。所述第三安全标签为,其用以判断所述应用程序包中组件响应哪些隐式意图(intents)。所述第三安全标签内的多个属性值为中action,category,及data。Action属性的值为一个字符串,它代表了系统中已经定义了一系列常用的动作;Category属性用于指定当前动作(Action)被执行的环境。通过addCategory()方法或在清单文件AndroidManifest.xml中设置;Data通常是URI格式定义的操作数据。本实施例中第一判断模块103和第二判断模块105中预存的属性匹配库中的数据进行匹配比直接匹配API权限库增加了逻辑性,减少了匹配时间,因为匹配API权限库会根据某项权限进行遍历。
[0068] 所述第三查看模块107用于查看所述第三安全标签内的多个属性值是否安全,若是,则调用所述确定模块102确定所述移动终端处于安全状态,若否,也调用所述确定模块确定所述移动终端处于非安全状态。
[0069] 实施例三
[0070] 本实施例提供一种移动终端1,请参阅图4,显示为移动终端的结构示意图。如图4所示,所述移动终端1包括:处理器11和与处理器11连接的存储器12。
[0071] 所述处理器11用于检测所述移动终端中应用程序包的用以描述所述应用程序包中暴露的组件及与安全相关配置文件以判断所述配置文件中是否存在第一安全标签,若是,确定所述配置文件安全;若否,则判断所述配置文件中是否存在第二安全标签,若是,查看所述第二安全标签的标签值是否为真,若为真,则继续查看所述第二安全标签内的多个属性值是否安全,若是,则确定所述移动终端处于安全状态,若否,则确定所述移动终端处于非安全状态;若为假,则确定所述移动终端处于安全状态;若否,则判断所述配置文件中是否存在第三安全标签,若否,则确定所述移动终端处于安全状态;若是,则查看所述第三安全标签内的多个属性值是否安全,若是,则确定所述移动终端处于安全状态,若否,则确定所述移动终端处于非安全状态。
[0072] 所述处理器11还用于将所述第二安全标签内的多个属性值与预存的属性匹配库中的与所述第二安全标签内的多个属性值相对应的检测值进行匹配,若匹配,则确定所述移动终端处于安全状态,若不匹配,则确定所述移动终端处于非安全状态;及将所述第三安全标签内的多个属性值与预存的属性匹配库中的与所述第三安全标签内的多个属性值相对应的监测站进行匹配,若匹配,则确定所述移动终端处于安全状态,若不匹配,则确定所述移动终端处于非安全状态,即视为存在不受信任软件,提示用户不要安装。
[0073] 因此,与所述处理器11连接的存储器12用于存储属性匹配库。
[0074] 综上所述,本发明所述的基于权限的安全监测方法、系统及移动终端具有以下几点优点:
[0075] 第一,本发明针对Android应用程序中可能存在的漏洞攻击给予预判断进行检测,以树形结构对不同的属性按照逻辑结构进行层级判断,当遇到某项判断为末节点时即告知检测结束;
[0076] 第二,本发明比直接匹配API权限库增加了逻辑性,减少了匹配时间;
[0077] 第三,本发明直接避免了应用程序在安装操作系统,尤其是安卓,产生影响,达到预警与警告的作用,防止安全隐患对中间层、应用层的攻击。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
[0078] 上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。