一种移动终端数据处理方法

文档序号:9432972阅读:295来源:国知局
一种移动终端数据处理方法
【技术领域】
[0001]本发明涉及移动互联网,特别涉及一种移动终端数据处理方法。
【背景技术】
[0002]随着移动互联网的发展,便携式终端设备的普及率不断提高,安全问题越来越引起人们的重视。越来越多的应用程序给用户带来便利的同时,也存储着用户私有数据。由于系统开源性和应用市场开放性,Android平台极易遭到攻击。应用程序想要通过系统提供的API进行某种操作或使用某种资源,就必须具有与该API相对应的权限。这些权限必须请求在程序的Manifest文件中,在应用被安装时由系统进行检查并提醒用户该应用具体请求了哪些权限。
[0003]开发者在编写Android应用程序时遵循最小原则,即进行哪些操作或者使用哪些资源,就只请求与这些操作和资源相关的权限,但是,很多开发文档本身不完善,或权限名称比较接近,造成请求了过多的不会使用的权限。者不仅会给用户带来误解,使用户对程序的可靠性和个人隐私的保密性产生怀疑,而且会由于存在的漏洞而被其它恶意程序利用,带来安全隐患。

【发明内容】

[0004]为解决上述现有技术所存在的问题,本发明提出了一种移动终端数据处理方法,包括:
[0005]检查应用程序安装包文件,提取程序中所有的API调用,分析API中所需的对应权限,以获得程序所使用的最低权限列表,通过该列表对应用程序所请求的权限列表进行约简,删除已请求但未使用的权限。
[0006]优选地,所述提取程序中所有的API调用,进一步包括:
[0007]读取API权限关联数据文件,生成API与其权限的关联表,使用API权限对应的结果数据作为API权限关联数据源,所述数据源包括API函数调用与其所需权限对应数据、IntentAct1n与其所需权限对应数据、Content Provider URL schema与其所需权限对应数据;
[0008]使用哈希表的数据结构存储API与其权限的关联关系,通过单个键对应多个值的多映射数据结构,以API为键,以其所需权限为值,以在API提取中获得所提取的API所对应的权限。
[0009]优选地,所述检查应用程序安装包文件之前,该方法还包括:
[0010]对应用程序安装包文件进行解压缩,从而获得字节码文件和Manifest文件,所述字节码文件用于API提取,通过遍历字节码文件来检查所有API调用,所述Manifest文件用于权限约简,通过API提取过程中所得到的实际使用的权限列表对Manifest文件所请求的权限进行修改;
[0011]所述删除已请求但未使用的权限之后,该方法还包括:
[0012]将经过权限约简后的Manifest文件与字节码文件以及分解出的其他一些资源文件一起,重新整合成安装包文件,然后使用JDK中的jar命令对manifest文件、字节码文件以及其他资源文件进行打包。
[0013]优选地,所述分析API中所需的对应权限,进一步包括:
[0014]从待测安装包中提取Manifest,分析应用程序所申请的权限,然后根据所申请的权限确定敏感权限检测的检测选项,检测选项包括所需检测的私有数据类型和所需检测的边界,根据检测选项对于相应的私有数据类型和边界进行敏感权限检测;
[0015]采用系统属性存储检测选项,在系统初始化时,分配一块共享内存区来存储属性,init守护进程启动属性服务,系统属性用于记录系统设置或进程之间的信息交换的全局变量,每个属性有一个名称和一个对应值,名称和值均为字符串,客户端通过属性服务修改、创建、获得共享内存中的系统属性;
[0016]在启动完成后,直接设置系统属性;读取Tag和Bound两个系统属性的值,即设置的检测选项,在添加敏感权限之前,根据读取到的检测选项Tag值,确定所需添加敏感权限的私有数据类型,执行相应的代码,在边界检测处,根据读取到的检测选项Bound值,确定所需监测的出口,执行相应的代码,编译源代码生成系统镜像,在模拟器中加载编译出的镜像文件,然后在模拟器系统中安装并运行待测应用程序,将应用程序的私有数据泄露行为自动记录在系统日志中,最后获得系统日志,分析日志并生成检测报告。
[0017]本发明相比现有技术,具有以下优点:
[0018]本发明提出了一种移动终端数据处理方法,对应用程序的权限进行分析和约束,提高程序安全性和可靠性,并且不影响程序的正确运行。
【附图说明】
[0019]图1是根据本发明实施例的移动终端数据处理方法的流程图。
【具体实施方式】
[0020]下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。
[0021]本发明的一方面提供了一种移动终端数据处理方法。图1是根据本发明实施例的移动终端数据处理方法流程图。
[0022]本发明的方法通过检查Android应用程序安装包文件,提取程序中所有API调用,分析这些API所需的对应权限,获得程序所使用的最低权限列表,并通过该列表对应用程序所请求的权限列表进行约简,删除掉那些已请求但未使用的权限。且并不会对大多数程序的正确运行产生影响,使其能够适用于对大量程序进行自动分析和约简,提高程序安全性和可靠性。
[0023]本发明采用静态分析,对Android安装包文件进行分析和修改。本发明方法由五个部分组成,包括API权限关联、安装包分解、API提取、manifest约简和安装包整合。
[0024]在API权限关联中,读取API权限关联数据文件,生成API与其权限的关联表,属于系统的准备工作。该模块对所有需要处理的安装包文件只需要运行一次。
[0025]本发明中,使用AndroidAPI权限对应的结果数据作为API权限关联数据源。对应于权限检查机制的三种情况,这一数据源包括API函数调用与其所需权限对应数据、IntentAct1n与其所需权限对应数据、Content Provider URL schema与其所需权限对应数据。本发明方法同样可以使用其他数据作为其API权限关联源,也可以由用户自定义API权限的关联关系,本发明不限于此。
[0026]使用哈希表的数据结构存储API与其权限的关联关系,由于有些API会对应多个权限,所以需要使用单个键对应多个值的多映射数据结构,以API为键,以其所需权限为值。这个API与权限的关联表用于在API提取中获得所提取的API所对应的权限。
[0027]从待测安装包中提取Manifest,分析应用程序所申请的权限。然后根据所申请的权限确定敏感权限检测的检测选项,检测选项包括所需检测的私有数据类型和所需检测的边界。最后根据检测选项对于相应的私有数据类型和边界进行敏感权限检测。
[0028]在系统初始化时,分配一块共享内存区来存储属性。init守护进程启动属性服务,系统属性用来记录系统设置或进程之间的信息交换的全局变量。每个属性有一个名称和一个对应值,名称和值均为字符串。客户端通过属性服务修改、创建、获得共享内存中的系统属性。
[0029]在本发明中米用系统属性存储检测选项。在Android启动元成后,直接设置系统属性。读取Android的Tag和Bound两个系统属性的值,即设置的检测选项。在添加敏感权限之前,根据读取到的检测选项Tag值,确定所需添加敏感权限的私有数据类型,执行相应的代码。在边界检测处,根据读取到的检测选项Bound值,确定所需监测的出口,执行相应的代码。编译源代码生成Android系统镜像,在Android模拟器中加载编译出的镜像文件。然后在模拟器系统中安装并运行待测应用程序。该应用程序的私有数据泄露行为会自动记录在系统日志中。最后获得系统日志,分析日志并生成检测报告。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1