李 晖 王 斌 张 文 汤 祺 张艳丽
X-Decaf : Android平台社交类应用的缓存文件泄露检测
李 晖 王 斌*张 文 汤 祺 张艳丽
(北京邮电大学计算机学院 北京 100876)
由于社交类应用涉及的隐私数据类型非常多,导致这类应用在被广泛使用的同时,频繁出现用户隐私泄露事件,但是目前还鲜有针对社交应用的隐私泄露检测机制的研究。该文结合Android系统的特性,提出一个面向Android社交类应用检测框架X-Decaf(Xposed-based-detecting-cache-file),创新性地利用污点追踪技术以及Xposed框架,获取应用内疑似泄露路径,监测隐私数据的缓存文件。此外,该文给出了对隐私泄露进行评级的建议,并利用该框架对50款社交类应用进行了检测,发现社交类应用普遍存在泄露用户隐私信息的漏洞。
隐私泄露;污点追踪;缓存文件;Xposed;Android系统
iiMedia Research在“2015年中国手机APP市场研究报”的调查报告中显示,截止2015第2季度,中国手机用户规模达到6.57亿人,智能手机用户规模为6.01亿人,庞大的用户基础推动了中国手机应用软件的快速发展。同时,报告中显示,在2014 ~2015年中国手机网民对各类型移动应用欢迎状况调查中,即时通讯与社交应用所占比为64.1%。2016年2月份,微信、QQ活跃用户占比均超过70%。可见,微信、QQ等应用成为了当前手机用户使用最多和最为频繁的移动社交应用。
特别是近年来随着大数据平台的建立与发展,当用户隐私数据成为一种资产,社交应用毫无疑问地成为大数据平台机构的首要监测目标。用户在使用应用的过程中产生了大量的隐私数据,然而用户无法确信应用开发者是否对隐私数据做了保护处理。因此,有必要对社交应用的用户数据保护情况进行研究分析。
Android平台上应用的隐私数据泄露问题已经引起国内外的广泛关注。由于Android是一个基于权限控制的操作系统,因此很多安全解决方案集中在针对权限的分析上。文献[1]提出通过动态分析平台VetDroid,重建细粒度的权限分析,进而判别应用程序的敏感行为;文献[2]设计了一个基于上下文的访问控制机制,通过这个机制,基于用户的特定的上下文,可动态授予或撤销应用程序的权限;文献[3]提出一个细粒度的、以用户为中心的权限模型,这个模型允许用户对他们安装的软件进行有选择的授予权限。文献[4]基于访问控制提出了组件级别的权限方案让开发者更好地管理应用中组件的安全性。在这些研究中,由于基于权限控制对用户数据泄露检测的方式需要用户的频繁参与,被认为是一种不实用的手段。
还有一部分学者侧重于分析某一类数据的隐私检测与隐私保护。文献[5]提出了CHEX,一种静态分析方法,可以自动审查Android应用程序的组件劫持漏洞,保护用户数据。文献[6]提出的一个基于内容的细粒度运行时访问控制系统,对应用程序的照片访问进行控制。文献[7]通过研究Android手机的外部设备对用户隐私数据的泄露,提出了针对蓝牙、NFC等方式连接的外部设备的管理。在文献[8,9]中,针对地理位置信息的泄露,学者们提出了相应的保护策略。
此外,研究人员通过修改Android系统源代码和Android应用程序,对隐私数据的泄露进行追踪。文献[10]基于Linux Container机制,实现应用程序分离以及敏感组件隔离,并保护隐私数据。文献[11]将解决隐私保护作为一种学习的问题,利用贝叶斯定理等建立定量/概率的二元判断模式,根据扩散点所处的环境来判断它是不是隐私泄露。TaintDriod[12]通过对Android系统虚拟机以及解释器的修改,提供了完备的动态污点追踪功能。许多学者也在TaintDroid基础上提出了更为优化的方案[13,14]。文献[15,16]通过对Android应用程序进行字节码重写,加入相应的隐私检测策略,通过应用重打包的方式实现隐私追踪与漏洞检测。
以上是国内外研究学者针对Android平台应用软件隐私泄露以及污点追踪的常用技术。由于社交类应用涉及的系统权限以及隐私数据类型种类很多,因此很难使用现有的基于某类权限或者隐私数据的框架方案检测隐私泄露;同时,如果利用基于TaintDroid的思路,采用修改Android系统的方法策略,或者修改并重打包应用的方式去分析应用的隐私泄露,不仅实验成本增加,而且对应用的运行效率产生很大影响。可见,现有的隐私泄露分析方法并不适用于社交类应用。
针对社交类应用,本文提出了一个检测框架X- Decaf(Xposed-based-detecting-cache-file),创新性地以社交应用运行中产生的缓存文件作为研究对象,利用污点追踪技术以及Xposed框架,获取应用内疑似泄露路径,对敏感数据的泄露情况进行检测。Xposed是Android平台成熟的钩子技术(Hook)框架,可运行在dalvik, art虚拟机上,并能替换任意java方法。Xposed框架作用于Android系统Zygote启动阶段,通过替换app_process进程,以及对Android虚拟机运行时的修改,完成对Zygote进程的劫持。Android系统中应用是由Zygote创建,应用所运行的进程中也包含Xposed框架,因此,利用Xposed提供的接口编写对应的Hook Module,可实现对应用运行中的行为动作进行监控、修改甚至替换。利用Xposed的这个特性,本文所设计的X-Decaf可对社交应用的敏感数据进行分类统计,灵活地选择待检测的隐私数据类型,在待测应用运行时动态监测应用本身对缓存文件的处理情况,同时具有与Android系统低耦合、无需修改应用程序、低功耗等特点。
本文第2节对社交应用的隐私数据进行了定义,并给出泄露评判标准;第3节具体介绍X-Decaf框架系统;第4节给出了利用X-Decaf框架对国内主流的50款社交应用进行泄露分析的实验数据和结果分析;第5节为本文结论,并讨论了本框架的不足以及未来相关工作。
2.1隐私数据
广泛使用的移动社交类应用涉及到大量的用户数据信息,因此首先需要明确本文所讨论的社交类应用的隐私数据类型。本文通过对市场主流50款社交应用进行分析统计(如图1),发现图片、视频、语音、地理位置、联系人、电话短信等用户隐私数据在社交应用中均不同程度地被涉及到。由于本文是对社交类应用缓存数据泄露的研究,并且在实验过程中显示,多媒体类型用户数据(图片、视频、语音等)常常产生大量缓存文件。因此,本文将图片、视频、语音等作为首要隐私数据,研究社交应用对这些隐私数据的泄露情况。
图1 社交类应用涉及用户隐私数据类型统计图
2.2隐私泄露定义
在Android系统中,系统在/data/data/目录下,为每个应用创建独享的文件目录。应用程序在运行过程中默认在该目录下创建数据文件。该文件目录的安全性由Android系统本身提供的安全保护机制来保证。当某应用进程访问文件时,首先需要通过基于UID/GID的DAC安全检查,接着进行基于SEAndroid的MAC安全检查。然而,即便应用的隐私数据保存在该目录下,也面临手机被破解(root)后,恶意软件冲破Android保护机制,获取用户隐私数据的风险。
同时,许多原因造成应用开发者并未将应用的所有运行数据存放在对应的/data/data/目录下。这些原因主要如下:(1)应用开发者在开发应用时,未考虑应用的安全性,随意调用Android系统API(例如getExternalStorageDirectory( )等),并将应用运行时产生的缓存文件、数据信息等放在一些公共目录下;(2)Android手机配置参差不齐,内存小的手机需SD卡扩展,因此,一些应用运行的缓存文件被存放在SD卡公共目录下,同时应用并未对这些公共目录下的文件数据进行管理,手机内的任何应用均可以访问SD卡目录下的文件,这时便存在隐私泄露问题。
传统的隐私泄露行为指应用未显式告知用户需远程收集相关信息,却利用网络等途径收集并传播用户隐私。本文以一种新的角度定义用户的隐私泄露。本文讨论的隐私泄露行为是指应用由于自身设计的缺陷以及运行期间的表现,产生了涉及用户隐私的缓存文件,并且缺乏良好的策略管理这些缓存文件。为了分析社交软件是否面临着隐私泄露的风险,我们利用X-Decaf框架对社交应用运行时产生的缓存文件进行检测分析,分析缓存文件是否产生含有隐私数据,以及应用本身是否对这些敏感缓存文件进行生命周期管理。
2.3 隐私泄露评判标准
缓存文件隐私泄露的评判标准的定义,应遵照以下依据:
(1)缓存文件存储路径:根据2.2节的讨论,Android系统中,应用在运行时将在以下文件路径中产生缓存文件,如表1所示。
表1缓存文件产生路径
缓存文件产生路径路径简记 /data/data/包名/DATA_PRI /data/data/包名/(全局可读)DATA_PUB /storage/emulated/0/Android/data/包名/SD_PRI /storage/emulated/0/SD_PUB
在Android系统中,文件的存储路径一定程度上反映了文件的访问权限。根据文件的存储路径分析Android平台上常见的攻击场景如下:
DATA_PRI:只限应用自身可以访问,攻击者在不破解的情况下很难获取该目录下文件信息;
DATA_PUB:若目录下的文件为全局可读,手机中任意应用均可访问。攻击者可以通过恶意应用访问该目录文件;
SD_PUB, SD_PRI:由于是在SD卡公共目录下,攻击者可以随意篡改。
此处区分SD_PUB与SD_PRI,是由于SD_PUB目录反映出来的是应用开发者的不规范行为,并且利用Android系统设置中的清理数据功能或者删除应用可以删除SD_PRI目录下的所有数据;然而除非应用自身去管理,否则SD_PUB目录下的数据是不被删除的。
(2)缓存文件保护状态:通过上述攻击场景分析可看出,仅仅依靠Android系统的文件目录安全机制无法保证应用产生的数据文件的安全。常见的文件保护手段有混淆、加密等,即便攻击者冲破Android系统的保护机制,获取到了应用产生的文件,也需花费很大代价将保护后的文件还原。经保护处理的缓存文件提高了安全性,同时也避免了隐私泄露。因此,文件保护与否也是对文件的隐私泄露分析的重要依据。
(3)缓存文件生命周期:缓存文件的生命周期是指缓存文件从产生、转移、存储以及删除等过程。在整个生命周期中,缓存文件都有可能遭受攻击者的恶意攻击。因此,对于应用在缓存文件的生命周期中对缓存文件的管理,情景模拟主要有以下3种:
情景1:应用在运行时产生缓存文件,并且缓存文件在应用退出后销毁;
情景2:缓存文件在应用退出后依据存在,但应用内部提供清理缓存等相关功能,可将缓存文件删除;
情景3:应用内部提供清理缓存等相关功能,依然无法将缓存文件删除。
针对以上3个评判依据,缓存文件隐私泄露的评判标准定义了如下:对于保护处理的缓存文件,我们默认应用的保护手段是安全的,因此不存在泄露情况。对于未保护的缓存文件,根据其存储路径以及生命周期,隐私泄露评判标准如表2所示。
表2未保护隐私泄露评判标准
DATA_PRIDATA_PUBSD_PRISD_PUB 情景1轻度泄露中度泄露中度泄露中度泄露 情景2轻度泄露重度泄露重度泄露重度泄露 情景3轻度泄露超重度泄露超重度泄露超重度泄露
根据上述隐私泄露评判标准的定义,并结合目前常见的Android平台攻击场景,将隐私泄露等级分为无泄露、轻度泄露、中度泄露、重度泄露以及超重度泄露,具体为:
无泄露:应用在运行中并未产生缓存文件或者缓存文件是经过保护处理;
轻度泄露:需要攻击者破解手机后,才能进行相关隐私窃取;
中度泄露:无需破解手机,需攻击者监听应用运行时的动作;
重度泄露:攻击者仅需利用Android提供的接口或直接利用文件夹工具查看相关路径,便可进行攻击;
超重度泄露:应用自身提供的清理缓存功能并未对缓存文件进行清除,本文视为“超重度泄露”。
X-Decaf框架依据以上隐私泄露定义以及标准,将应用、隐私数据、缓存文件联系起来,对应用的泄露情况进行高效的分析。
3.1总体框架
本文结合动态检测与静态分析技术,设计并实现了X-Decaf(图2)框架,该框架具有与Android系统低耦合,无需修改应用程序,检测精度高以及对应用运行影响低的特点。
图2 X-Decaf总体框架
X-Decaf主要由3部分组成:敏感函数库、污点追踪(由动态追踪与污点标记组成)以及缓存文件分析(分为策略判定与人工检验)。
(1)敏感数据库:通过对市场上社交应用大量分析,统计出应用调用系统API的情况,筛选出与敏感数据产生、传播相关的系统API,最终形成X-Decaf框架的敏感函数库,针对性地分析隐私数据的泄露情况。
(2)污点追踪:污点追踪主要由两部分组成:动态追踪模块是基于Xposed框架,通过向敏感数据库请求相关隐私数据的系统API函数,对应用的敏感函数进行钩子技术(Hook)操作,实现在隐私数据产生、传播以及最终的存储过程中的监控;污点标记模块针对不同的隐私数据类型进行污点标记。通过源隐私数据类型、源文件名,制定相应策略,实现基于文件的污点标记。
(3)缓存文件分析:首先,人工验证阶段是依据第2节中对隐私泄露的定义以及标准来执行对应的检测;其次,策略判定为自动化的监测脚本,将监测所有污点追踪阶段产生的污点标记缓存文件。策略判定模块依据污点缓存文件的TAG值以及隐私泄露评判标准(见表2),监测污点缓存文件变化情况,并最终形成泄露报告。
图3 X-Decaf具体工作流程
3.2具体技术
图3显示了X-Decaf整个的运行流程,其各模块介绍如下:
(1)敏感函数库建立:在X-Decaf框架的设计初期,我们对市场上近百款社交应用进行统计采集,
分析社交类软件的隐私数据与对应的系统API的相关性。应用程序产生、获取或者传播用户隐私数据需申请相关权限并调用相关系统API,且这些系统API是固定的(例如照片涉及调用相机功能、读取系统图库、图片压缩、文件I/O等系统API)。通过常用的软件分析工具(如apktool, IDA pro等),对应用软件逆向反汇编,分析并统计出与敏感数据产生、传播相关系统API,最终形成X-Decaf框架的敏感函数库。
本文主要针对社交软件的缓存文件进行分析,因此,敏感函数库将涉及语音、照片、视频这3类包含大量用户信息的敏感数据的系统接口。为方便自动化脚本申请检测的敏感函数,敏感函数库以XML格式对外开放敏感API策略。表3列出了敏感函数库中语音数据对应的部分系统敏感API策略。
sensitive-policy标签。该标签为指定隐私数据的根标签。其后紧跟的属性显示了该隐私策略标签对应的隐私类型(privacy-type)。
uses-permission标签。该标签表示该类型隐私数据涉及到系统敏感权限,它与Android应用中声明的权限一致。
class-info标签。该标签表示该类型敏感数据涉及到的Android系统API的类信息,其后紧跟的属性(class-name)表示具体的类名。
method-info标签。该标签列出了该类型敏感数据具体的方法信息,其后紧跟的属性分别表示方法名(method-name)以及方法参数(method-args)。
(2)动态追踪:敏感函数库中的敏感函数是应用运行期间的主要监测对象。动态追踪模块首先向敏感函数库请求这些敏感函数,然后利用Xposed框架以这些敏感函数作为检测对象,生成对应的函数劫持模块(Hook Module),之后在待测应用运行前将对应的模块(Module)加载到手机系统中,最后,在应用运行时进行检测,产生运行日志。
(3)污点标记:X-Decaf框架的污点标记模块主要是对缓存文件的筛选与污点标记,主要步骤如下:
(a)缓存文件筛选: 在动态追踪阶段,X-Decaf监控系统I/O操作。由于系统在运行过程中存在许多系统级文件I/O操作,如果不进行过滤操作,污点标记将标记出许多无关项,同时影响整个系统的运行速度。为了提高整个污点标记的精度以及尽可能小地影响待测应用的性能,X-Decaf框架对文件进行了细粒度的过滤。
首先,X-Decaf一旦发现缓存文件后缀名为.jpg, .jpeg和.bmp等格式,直接判断为敏感缓存文件;对于非常规文件后缀名,X-Decaf框架才对其做进一步数据流检测(例如常见的jpg格式文件的固定文件头由“JFIF”字符串组成);此外,如果应用本身对缓存文件做了保护处理(混淆、加密等手段),X-Decaf也可以检测出来,方便污点标记阶段进行处理。这样,无论缓存文件以何种形式存在,通过X-Decaf框架对文件数据流进行过滤,依旧可以追踪到对应的泄露缓存文件。
(b)污点标记:通过前一阶段的缓存文件筛选,X-Decaf已经筛选出敏感缓存文件(包含已保护处理的缓存文件)。X-Decaf采用污点标记机制对敏感缓存文件进行标记,即在有缓存文件名后追加对应的TAG。TAG由缓存文件对应的隐私数据类型、缓存文件的哈希值以及文件的保护状态(0表示未保护,1表示经过保护处理)3部分组成。例如,照片类缓存文件的原文件名为“cache.tmp”,该文件的哈希值为hash,并且文件未经应用保护处理,则经过X-Decaf标记后缓存文件名变为“cache_photo_ hash_0.tmp”。这样处理的好处有:①不改变待检测应用对缓存文件的调用逻辑;②污点TAG可以传播,并且可以将source文件与之后的所有缓存文件关联起来;③可监测出数据流在各缓存文件传播过程中文件保护状态是否改变。
(4)人工验证:通过X-Decaf对应用的污点追踪,产生了一系列污点标记的缓存文件,需对这些污点标记的缓存文件进行分析。首先,通过人工测试(如2.3节中描述的情景模拟),验证社交应用软件本身是否对缓存文件进行生命周期管理;其次,依据2.3节隐私泄露的评判标准来执行检测,根据文件的存储路径以及文件保护状态,观察缓存文件在测试过程中,是否存在或已被删除,在“策略判定”阶段执行相应策略。
(5)策略判定:策略判定与人工验证协调配合完成。策略判定为自动化的监测脚本,将监测所有污点追踪阶段产生的污点标记缓存文件,即依据污点缓存文件的TAG值,监测污点缓存文件的保护状态变化、文件路径、文件生命周期,同时根据隐私泄露评判标准(表2所示),最终形成泄露报告。
表3敏感函数库语音数据敏感API函数(部分)
3.3 X-Decaf框架分析
与同类型泄露检测框架相比,X-Decaf具有如下优点:
(1)系统耦合度降低且无需修改应用程序:目前多数动态污点追踪或者隐私泄露检测框架均需要修改Android系统,例如建立在TaintDroid基础上的研究就需要修改Android系统。而现有的另外一些检查方法则将修改目标转向待检测应用本身,对应用进行字节码重写与策略插入,然而,随着应用软件的防篡改、签名机制等保护措施的不断完善使重打包应用的代价逐步增大。X-Decaf既不需要对Android系统平台进行修改,也不需要对应用程序进行字节码重写,巧妙地从系统API入手,分析并利用隐私数据与对应的系统API的相关性,针对隐私数据泄露进行检测。
(2)检测多类型隐私泄露:敏感函数库对外提供了常见应用隐私数据与系统API的关系模型。因此X-Decaf针对不同隐私数据,可以灵活地选取多种敏感函数策略进行监测。
(3)多应用横向检测:通过研究发现,应用在操作敏感数据时所调用的系统API具有规律性。因此,X-Decaf系统可以方便地同时监测市场上多种应用对某类敏感数据的泄露情况。
为分析国内市场上社交应用的隐私泄露情况,利用X-Decaf框架对国内主流的50款社交应用进行了多类型隐私数据基于缓存文件的泄露分析。测试手机为Nexus5, Android系统版本为5.1.1,内存16 G,不支持外置SD卡,且已经被破解。
4.1隐私数据泄露纵向分析
首先使用X-Decaf对国内最流行的手机社交应用-微信进行了纵向隐私数据分析,主要对微信内隐私数据(语音、图片、视频等)进行缓存文件泄露分析,同时对缓存文件泄露的路径个数进行了统计。由表4所示,X-Decaf框架可以精确地监测到某一数据源在应用运行过程中,产生、转移、传播等动作对应的缓存文件。例如对于同一源照片数据,微信将为其产生3个缓存文件(*.jpg为原图片拷贝,th_*为小的缩略图,th_*hd为大的缩略图)。X- Decaf可对应用运行中数据的精准分析,不会漏报、误报任一条隐私泄露路径。
4.2隐私数据泄露横向分析
对于国内市场的主流社交应用,我们利用X- Decaf进行了横向分析,分析了应用对语音、图片、视频数据的泄露情况,并列出对应的泄露等级以及泄露路径的个数,结果如表5所示。
4.3 社交应用隐私泄露评分
应用对不同类型隐私数据产生不同等级、不同数量的泄露,这也是社交应用隐私泄露评分需考虑的。对于应用隐私数据泄露,我们定义了如表6的泄露评分规则以及式(1)所示的分数计算公式:
其中,表示应用对某类型隐私数据的泄露分数,V表示泄露等级对应的泄露评分,表示该类型隐私数据泄露的路径个数。
表4微信对隐私(图片、语音、视频)泄露情况
微信(6.3.13)泄露路径泄露路径个数 语音SD_PUB/tencent/MicroMsg//voice2/../msg_*.amr1 图片SD_PUB/tencent/MicroMsg/../image2/../*.jpgSD_PUB/tencent/MicroMsg/../image2/../th_*SD_PUB/tencent/MicroMsg/../image2/../th_*hd3 视频SD_PUB/tencent/MicroMsg/../video/*.mp4SD_PUB/tencent/MicroMsg/../video/*.jpgSD_PUB/tencent/MicroMsg/../draft/..SD_PUB/tencent/MicroMsg/../draft/*.thumb4
表5主流社交应用关于语音、照片、视频类隐私数据的泄露情况
应用程序应用版本语音图片视频 泄露等级泄露路径个数泄露等级泄露路径个数泄露等级泄露路径个数 微信6.3.13超重度泄露1超重度泄露3超重度泄露4 手机QQ6.2.3.2700超重度泄露1超重度泄露3超重度泄露2 微博6.3.0无泄露0重度泄露2重度泄露2 易信4.3.1超重度泄露1超重度泄露2超重度泄露1 陌陌6.7_0413超重度泄露1超重度泄露2超重度泄露3 无秘5.3.0重度泄露1重度泄露1无泄露0
依据表5的结果,我们得出主流社交应用针对语音、照片、视频隐私数据的泄露分数(图4所示)。泄露分数反映了应用对隐私数据的缓存文件的处理情况。微信由于其相关复杂业务以及提供的丰富社交功能,使得其对于这3类隐私数据的泄露分数都居于首位也是在意料之中。
表6泄露评分规则
泄露等级泄露评分V 超重度泄露4 重度泄露3 中度泄露2 轻度泄露1 无泄露0
最后,X-Decaf继续扩大到50款社交应用,并针对社交应用最流行的隐私数据-照片进行分析。如图5,在随机的抽检样本中,除了4%的社交应用由于不涉及照片隐私数据而不存在泄露外,其他96%应用均存在重度泄露以上的情况,并且这其中有74%的应用是超重度泄露。这充分反映出了目前应用开发者在开发应用时,代码编写不规范并且未考虑用户的隐私泄露风险。
图4 主流社交应用关于语音、照片、视频的泄露分数
4.4 对社交应用运行性能影响
为测试X-Decaf在检测应用隐私泄露过程中对应用运行性能的影响,我们选择Android SDK提供的DDMS(Dalvik Debug Monitor Service)中的“method profiling”工具。利用DDMS,可以方便地查看手机终端应用进程的执行情况。其中“method profiling”工具可在无源码的情况下,对应用运行时进行动态分析。当对应用进程某段运行时开启调试后,“method profiling”会反馈调试过程中涉及到的所有Java方法,包括方法的执行时间、调用次数、在总体耗时中的占比等信息。这些运行信息可用于分析社交应用的运行性能。
我们依旧以微信作为研究对象,通过以下5个典型的测试场景,分析X-Decaf框架对微信运行性能耗时(单位为ms)的影响:
测试1:在微信非聊天界面,进行多处相同点击操作,判断X-Decaf对微信整体运行的性能影响;
测试2:调用摄像头拍照并发送,判断X-Decaf对微信拍照发送流程影响;
测试3:连续发送9张图片,判断X-Decaf对图片发送流程的性能影响;
测试4:连续发送3个时长为6 s小视频,判断X- Decaf对语音发送流程的性能影响;
测试5:连续发送9张图片以及3个6 s小视频,判断X-Decaf对图片、视频的发送流程的性能影响。
测试中,每项测试均在20次以上,且使用相同的wifi网络。为防止由于人工测试、网络条件以及缓存对下次实验结果的影响,在每次测试结束时,将应用运行中产生的缓存清除。
由图6的测试结果可以看出, X-Decaf在未修改应用程序的情况下,对应用运行性能造成的影响很低。而X-Decaf作为一款缓存文件泄露检测的框架,作用于Android框架层,并未对待测应用的运行逻辑产生影响。
图5 社交应用针对照片隐私数据的泄露情况统计表 图6 X-Decaf对微信运行性能影响分析
社交应用已然成为最受用户欢迎的移动类应用。通常情况下,用户认为该类应用在从设计开始就应该考虑如何保护用户隐私的问题。然而实验结果表明,多数的社交类应用在对多媒体类型数据使用过程中存在严重的缓存泄露情况。
尽管X-Decaf实现了预期目标,但同时也存在一些不足,我们将从以下方面改进X-Decaf:(1)敏感函数库的扩建。扩大用户敏感数据的定义范围,分析这些敏感数据传播中调用的系统API,扩充敏感函数库。(2)支持更多类型应用。将调整X-Decaf的相关流程,使其支持更多类型的应用缓存数据的检测,并能够支持对更多数据类型的缓存泄露追踪。(3)缓存文件的透明保护。透明保护应用产生的缓存文件,即对缓存文件进行自动加密,当应用读取缓存数据时,对加密的缓存文件进行自动透明解密,使得在不影响应用本身的业务逻辑的同时,有效防止缓存文件泄露引起的隐私数据泄露。为达到不影响原有应用的运行,这将是一个很大的挑战。
[1] ZHANG Y, YANG M, YANG Z,Permission use analysis for vetting undesirable behaviors in android apps[J]., 2014, 9(11): 1828-1842. doi: 10.1109/TIFS.2014.2347206.
[2] Shebaro B, Oluwatimi O, and Bertino E. Context- based access control systems for mobile devices[J]., 2015, 12(2): 150-163. doi: 10.1109/TDSC.2014.2320731.
[3] Nauman M, Khan S, Othman A T,. Realization of a user-centric, privacy preserving permission framework for Android[J]., 2015, 8(3): 368-382. doi: 10.1002/sec.986.
[4] WU L, DU X, and ZHANG H. An effective access control scheme for preventing permission leak in Android[C]. 2015 International Conference on Computing, Networking and Communications (ICNC), IEEE, Anaheim, CA, USA, 2015: 57-61. doi: 10.1109/ ICCNC.2015.7069315.
[5] Lu L, Li Z, Wu Z,. Chex: Statically vetting android apps for component hijacking vulnerabilities[C]. Proceedings of the 2012 ACM Conference on Computer and Communications Security, North Carolina, USA, 2012: 229-240.
[6] Tan J, Drolia U, Martins R,. Short paper: Chips: Content-based heuristics for improving photo privacy for smartphones[C]. Proceedings of the 2014 ACM Conference on Security and Privacy in Wireless & Mobile Networks. Oxford, UK, 2014: 213-218. doi: 10.1145/2627393.2627394.
[7] Naveed M, Zhou X, Demetriou S,. Inside job: Understanding and mitigating the threat of external device mis-binding on Android[C]. Network and Distributed System Security Symposium, San Diego, California, USA, 2014. doi: 10.14722/ndss.2014.23097.
[8] Rahman M, Ballesteros J, Carbunar B,. Toward preserving privacy and functionality in geosocial networks[C]. Proceedings of the 19th ACM Annual International Conference on Mobile Computing & Networking, Miami, Florida, USA, 2013: 207-210.
[9] Fawaz K, Feng H, and Shin K G. Anatomization and protection of mobile apps’ location privacy threats[C]. 24th USENIX Security Symposium (USENIX Security 15). Washington, D.C., USA, 2015: 753-768.
[10] Yan L, Guo Y, and Chen X. SplitDroid: isolated execution of sensitive components for mobile applications[C]. International Conference on Security and Privacy in Communication Systems. Springer International Publishing, Dallas, TX, USA, 2015: 78-96.
[11] Tripp O and Rubin J. A Bayesian approach to privacy enforcement in smartphones[C]. 23rd USENIX Security Symposium (USENIX Security 14). California, USA, 2014: 175-190.
[12] Enck W, Gilbert P, Han S,. TaintDroid: An information-flow tracking system for realtime privacy monitoring on smartphones[J].(), 2014, 32(2): 5. doi: 10.1145/ 2619091.
[13] Hsiao S W, Hung S H, Chien R,. PasDroid: real- time security enhancement for Android[C]. 2014 Eighth International Conference on Innovative Mobile and Internet Services in Ubiquitous Computing (IMIS), Birmingham, UK, 2014: 229-235.
[14] Bal G, Kai R, and Hong J I. Styx: Privacy risk communication for the Android smartphone platform based on apps' data-access behavior patterns[J].&, 2015, 53: 187-202.
[15] Cui X, Yu D, Chan P,. Cochecker: Detecting capability and sensitive data leaks from component chains in android[C]. Information Security and Privacy. Springer International Publishing, Wollongong, NSW, Australia, 2014: 446-453.
[16] Zhang M and Yin H. Efficient, context-aware privacy leakage confinement for android applications without firmware modding[C]. Proceedings of the 9th ACM Symposium on Information, Computer and Communications Security. Kyoto, Japan, 2014: 259-270.
李 晖: 女,1970年生,副教授,硕士生导师,研究方向为密码学及其应用、移动通信安全、智能终端安全.
王 斌: 男,1992年生,硕士生,研究方向为智能终端安全、移动操作系统安全和软件安全.
张 文: 男,1982年生,博士生,研究方向为智能终端安全、移动操作系统安全和软件安全.
汤 祺: 女,1991年生,硕士生,研究方向为智能终端安全、移动操作系统安全和软件安全.
张艳丽: 女,1990年生,硕士生,研究方向为智能终端安全、移动操作系统安全和软件安全.
X-Decaf : Detection of Cache File Leaks in Android Social Apps
LI Hui WANG Bin ZHANG Wen TANG Qi ZHANG Yanli
(,,100876,)
Since social applications involve various types of information related to the user privacy, events of privacy leakageoccur frequently along with their popular applications and few studies are available on the privacy leakage detection for social applications. With the combination of the characteristics of the Android system as well as the exploitation of the taint trackingtechnology and Xposed framework,a privacy leakage detection tool named X-Decaf (Xposed-based-detecting-cache-file) is proposed, which is oriented to social applications on Android platform. It suspects the leakage paths within the applications and detects the privacy data’s cache files.This paper also presents a suggestion for the evaluation of the privacy leakage. Evaluation results of 50 kinds of Android social applications show that many vulnerabilities of user privacy leakage exist in the social applications on Android platform.
Privacy leakage; Taint tracking; Cache file; Xposed; Android system
TP309
A
1009-5896(2017)01-0066-09
10.11999/JEIT160555
2016-05-28;改回日期:2016-10-12;
2016-12-14
王斌 wangbin_bupt@163.com
国家自然科学基金资助(61370195),中兴通讯产学研项目
The National Natural Science Foundation of China (61370195), ZTE Corporation and University Joint Research Project