6      应用程序研究

款流行的应用程序是怎么使用用户敏感数据的。选取的应用程序可以根据相应的权限通过Internet获得各种各样的用户数据。我们研究发现三分之二的这些数据暴露了用户详细的地理位置信息,唯一的电话标示,以及电话号码通过在安装的时候授予一些看似没有危险的访问权限。这个发现证实了TaintDroid可以用来监控运行时的用户的隐私敏感数据以及能过准确的监控相关的应用程序的数据暴露。

6.1     实验装置

在2010年初的一项调查是关于在Android Market上的每个类别最受欢迎的50款免费的应用程序(总数是1100个)揭示了大约三分之一的应用程序(358/1100)通过联网获取了地理位置,照相机,以及音频数据。从这些软件当中我们随机的挑选了30款最受欢迎的应用程序(占样本总数的8.4%)覆盖了12个类别。表 2列举了这些应用程序在安装是要求的权限。注意这些并不能反映出进入并且使用敏感数据。

我们研究了者三十个下载的应用程序通过启动应用程序,执行任何初始化的操作,注册这些都是必要的,然后手动的执行这些功能。我们记录下系统日志通过来自TraintDroid信息:被标记的binder信息,被标记的文件输出,被标记的网络信息以及远程的网络地址。整个实验(在2010年的5月)持续略超过100分钟,生成了22,594个包(8.6MB)并且1,130个TCP链接。为了验证我们的结果,我们同样还记录了网络流量通过使用tcpdunmp在WiFi上的接口并且反复实验在多个Nexus One 手机上,执行相同的版本的TaintDroid建立在Android 2.1上。尽管用于实验的手机有一个有效的SIM卡,但是这个SIM卡被阻止活动了,迫使所有的数据包传输都通过无线的接口。包跟踪只是用于验证通过TaintDroid标记的接触的受污染的数据。

粗了网络连接跟踪,我们还指出是否应用程序获得用户的同意(显示或者隐式)出口的敏感信息。这个通过额外的上下文信息来识别可能的隐私违规行为。例如,通过选择“使用我的地理位置”在天气应用程序中,用户是默认同意披露地理坐标给天气服务器的。

表2应用程序组要求的权限(L:laocation,C:camera,A:audio,P:phone state).Android Market 市场类别显示在括号,显示出了应用程序的多样性。

注意:列出的名字是对应在手机上安装的名字并不是列在Android Market市场上的。所有列出的应用程序都要求可以访问Internet。

6.2     调查结果

表 3总结了我们的发现结果。TaintDroid标记了105个TCP的连接包含隐私敏感数据的污染信息。我们手动标记了每个信息根据可用的上下文,包括远程的服务器名称和时间相关应用程序日志消息。我们使用了远程主机名作为说明数据被发送到服务器提供的应用程序功能或者是第三方来使用。通常情况下,信息包含明文,复制类别,e.g.,一个HTTP GET请求包含地理位置坐标。但是,21个被标记的信息包含了二进制的数据。我们的调查显示出这些信息是由手机的Google地图以及FluryAgent的APIs和包含了污染的隐私敏感数据。这些结论的支撑是通过当APP收到了一个污点包裹通过系统的地理位置管理器之后消息会立即的传播开来。我们现在扩展了我们的研究结果为扩大每个类别并且反应潜在的隐私侵犯。

表3研究的应用程序中有20个存在潜在的隐私侵犯。注意三个应用程序有多个违规行为,其中一个有范围了者三个类别中的。

注意 TaintDroid标记了这一类的9列应用,但只有7个院士传播IMEI没有提及这种实践的EULA。据我们所知,二进制消息包含了受污染的位置数据。

电话信息:表 2展示出了在30个应用程序中的21个申请了读电话状态以及联网的权限。我们发现21个中的2个应用程序传送给他们的服务器(1)手机的电话号码,(2)IMSI号它是一个15位的数据编码用于标示个人用户在GSM网络的功能,(3)ICC-ID数字是一个唯一的SIM卡的序列号。我们验证消息是正确的标记通过检查明文的有效负载。在任何一种情况下都可以告知用户这个信息传播了电话信息。

这个发现展示出了Android的coarsegrained访问控制提供了足够的保护对第三方应用程序试图收集敏感数据。此外,我们发现了一个应用程序在每次手机重启的时候都会传送电话信息。虽然这个应用程序显示出条款是第一次使用,使用条款中并没有指定集合的高度敏感数据。令人惊讶的是,这个应用程序传递手机数据在安装之后,第一次使用之前。

设备唯一ID:设备的IMEI同样被应用程序所暴露。IMEI号用于唯一标识一部手机并且用于阻止被盗手机用于访问移动网络。TaintDroid标记展示出了有9款应用在传播IMEI号。在这9款中的7款要么不呈现最终用户许可协议(EULA)或不指定收集的EULA。其中的7款应用程序是一个流行的社交网络应用程序或者是一些基于地理位置信息服务的应用程序。此外,我们发现7个当中的2个应用程序包含了IMEI当设备传输地理坐标到他们的内容服务器,潜在的利用了IMEI作为客户机的ID。

相比之下,这9个当中的2个应用程序处理IMEI更加的谨慎,因此我们不把他们归纳在属于潜在隐私侵犯这一类。一个应用程序展示出了一个隐私声明表示出了应用程序收集的设备ID。其他的使用hash后的IMEI代替了这个数字本身。我们确认这个事实通过比较来自两个电话不同的结果。

来自广告服务器的位置数据:一半的研究应用程序展示出了暴露位置数据给第三方的广告服务器而没有任何隐式或者是显示的让用户知晓。在这其中的15个应用程序,仅仅只有两个展示出了EULA在第一次运行的时候;并且EULA也展示出了这种做法。展示出的位置信息同样是明文的二进制形式。暴露出的地理位置信息也是明文和二进制的信息。后者强调了TaintDroid的优势,简单的基于模式的包扫描信息。应用程序发送地理位置数据的明文给了admob.com,ad.qwapi.com,ads.mobclix.com(11个应用程序)使用二进制程序到FlurryAgent(4个应用程序)。纯文本的位置暴露在AdMob发生在HTTP Get的字符串:

...&s=a14a4a93f1e4c68&..&t=062A1CB1D476DE85B717D9195A6722A9&d%5Bcoord%5D=47.661227890000006%2C-122.31589477&...

调查在AdMob的SDK展示了s=参数,是一个表示独特应用出版商,并且coord=参数提供了地理位置坐标。

对于FlurryAgent,我们证实了位置信息暴露通过以下的一些事件。首先,一个命名为“FlurryAgent”组件注册了位置管理器来接收位置的更新。然后,TaintDroid打印出信息展示出应用程序接收污点包裹来自地理位置管理器。最后,应用程序报导“发送报告到http://data.flurry.com/aar.do”当接收到污点包裹的时候。

我们的实验表明了15款应用程序收集地理位置数据然后传送给广告商。在这些案列当中,地理数据传输广告服务器即使没有广告展示在应用程序中的。

TaintDroid:智能手机监控实时隐私信息流跟踪系统(四)的更多相关文章

  1. TaintDroid:智能手机监控实时隐私信息流跟踪系统(一)

    1.1     摘要 现今,智能手机操作系统不能有效的提供给用户足够的控制权并且很清楚的了解到第三方的应用程序是如何使用其的隐私数据.我们使用了TaintDroid来阐明这个缺点,其是一个高效的,全系 ...

  2. TaintDroid:智能手机监控实时隐私信息流跟踪系统(三)

    4.3   原生代码标记传播 Native 代码是不受TaintDroid监控的.理想情况下,我们获得了相同的传播语义当使用相同的解释副本时.因此,为了精确的在Java层进行污点监控,我们定义了两个必 ...

  3. Sentry实时应用错误跟踪系统在Kubernetes中私有化部署

    应用错误跟踪系统:对软件系统运行过程中产生的错误日志进行收集从而实现监控告警. 虽然软件错误❌是不可避免的,但是可以降低错误数. 提高对错误的治理能力能让错误带来的损失降到最低 ​

  4. 1.8-1.10 大数据仓库的数据收集架构及监控日志目录日志数据,实时抽取之hdfs系统上

    一.数据仓库架构 二.flume收集数据存储到hdfs 文档:http://flume.apache.org/releases/content/1.9.0/FlumeUserGuide.html#hd ...

  5. 基于SkyWalking的分布式跟踪系统 - 微服务监控

    上一篇文章我们搭建了基于SkyWalking分布式跟踪环境,今天聊聊使用SkyWalking监控我们的微服务(DUBBO) 服务案例 假设你有个订单微服务,包含以下组件 MySQL数据库分表分库(2台 ...

  6. Dapper,大规模分布式系统的跟踪系统--转

    原文地址:http://bigbully.github.io/Dapper-translation/ 概述 当代的互联网的服务,通常都是用复杂的.大规模分布式集群来实现的.互联网应用构建在不同的软件模 ...

  7. Dapper,大规模分布式系统的跟踪系统

    概述 当代的互联网的服务,通常都是用复杂的.大规模分布式集群来实现的.互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发.可能使用不同的编程语言来实现.有可能布在了几千台服务器 ...

  8. 如何在本地搭建一个Android应用crashing跟踪系统-ACRA

    https://github.com/bboyfeiyu/android-tech-frontier/tree/master/others/%E5%A6%82%E4%BD%95%E5%9C%A8%E6 ...

  9. 【转】使用JIRA搭建企业问题跟踪系统【个人推荐】

    免责声明:     本文转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除.     原文作者:Judy Shen的专栏     原文地址:使用JIRA搭建企业问题跟踪系统 ...

随机推荐

  1. [LeetCode] 147. Insertion Sort List 解题思路

    Sort a linked list using insertion sort. 问题:实现单向链表的插入排序. 这是比较常规的一个算法题目. 从左往右扫列表,每次将指针的下一个元素插入前面已排好序的 ...

  2. freeCMS学习网站

    https://code.google.com/p/freecms/downloads/list

  3. yii 使用 phpmailer发送邮件

    原文链接 :  http://www.yiiframework.com/extension/mailer/ 下载插件放在 :XXX/protected/extensions/ 作为一个普通的组建使用 ...

  4. (转) xcodebuild和xcrun自动化编译ipa包 笔记

    转自:http://blog.csdn.net/totogo2010/article/details/8883100 打包过程 xcodebuild负责将工程源文件编译成xxx.app xcrun负责 ...

  5. JAVA的RSA加密算法工具类

    须要用到一个jar http://www.bouncycastle.org/latest_releases.html 须要注意的问题 JS用同一秘钥生成的密文用java解密出来是逆序的,即js加密12 ...

  6. [ES6] Promise

    How to use: export default function getReplies(topicId){ return new Promise(function( resolve, rejec ...

  7. Qt 之容器内的控件全屏

    m_label = new QLabel(); ui->stackedWidget->addWidget(m_label); ui->stackedWidget->setCur ...

  8. javaScript模块化一

    1. Module模式的基本特性 A) 模块化 可重用   B) 封装了变量和function 和全局的namespace不接触 松耦合.   C) 只暴露可用public的方法 其他私有方法全部隐藏 ...

  9. 使用VisualVM查看Java Heap Dump

    浏览Heap Dump 可以使用VisualVM浏览heap dump文件的内容,从而快速查看在堆中分配的对象.Heap dumps在主窗口的heap dump子标签页中显示.你可以打开保存在本地的h ...

  10. 通过 yum update 将系统从CentOS 6.2 升级到 CentOS 6.6 及升级过程中的简单排错

    本文说明 本文写于2014年的WP中,后WP停止维护,今天翻到此记录整理下,记录于此,方便日后查看. 话说那时候写博客真是认真啊~哈哈~ 升级前的系统信息 [root@thatsit ~]# unam ...