基于Android平台的手机用户量逐年增长,随即而来的安全问题也备受关注。Android安全机制中采用了沙箱机制,签名机制,权限机制等各种方式保证应用程序的安全性,但是也存在一些严重安全问题,比如特权提升攻击。本文提出的方案主要是基于权限的基础上,对传输的数据进行加密处理,如果存在特权提升攻击,但是访问者没有权限访问的情况下,则无法访问到隐私敏感数据。
Android 平台是Google 推出的一款基于Linux 内核的智能手机操作系统,由Android 平台在一推出就具有开放性和可扩展性的特性,导致很多移动终端厂商和开发者加入此领域,开发出各种用户喜爱的产品,使得Android 系统逐渐在智能手机和平板电脑领域占据着大部分市场。也正因为如此,手机安全隐患也越来越多, Android 本身的设计具有良好的安全特性, 但这并不意味着Android 平台不存在安全隐患。
随着最近几年移动手机逐渐成为人们行为生活的一部分,用户的敏感信息也逐渐开始渗透到开放的移动平台,利用Android 平台存在的安全隐患,恶意攻击者以不正当的手段获取用户或者设备的敏感数据,并滥用此数据做非法操作,非法盈利。隐私泄露大致为:首先,应在运用程序在通信的过程中,经常携带的个人敏感信息,吸引恶意开发者在Android 应用程序嵌入恶意代码或者应用来窃取敏感数据进行恶意操作。第二,应在运用程序的数据传输过程中恶意拦截意图,使得用户的真正意图转换到恶意的程序,从而导致隐私泄漏。混淆代理人攻击是一类一般出现在Android 应用程序中的漏洞。当这些漏洞被攻击者触发,脆弱的应用程序会被攻击者利用,泄漏敏感信息,危及Android 设备上的数据完整性。
纯粹的依赖开发者来修复这些漏洞往往是不切实际的。有两个原因:1) 确认每一个漏洞并为其发布补丁对开发者来说是非常耗时的;2) 开发者可能没有足够的经验去妥善的解决问题。
在Android 平台上众多安全实例的攻击和隐私泄露问题已经是学术研究和公众关注的最近的一个热点, 最为突出的有混淆代理人攻击。
在2013 年USENIX 安全会议中, 提出存在于智能手机许多的安全威胁是应用程序组件之间的相互作用的结果,而不是组件内的,并制定针对Android 平台的良好的静态分析技术[1]。为了防止特权提升组件攻击,Cui X 等人[2]提出了构建调用链的方式,通过分析所有存在的组件的调用,构建抽象语法树和构建控制流图,并构建每个组件的调用链,最后生成调用图,这种方法能知道组件的调用关系,并有效的防范,但是需要分析整个应用程序,实用性不是特别强。Backes, M [3]一文中提出基于IPC 机制的Binder 通信过程中,由于无论什么时候APPS 都可以作为客户端和服务提供者,所以IPC 机制提供消息和接收建接收消息的相互可信度不够,无法确认发送方身份与接收方身份的情况下将,导致了一定程度的攻击,最为突出的就是混淆代理人攻击,导致隐私数据泄露。本论文实现是在kernel 层建立相互通信的调用链方式,扩展Binder 内核模块与Android 消息处理机制,从而建立可信赖的双方通信,这种方式有效防范混淆代理人攻击,但是付出的代价是修改Binder 内核模块,实现起来复杂。Nauman M 等人[4]提出一种细粒度的、以用户为中心的权限模型,这个模型允许用户对他们安装的软件进行有选择的授予权限。在这些研究中,基于权限控制对用户数据泄露检测的方式,由于需要用户的频繁参与,被认为是一种不太实用的手段。在参考文献[5]中提出了一种针对恶意应用程序在