标题 | Android手机隐私泄露研究 |
范文 | 李淑民 摘要:Android手机在给人们带来方便的同时,也存在潜在的安全隐患,用户隐私泄露是其中的一个严重问题。本文对Android手机隐私泄露问题进行了研究。首先介绍了Android手机中的隐私数据源类型,然后从四种角度分析总结了隐私泄露的方式:(1)应用中的隐私泄露;(2)应用间的隐私泄露;(3)传感器数据造成的隐私泄露;(4)网络传输中的隐私泄露。最后,针对应用间通信造成的隐私泄露问题,本文设计了一个基于控制进程通信的应用隔离系统。用户通过这个系统可以灵活控制哪些应用间不能通信,有选择性地保护Android手机中的高安全级数据,防范由于应用间通信造成的隐私泄露。 关键词:信息安全;Android;隐私泄露;隐私泄露防范;应用隔离系统 中图分类号:TP309.2 文献标识码:A DOI:10.3969/j.issn.1003-6970.2015.02.015 0 引言 最近几年,Android手机的普及十分迅速。Android手机不仅满足人们的沟通需求,还可被用于办公、网上购物等日常活动。Android手机内通常存储着一些有关用户信息的隐私数据,如短信、通讯录、地理信息等。如果这些信息被泄露,可能会给用户带来严重的经济、精神损失。iiMedia Research发布的数据指出,2014上半年Android手机占有89.9%中国智能手机市场份额。Strategy Analytics发布的数据指出,2014年第三季度,Android手机占有83.6%全球智能手机市场份额。DCCI互联网数据中心联合360手机安全中心发布的《2014年上半年Android手机隐私安全报告》中显示,92.8%的Android手机用户把隐私存放在手机中,并且53.6%的Android手机用户表示手机是存储隐私最多的设备。腾讯移动安全实验室2014年第三季度手机安全报告显示,在2014年第三季度,腾讯手机管家截获了224,516个病毒包,隐私窃取类病毒占28.25%的比例,位居第二。因此,Android手机隐私数据泄露是一个必须得到关注的问题。本文总结Android手机的隐私数据源和隐私数据泄露方式。此外,本文设计一个应用隔离系统。Android手机用户可使用该系统给应用添加颜色标记,用以控制哪些应用间不能通信,从而对应用间通信造成的隐私数据泄露进行防范。 1 Android手机隐私源 Android手机上存储着和用户相关的数据,用于不同的功能。本节主要介绍两种存在的用户隐私数据类型,即应用产生的数据和设备相关的信息: · 应用产生的数据:短信,通讯录,电话通话状态,通话记录,日历,浏览器浏览记录,浏览器书签,已安装的应用信息,登陆凭证(用户名、密码),认证令牌,音频,视频,图片等。 · 设备相关的信息:用户手机号码,SIM卡串号(ICC-ID),国际移动用户识别码(IMSI),国际移动设备身份码(IMEI),传感器数据(如GPS、加速度传感器)等。 2 Android手机隐私泄露方式 2.1 应用中的隐私泄露 应用中隐私泄露是相对于应用间隐私泄露而言的,是指在一个应用内完成的隐私泄露。有些开发人员获取用户的隐私数据后在用户不知情的情况下通过网络或短信发送出去。此外,有些广告提供者通过广告库窃取用户的隐私数据。Android广告提供者为了更有目标性地向用户发送广告,在广告库中嵌入窃取隐私数据代码来窃取用户的隐私数据。广告库和应用程序运行在相同的进程空间内,因此它们拥有相同的操作系统资源的能力。在基于浏览器的应用程序中,广告库通过WebView对象给JavaScript提供调用广告库的接口,广告库的窃取隐私的部分就可以暴露给JavaSeript。应用调用广告库如图1所示。 2.2 应用间的隐私泄露 应用可以通过一些方式窃取其它应用的隐私数据,从而造成应用间的隐私泄露。下面介绍4种应用间隐私泄露方式:(1)获取Intent对象封装的数据。Intent对象用于Activity、Service、BroadcastReceiver组件之间相互通信。如果在一个组件发出的Intent对象中含有隐私数据,可能会引起隐私数据泄露。(2)访问ContentProvider中的数据。ContentProvider组件用于应用间数据共享,恶意应用可以窃取ContentProvider中封装的数据。(3)访问外部存储(sD卡)。把用户的隐私数据写入外部存储(SD卡)后,其它的拥有访问SD卡权限的应用可以从SD卡中获取用户的隐私数据。(4)提升权限(root权限)。提升root权限原理:首先把编译的su文件拷贝到手机的/system/bin下,并且把su文件的权限设置为:-rwsr-xr-x-,s表示应用执行该文件时就会拥有和文件一样的权限。把su文件的拥有者和所属群组设置为root用户。Android应用执行su程序时就会拥有root权限。Android被root后,普通应用的权限提升为root权限,这样应用可以访问其他应用的数据。 2.3 传感器数据造成的隐私泄露 用户通过手机触摸屏输入信息时,点击手机上的不同位置会产生不同的运动。产生的运动传感器数据18J可以用来推断用户在触摸屏上点击的位置,在界面布局已知的情况下可推断用户输入中的内容。TouchLogger以70%以上的准确率根据用户在按手机软键盘时产生的震动推断出用户输入的数字内容。TapLogger木马首先通过一个伪装正常的应用搜集一些运动传感器数据,来判断用户在触摸屏上点击的方式。然后在用户输入密码等内容时,根据用户的点击的方式来推断用户的输入内容。TapLogger木马可推断出用户的Android手机的解锁密码和Pad的PIN码等。 2.4 网络传输中的隐私泄露 除了把数据存储在Android手机本地端,还可以存储到网络上。Android客户端向服务器端或服务器端向Android客户端传输数据时,网络传输过程中的数据包可能会被恶意软件截获。如果这些数据没有被加密处理,就会造成信息泄露。 3 应用隔离系统 3.1 隐私泄露防范的相关工作 Android手机隐私数据泄露问题得到广泛的关注。研究人员提供了一些用于分析应用是否存在隐私数据泄露的工具。FlowDroid基于污点跟踪静态分析应用中的一个组件内的数据流动。IccTA基于污点跟踪不仅可以静态分析应用中的某个组件内的数据流动,也可以静态分析应用中或应用间的组件间的数据流动。TaintDroidt基于污点跟踪在应用程序执行时跟踪敏感数据的流动,当数据通过网络接口离开本机时给用户一个提示。用户也可以保护自己的隐私数据安全。用户使用TISSA系统根据隐私设置给应用程序提供匿名、虚假或信任数据,细粒度地灵活控制应用程序可以访问哪些隐私数据。然而不能控制应用间通信造成的隐私数据泄露。本文设计一个基于控制进程间通信的应用隔离系统。用户可以灵活控制哪些应用之间不能通信,有针对性地保护高安全级的数据。 3.2 应用隔离系统 3.2.1 应用隔离系统介绍 本文设计一个Android应用隔离系统,通过控制进程通信来控制应用之间的通信。首先系统给手机上的所有应用添加一个默认的颜色标记从而把应用划分到一个组中。用户可以重新给应用设置颜色标记把应用从系统默认组中提取出来划分到不同的组中。用户可以给不同的应用设置不同或相同的颜色标记,相同颜色标记的应用重新被划分到一个组中。在用户重新划分出来的应用中,同一组的应用能够相互通信,而不同组的应用之间相互隔离。系统默认的组的应用(没有被用户重新设置颜色标记)可以和其他任何应用通信。如图2所示,拥有绿色标记的应用、应用红色标记的应用和拥有橙色标记的应用可以和自己同组的应用相互通信,而属于不同组内的应用之间不能相互通信。没有被用户重新设置颜色标记的应用可以和其他任何颜色标记的应用通信。 3.2.2 应用隔离系统架构 应用隔离系统扩展Android系统的内核层和核心库层,在内核层添加用于给进程着色和获取进程颜色的两个系统调用并且修改进程通信机制(Binder机制),在核心库中添加一个封装用于给进程着色的系统调用的动态库。并且在应用层增加一个用于给应用和进程重新设置颜色标记的APP。应用隔离架构如图3所示。 首先给进程添加颜色属性,这个颜色属性作为判断是否允许进程通信的依据,并且初始化一个默认值(即系统提供的颜色标记)。在Linux内核层添加两个系统调用:(1)用于给进程添加颜色的系统调用;(2)用于获取进程颜色的系统调用。给进程添加颜色的系统调用被封装到动态库libcolor.so,用于给setcolorAPP的后台程序提供设置进程颜色的API。获取进程颜色的系统调用用于在修改binder机制时提供获取进程颜色的API。并且在内核层修改binder通信机制,添加进程通信的访问控制,根据进程通信规则控制进程通信。应用层的setcolor APP主要包括两个模块:(1)和用户交互的模块,用户可以有选择性地给其他应用添加颜色标记,然后把颜色标记存储到SQLite数据库中。存储应用信息的表1所示,通过应用程序的包名和应用程序的UID唯一标识一个应用。(2)后台运行模块,应用启动后,检查应用是否被用户重新设置颜色标记。如果应用被用户重新设置了一个颜色标记,则把其进程的颜色标记设置为和应用相同的颜色标记。 用户通过获取root权限的setcolor APP有选择性地给其他应用添加颜色标记,应用的颜色标记存储到一个数据库中。在应用运行时,seteolorAPP的后台运行程序先检查应用是否被用户添加颜色标记。如果应用被用户添加颜色标记,那么seteolorAPP的后台程序给其进程的颜色标记设置和应用相同的颜色标记。在进程间通信(即应用间通信)时,binder根据新添加的进程通信规则判断是否允许进程通信。控制进程间的通信实际上是控制应用间的通信,如果两个应用的进程不能通信,即这两个应用不能通信。 进程间通信规则:(1)两个进程的颜色标记是用户设置的且相同,允许进程通信;(2)两个进程的颜色标记是用户设置的且不同,阻止进程通信;(3)其中一个进程颜色标记是系统默认的或两个进程的颜色标记都是系统默认的,允许进程通信。 4 总结 为了分析恶意应用和防范隐私数据泄露,本文总结了Android手机隐私数据源和隐私数据泄露的方式。本文基于Android系统的内核层、函数库层、应用框架层和应用层,设计了一个控制应用间通信的应用隔离系统。用户可以灵活地控制哪些应用之间不能通信,对不同应用间通信造成隐私数据泄露进行防范,从而降低Android手机用户的隐私数据泄露的风险。 |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。