IccTA:在安卓应用程序中检测组件间的隐私漏洞

李丽,亚历山大巴特尔特,菲比申德,雅克克莱因,伊夫勒特拉恩,史蒂文阿尔兹特,.

齐格弗里德·拉索弗特,埃里克·博登特,达米安·奥克托,帕特里克·麦克丹尼尔

*卢森堡大学名称。lastName@uni.陆

达姆施塔特科技大学SPRIDE,姓名。lastName@ec-spride.德

宾夕法尼亚州立大学计算机科学与工程系。psu.edu

威斯康星大学计算机科学系

摘要 这是一个流行的“壁纸”应用程序,在谷歌播放安装上下载超过数百万次,该应用程序被允许(1)访问互联网(用于更新壁纸)和(2)使用设备麦克风(在噪音变化后改变背景)。这些权限,应用程序可以默默地记录用户对话和上传远程给更多的证据如何动摇他们实际处理记录,有必要建立一个精确的分析工具,跟踪任何敏感数据的行从其源指向任何水槽,特别是如果这些是在不同的组件。.

. . . 由于Android应用程序可能泄漏私人数据不小心或恶意,我们建议IccTA,一个静态污染分析仪检测组件隐私泄漏在安卓应用程序sIccTA超越最先进的方法通过支持组件间检测组件之间传播上下文信息,IccTA提高分析的精度IccTA优于现有工具ICC泄漏检测器:机器人和ICC此外,我们的方法检测508个应用程序和2395个ICC泄漏在337应用程序的15000个谷歌播放应用程序。

1.介绍

现代移动操作系统增强了使用经验,使用户可以轻松地安装第三方软件。. 随着安卓操作系统的增长,成千上万的应用程序(也称为应用程序)每天出现在官方安卓市场(谷歌玩)以及一些替代市场的2013年5月,480亿应用程序被安装从谷歌玩商店,截至9月3日,2013年,10亿安卓设备被激活[1]。

Android操作系统在其用户基础和开发基础上的成功部分归功于它的通信模型,称为组件间通信(ICC),它促进了松散耦合应用程序的开发。通过将应用程序划分为可以在单个应用程序中甚至在多个应用程序中交换数据的组件,Android鼓励了软件重用,从而减轻了开发人员的负担。

不幸的是,ICC模型为组件之间的数据交换提供了一种消息传递机制,它可能会被恶意应用程序滥用,威胁用户隐私。事实上,研究人员已经表明,安卓应用程序经常向用户发送私人数据,而没有他们的前科

同意[49]。. . 最近,研究人员研究了ICC方法作为漏洞检测[34]的特性,而不是权限和API调用。然而,关于安卓恶意软件使用ICC的特点仍然缺乏全面的研究。通常情况下,在安卓恶意软件中存在的隐私泄露的程度有多大?

为了回答这样一个问题,必须开发一个安卓分析工具来跟踪隐私泄露。. e., 由于它们在单个组件中操作,因此很容易识别,最近有报道称跨组件隐私泄露了[44]。因此,单独分析组件不足以检测泄漏:有必要对应用程序进行组件间分析。. 安卓应用程序分析师可以利用这种工具来识别泄露私人数据的恶意应用程序。要想使该工具有用,它必须高度精确,并在报告应用程序泄露私人数据时尽量减少假阳性率。

在本文中,我们使用一种静态污染分析技术来处理隐私泄漏,e。. . . g., 路径从敏感数据,称为来源,语句发送数据以外的应用程序或设备,称为sinksA路径可能在一个组件或跨多个组件最先进的方法使用静态分析检测隐私泄漏安卓应用程序主要关注检测组件内部敏感数据泄漏chex[33],例如,使用静态分析检测组件劫持漏洞之间的污染跟踪敏感源和flowdroid[7]执行污染分析在安卓应用程序的单个组件,但具有更好的精度。. . . 最近,一个虚拟机器人[44]被提出在安卓应用中检测基于ICC的隐私泄漏。然而,它目前没有解决内容提供商,四个安卓组件之一,它也不对一些复杂的ICC方法敏感,如绑定服务和启动激活结果。

. . 因此,我们建议IccTA,组件间通信污染分析工具,声音和精确检测ICC链接和泄漏虽然我们的方法是通用的,可以用于任何数据分析,我们在本文中关注使用IccTA检测基于ICC的隐私泄漏验证我们的方法,我们开发了22个应用程序包含基于ICC的隐私泄漏。我们已经将这些应用程序添加到机器人板凳[2],一个 这22个应用程序涵盖了表1中所示的已使用的前8个ICC方法。. . 此外,我们在谷歌Play市场随机选择的15000个真实世界应用上测试了IccTA,我们在337个应用中检测到2395个ICC泄漏,我们还在包含1260个恶意软件的恶意基因组集上启动了IccTA,其中IccTA

. 报告了108个应用程序与534个ICC泄露,通过比较

检测两个数据集的速率r=,我们发现rM alGenome=为8.6%远高于rGoogleP躺. =为2.2%,因此,我们可以得出结论,ICC是

严重被恶意软件用来泄露私人数据,使

ICC是恶意软件检测的一个潜在特征。

本文的贡献如下:

我们提出了一个关于在安卓恶意软件和良性应用程序中使用ICC的实证研究的信息。

我们提出了一种新的方法来解决ICC问题,通过直接连接在代码级的安卓应用程序的不连续性。

我们开发了IccTA,一个组件间污染分析的开源工具。

我们提供了一个改进版本的DroidBench,带有22个新的应用程序,用于评估检测基于ICC的隐私泄露的工具。

最后,我们对IccTA进行了评估,使用了i)机器人平台和机器人平台测试套件,ii)15000个真实世界的安卓应用程序,iii)来自恶意基因组的1260个恶意软件应用程序。

我们作为一个开源项目在线提供了我们的完整实现,以及扩展的DroidBench应用程序和脚本来重现我们的实验结果

https://sites.谷歌。com/site/icctawebpage/

为了更好地减少移动ICC泄露,我们还向上述网站的研究社区发布了445个有问题的应用程序(谷歌Play,MalGenome)。

. 二、动机

激励我们的工作,我们提出一个概述安卓ICC系统强调的影响设计和实现选择II-AWe进一步执行实证研究ICC如何使用安卓应用,暴露使用恶意软件的差异和良性应用(cf部分II-B)。. . 最后,我们给出了一个具体的例子来介绍ICC泄漏。

A.安卓ICC概述

Android应用程序由基本单元组成,称为组件,在一个特殊的文件中描述,清单,包含在应用程序包中。有四种类型的组件:代表用户界面的活动,构成Android应用程序的可见部分;广播接收器等待接收来自其他组件或系统的事件消息或文本消息;作为应用程序之间共享结构化数据的标准接口的内容提供商;以及执行的服务.

. (计算密集型的)在后台的安卓服务组件中的任务是特别的,因为它们的处理是隐藏在设备用户面前的,为恶意行为打开了大量的机会。

Android提供了一种特殊的方法,以下称为ICC方法,用于触发上述组件的任何组合之间的组件间通信。ICC方法以一种特殊的对象作为参数,它为消息指定了目标组件。.

所有ICC方法1. 为了方便某些应用程序使用其他应用程序提供的现有功能,安卓系统允许通过在意图中指定要处理的操作来瞄准目标组件。这种意图被称为隐式意图当使用隐式意图时,e。. g., 对于活动,系统在已安装的应用程序中进行搜索,并向用户提供能够处理该操作的应用程序列表(e。g., 选择一个浏览器来打开一个url)。这些意图还可以为目标组件指定类别、模拟类型和数据。为了选择用于接收隐式意图,包含目标组件的应用程序需要在其清单文件中指定一个意图过滤器,并声明它们处理此类意图的能力。

然而,Android提供了组件直接与其他组件交互的可能性,因此一个组件可以通过命名发送到另一个意图,这些被称为显式意图。. .

B.在安卓应用程序中的ICC用法

据我们所知没有实证调查的使用ICC在安卓应用,鉴

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值