AppIntent:Analyzing Sensitive Data Transmission in Android for Privacy Leakage Detection

APPIntent:分析敏感数据传播在Android设备中隐私泄露的检测

文章语言:英文

文章来源:2013年ACM CCS

作者信息:Zhemin Yang  杨珉 Yuan Zhang  Guofei Gu(研究领域:网络安全,移动安全,系统安全等等)Ning peng(和蒋旭宪大牛一个学校的,怪不得人家这么厉害看来是有学术积淀的)XiaoYang Wang

文章涉及到的工具:Dexpler,DED

文章中应用的会议以及WorkShop:CCS,S&P,NDSS,USENIX security(如果不知道是什么等级的会议,请猛戳),OSDI,ESEC、SIGSOFT,PLDI,POPL,ACM WiSec,SPSM,ISSTA,FSE

【概括】

AppIntent:使用了改进的符号执行——(event-spcae constraint)事件空间限制符号执行,有效的减小了搜索空间,通过符号执行产生事件输入和数据输入,这些输入会导致敏感数据的传播,并且使用动态分析平台将Android手机传播的敏感数据中关于隐私泄露的行为进行了有效区分。

【摘要】

Android手机常常存储了很多的个人信息因此吸引了很多恶意软件的开发者在Android的应用程序中嵌入恶意代码窃取敏感数据。根据已知的技术文献,很容易来判断敏感数据是不是在从Android手机中传播出去。但是,敏感数据的传播并不一定就意味着隐私的泄露;一个很好的判定标准就是是否这个传播是用户知道的或者不知道。当这个传播不是用户意图的话,它很有可能是隐私泄露。这问题就是怎么决定一个传播是用户意图。对于这个问题的第一个解决方案,我们呈现了一个新的分析框架AppIntent。对于每一个的数据传播AppIntent都能够有效的提供一系列的GUI操作对应了一系列的事件可以导致数据的传播,来帮助分析人员决定是否数据传播史用户意图的或者也不是。最基本的思想就是使用符号执行来产生前面所提到的一系列的事件,但是简单的符号执行证明是很耗时间的在实际应用当中。在AppIntent当中最主要的创新就是利用唯一的Android执行模型来减少搜索的空间而且不会牺牲代码的覆盖。我们也对AppIntent做了一个评估使用了750个恶意软件和Google Play排名前1000的APP。这个结果显示AppIntent能够有效的帮助区分应用程序到底是不是真的存在隐私泄露。

关键词:Android安全,隐私泄露检测,符号执行

【研究目的】

怎样判断智能手机隐私泄露

现在很多工具都只能判断敏感数据传播,但是不能判断是不是这些敏感数据的传播就意味着隐私数据的泄露。并且单纯的敏感数据传播判断的方法误报率很高。研究的目的就是发明一种工具能够区分这些敏感数据的传播那些会造成隐私数据的泄露。

【解决方案】

设计一个能够自动分析的工具根据获取的程序的上下文的信息来判断出敏感数据传播中的隐私泄露,这个工具就是AppIntent。AppIntent的框架就是提供一些敏感数据传播的输入,这些输入可能触发敏感数据的传播,通过行为触发的产生来判断敏感数据传播中出现的隐私泄露。

根据这个目的因此想到了符号执行。因为符号执行是一个有效的技术来提取出可行的输入触发程序的行为导致敏感数据的传播得意显现。

但是使用符号执行存在着一些难点:

1、 App的种类很多有着不同的使用目的

2、 现有的符号执行只能针对没有交互的程序(Android的程序基本上都是GUI用户图形交互的)

3、 可能的数据输入使得

4、 符号执行的路径激增,导致符号符号执行时很费时间

【方案难点】

1.      传统的符号执行可能陷入无限的搜索空间

图片来源:http://developer.android.com/training/basics/activity-lifecycle/index.html

注意看存在循环

Android的App常常被运行时事件和回调函数所驱使,回调函数决定着App的状态转移,监听器句柄决定着用户交互组件

以Activity的生命周期说明,如图所示,由于存在着不确定性和没有界限的调用顺序如果采用符号执行当执行路径是OnStart()àOnResume()àOnPause()àOnStop()àOnStart

/(OnRestart())时,可能进入无限循环,导致符号执行无法停止。

2.      GUI控件的触发有很多的不确定性,可以随时触发,也可能导致符号执行陷入循环

【相关工作】

注意:相关工作描述的是前人的研究

1.      使用符号执行为了提高系统系能,前人曾经的做法牺牲代码覆盖率,采用随机策略

2.      假设事件句柄之间是相互独立的

3.      代码插入技术,但是效果不佳

【增对问题提出的解决方案】

对于路径太多的问题,使用静态分析提取出可能的路径指导符号执行,采用event-space constraints的符号执行

【设计目标】

1.      行为触发产生重要的apps输入(数据输入和事件输入)导致敏感数据的传播

2.      保证代码的覆盖率以及低的误报率和漏报率

3.      提供分析人员便于理解的工具让其意识到敏感数据什么时候传播

【系统架构】

系统主要的架构分为两个部分:(1)事件空间限制的符号执行(2)动态程序分析平台

第一部分

1.      静态污点分析提取出所有的可能的数据输入和事件输入

2.      提取过滤事件路径,产生事件限制图指导符号执行

第二部分

采用InstrumentationTestRunner作为行为触发的工具一步步模拟被检测的APP的行为

【亮点和难点分析】

以安卓短信为例分析它由两个Activity(MessagePopup,ComposeMessageActivity)和一个BroadcastReceiver(PushReceiver)组成。

当一条短信来的时候OnReceive()接收短信激活组件,这个时候MessagePopup()组件会弹出来,点击前进按钮会进入到ComposeMessageActivity()这个Activity的组件界面

由此可以得到一条执行的路径:

{OnReceive,i1}⇒{startNewMessagesQuery,i2}⇒{forward,i3}⇒{forward,i4}⇒{sendMessage,i5}⇒{sendMessage,i6}

经过提取可以得到一个基本的事件图:

其中可以吧事件分为两类:

1.      重要事件:

事件句柄至少包含一条数据传播途径的指令,用粗线表示

2.      基本事件

不包含任何可能的路径执行指令,用细线表示

提取出重要事件

算法采用Dijistra算法找到最小生成树。首先是找出重要的事件节点,其次在来找边。根据生命周期的调用图找到重要节点的先行节点,组成边。反复执行这个过程知道再也找不到先行节点为止。

例如,一个Activity发送intent给另一个intent发送方将作为接收方的先行节点。通过上述步骤完成了事件空间图便可以得到过滤之后的图

【文章的贡献】

就个人而言,我认为它使用的行为触发是很值得深入学习的,并且行为触发具有较好的可移植性,可以用于触发Android待检测的APP,捕获其敏感行为。

1.      敏感数据的传播并不意味着隐私数据的泄露,user-intented被视为不是隐私数据的泄露,user-unintented的很大可能就是隐私泄露

2.      研发了event-space constraint 符号执行技术,减少了使用符号执行的事件搜索空间

3.      (传说中的行为触发)通过提取出的数据和事件输入在动态程序分析平台上执行,还原出导致敏感数据传播的UI控件操作

【文章涉及论文】

文章涉及论文下载链接:http://pan.baidu.com/s/1gd5hBeN

[符号执行]

  • P. Boonstoppel, C. Cadar, andD. R. Engler. Rwset:Attacking path explosion in constraint-based test generation.InTACAS,2008
  • C. Cadar, V. Ganesh, P. M.Pawlowski, D. L. Dill,and D. R. Engler. Exe: automatically generating inputs of death. InCCS,pages322–335,2006
  • P. Godefroid. Compositionaldynamic test generation.InPOPL,pages47–54,2007.
  • P. Godefroid, N. Klarlund,and K. Sen. Dart: directed automated random testing. InPLDI,pages213–223,2005
  • D. Molnar, X. C. Li, and D.A. Wagner. Dynamic test generation to find integer bugs in x86 binary linux programs.InUSENIX Security,pages67–82,2009
  • K. Sen, D. Marinov, and G.Agha. Cute: a concolic unit testing engine for c. InESEC/SIGSOFT FSE,pages263–272, 2005

[漏洞检测]

  • P. Bisht, T. Hinrichs, N.Skrupsky, and V. N. Venkatakrishnan. Waptec: whitebox analysis of web applications for parametertampering exploit construction. InCCS,pages575–586,2011
  • D. Brumley, J. Newsome, D.Song, H. Wang, and S. Jha. Towards automatic generation of vulnerability signatures.InIEEE Symposium on Security and  Privacy,2006
  • M. Costa, M. Castro, L. Zhou,L. Zhang, and M. Peinado. Bouncer: securing software by block in bad input.InSOSP,pages117–130,2007
  • P. Gilbert, B.-G. Chun, L. P.Cox, and J. Jung.Vision: automated security validation of mobile apps at appmarkets. InProc. MCS),2011
  • Kieyzun, P. J. Guo, K. Jayaraman,and M. D.Ernst. Automatic creation of sql injection and cross-site scriptingattacks. InICSE,pages199–209,2009.

[敏感数据传播]

  • M. C. Grace, W. Zhou, X.Jiang, and A.-R. Sadeghi. Unsafe exposure analysis of mobile in-app  advertisements. InWiSec,2012
  • P. Hornyack, S. Han, J. Jung,S. Schechter, and D. Wetherall. These aren’t the droids you’re looking for:retrofitting android to protect data from imperious applications. InCCS,pages639–652,2011
  • Tripp, M. Pistoia, S. J.Fink, M. Sridharan, and O. Weisman. Taj: effective taint analysis of web applications.InPLDI,pages87–97,2009

[静态分析]

  • M. Egele, C. Kruegel, E.Kirda, and G. Vigna. Pios: Detecting privacy leaks in ios applications. InNDSS,2011
  • Tripp, M. Pistoia, S. J.Fink, M. Sridharan, and O. Weisman. Taj: effective taint analysis of web applications.InPLDI,pages87–97,2009

[动态分析]

  • N. Vachharajani, M. J.Bridges, J. Chang, R. Rangan, G. Ottoni, J. A. Blome, G. A. Reis, M.Vachharajani, and D. I. August. Rifle: An architectural framework foruser-centric information-flow security. In MICRO, pages 243–254, 2004

[行为触发]

  • C. Zheng, S. Zhu, S. Dai, G.Gu, X. Gong, and W. Zou. Smartdroid: An automatic system for revealing ui-basedtrigger conditions in android applications. InProc. SPSM,October2012.

转载请注明出处:http://write.blog.csdn.net/postedit/18683769,谢谢合作~^^

文章下载

无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程 https://www.cbedai.net/chichoxian

AppIntent论文阅读相关推荐

  1. 论文阅读工具ReadPaper

    对于搞科研的同学们来说,看论文是要经历的第一关,尤其是要读好多篇论文的时候,更是着实令人头大. 这不,最近无意中发现了个在线论文阅读网站:readpaper.com,号称「论文阅读笔记神器,硕博科研学 ...

  2. 多目标跟踪:CVPR2019论文阅读

    多目标跟踪:CVPR2019论文阅读 Robust Multi-Modality Multi-Object Tracking 论文链接:https://arxiv.org/abs/1909.03850 ...

  3. 快速人体姿态估计:CVPR2019论文阅读

    快速人体姿态估计:CVPR2019论文阅读 Fast Human Pose Estimation 论文链接: http://openaccess.thecvf.com/content_CVPR_201 ...

  4. Action4D:人群和杂物中的在线动作识别:CVPR209论文阅读

    Action4D:人群和杂物中的在线动作识别:CVPR209论文阅读 Action4D: Online Action Recognition in the Crowd and Clutter 论文链接 ...

  5. 深度学习点云语义分割:CVPR2019论文阅读

    深度学习点云语义分割:CVPR2019论文阅读 Point Cloud Oversegmentation with Graph-Structured Deep Metric Learning 摘要 本 ...

  6. 3D目标检测论文阅读多角度解析

    3D目标检测论文阅读多角度解析 一.前言 CNN(convolutional neural network)在目标检测中大放异彩,R-CNN系列,YOLO,SSD各类优秀的方法层出不穷在2D图像的目标 ...

  7. 3D目标检测论文阅读摘要

    3D目标检测论文阅读摘要 2D Object Detection 的研究已经非常成熟了,代表作品有RPN系列的FasterRCNN,One Shot系列的YOLOv1-YOLOv3,这里推荐一个2D ...

  8. 目标检测——Faster R-CNN论文阅读

    论文阅读--Faster R-CNN:Towards Real-Time Object Detection with Region Proposal Networks 文章目录 论文阅读--Faste ...

  9. 【独家】深度学习论文阅读路线图

    如果你是深度学习领域的一名新手,可能会遇到的第一个问题是"应该从哪篇论文开始读起呢?" 这里给出了深度学习论文阅读路线图! 路线图按照下面四个准则构建而成: 从提纲到细节 从经典到 ...

最新文章

  1. python爬取京东商品图片_python利用urllib实现爬取京东网站商品图片的爬虫实例
  2. 那些年 iOS 升级踩过的坑!
  3. [Swift]检查API可用性
  4. 恐怖logo效果展示AE模板
  5. ASP.NET MVC3 RenderPartial 传入空Model时出现字典类型错误
  6. 地图数据下载方法与商业地图下载器介绍
  7. Ubuntu安装Spark
  8. c++11多线程编程 整理(五) 原子量 atomic
  9. Java快速对接微信登录
  10. Datawhale---Task2(EDA-数据探索性分析)
  11. 智能车 有来有往 单收单发超声波模组 STM32CubeMx HAL库
  12. 时间固定效应和个体固定效应的选择_【十分钟计量经济学】面板数据选择固定效应还是随机效应...
  13. 在Android上模拟登录广工正方教务系统查询成绩
  14. MAHLE PIS 3097/2.2 bar
  15. Hulu是什么?中国也有了?
  16. 中国移动发力5G,月增900万,反超中国电信
  17. Chrome浏览器标签管理插件–OneTab
  18. LeetCode常用算法模式大厂面试题整理
  19. SQLServer 2012 Always on配置全过程
  20. c语言能保留x后两位并且四舍五入的,二级C语言真题笔记

热门文章

  1. 最新版红雪越狱iOS 6(iPhone 4)教程
  2. 在大同哪里打印文件资料的价格比较便宜些
  3. java memory copy_Java Unsafe.copyMemory java.lang.IllegalArgumentException
  4. JSON的简单介绍以及C语言的JSON库使用
  5. cipher攻略(不断更新)
  6. [易飞]ERP附件与电子签核集成
  7. java开发岗位面试题汇总及解析2
  8. Windows Server 2016-Active Directory域服务端口汇总
  9. 访金山云CTO杨刚:开源改进PK自主研发,技术驱动前行
  10. 全员营销,谁是赢家?