国内android应用商城中程序隐私泄露分析,Android组件的权限泄露检测方法研究.doc...

Android组件的权限泄露检测方法研究

摘要:Android系统上的应用程序主要是由各个组件组成的,而组件的公开使用又会造成组件的权限泄露。针对这种危险提出了一种静态检测方法。重点研究权限泄露的检测,运用静态代码的分析技术,建立API特征库,其次遍历AndroidManifest.xml文件中的组件声明设置,检测该组件的公开性,再跟踪公开组件的函数入口以及函数的调用流程,从而检测出权限泄露问题。

关键词:Android组件;权限泄露;API特征库

中图分类号:TB文献标识码:Adoi:10.19311/ki2016.24.093

1绪论

在现今的社会中,我们的生活中存在了一个不可或缺的东西―手机,利用手机我们可以QQ、微信聊天、看视频、打游戏,似乎连着网就可以做很多事情,包括不用拿着钱就可以买任何东西,因为有电子钱包。它让我们的日常变得更加便利,可是在享受这些方便的时候也承担着更多的隐私泄露风险。在智能终端系统上,Android操作系统占据着很大的比重,并有日趋加重的势头。因此,关于Android系统的应用程序的漏洞数目也是层出不穷。

由于众多Android安全漏洞的产生,Android平台的威胁也越来越大。众所周知,Android应用框架是基于组件的方式来实现代码重用,因此应用程序在进行程序设计时都是以组件为基本模块,在组件内存在许多对敏感资源访问的功能。如果编程人员对组件使用不够熟练就会造成组件漏洞。因此本文主要针对组件漏洞展开研究,对该漏洞的原理、应用场景做了深入的分析,并对漏洞的检测技术进行研究。

2Android系统概述

2.1Android体系结构

Android的架构采取堆栈式,层次之间分工明确又协同工作。整个系统的结构分为5个层次,从上向下依次为:应用程序层、应用程序框架层、系统运行时库以及Linux内核层。

2.2Android系统的安全机制

Android系统设定了权限分离的安全机制,将安全设计体现在各个结构层次上。尽管如此,Android系统仍然存在诸多安全威胁。

沙盒技术、签名技术、权限的设置等都是Android的自我保护机制。每一个Android应用在底层都会对应一个独立的Dalvik虚拟机实例,其代码在虚拟机的解释下得以执行,这就使得程序之间的代码和数据分开,不可以互相访问。一个应用程序在没有别的应用程序允许的时候只能访问自己的数据。Android程序是需要签名的,而且是通过验证证书来签名的。若是Android的应用程序需要调用私有权限譬如拍照、打电话、读取联系人信息,是利用系统的API申请相应的权限。

Android系统在AndroidManifest.xml中必须设置所需的访问权限,也必须声明组件访问的许可。在一个应用程序的内部,各个组件之间允许互相访问;在不同的应用程序之间则必须设定访问权限,只有申请权限才可调用该组件,以防恶意利用。

3Android系统组件间的安全缺陷

Android系统主要有四大组件:Activity,Service,Broadcast Receiver和Content Provider。组件间的通信有三种:Intent、IPC Binding 和ContentResolver。其中大多数是通过Intent通信。当不同的应用程序或者同一个应用程序的不同组件之间需要传输数据就需要Intent的帮助。Intent能够实现组件间的异步并且保存相应的“意图”。Intent也实现了通用组件的多次利用,减轻了编码的成本。但是方便的同时,组件的权限泄露就产生了。

权限泄露也即权限提升。它是组件的重用带来的威胁。如图1,程序M是恶意程序,希望获得私密信息而又没有得到权限许可,程序N得到了访问该私密信息的权限,M与N存在某个组件n1的重用,那么M就会通过调用N程序中该组件盗取私密信息,从而造成私有信息的泄露,造成安全隐患。

Android漏洞的挖掘技术大体分为静态分析和动态分析。

4.1静态分析技术

静态分析技术是指不运行代码,分析反编译生成的源码,从而找到漏洞的方法。静态分析的步骤:(1)反编译生成源码,对源码通过词法、语法分析,将其转化为映射关系的表现形式。(2)再在(1)中间表现形式上进行分析。中间形式通常是使用抽象语法树(AST),此方式是能够比较直接明了的展现出源码,是一种存储效果很好的语法表现形式,AST在查询的速度、操作、遍历等方面有很高的效率。

静态分析技术的优点是:查询代码的范围广、分析速率快,漏报率低。但是也有不足之处:查询的同时不能实际运行代码,因此会有大量的误报。

4.2动态分析技术

动态分析是不用源代码,但是要通

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值