TaintDroid剖析之DVM变量级污点跟踪(下篇)作者:简行.走位@阿里聚安全 ​ 1 回顾 在上一章节中我们详细分析了TaintDroid对DVM方法参数和方法变量的变量级污点跟踪机制,现在我们将继续分析TaintDroid对类的静态域.实例域以及数组的污点跟踪. 2 了解DVM中类的数据结构 由于DVM师从JVM,所以DVM中所有类的祖先也是Object类,该类定义在dalvik/vm/oo/Object.h中.其实不仅仅是Object类,DVM所有的基本类都定义在Object.h文件中…
1.Native方法的污点传播 在前两篇文章中我们详细分析了TaintDroid对DVM栈帧的修改,以及它是如何在修改之后的栈帧中实现DVM变量级污点跟踪的.现在我们继续分析其第二个粒度的污点跟踪——Native方法级跟踪. 回顾前文,我们知道Native方法执行在Native栈帧中,且Native栈帧由dvmPushJNIFrame函数分配栈空间,再由dvmCallMethodV/A或者dvmInvokeMethod对栈帧进行初始化,所以我们也按照之前的方式进行Native方法级跟踪机制分析.…
TaintDroid剖析之File & Memiry & Socket级污点传播 作者:简行.走位@阿里聚安全 1.涉及到的代码文件 TaintDroid在File, Memory以及Socket三方面的污点传播主要涉及到如下一些文件: /libcore/luni/src/main/java/libcore/io/Posix.java  /libcore/luni/src/main/native/libcore_io_Posix.cpp  /libcore/luni/src/main/ja…
TaintDroid剖析之IPC级污点传播 作者:简行.走位@阿里聚安全 前言 在前三篇文章中我们详细分析了TaintDroid对DVM栈帧的修改,以及它是如何在修改之后的栈帧中实现DVM变量级污点跟踪.Native方法级跟踪.本篇文章我们来分析下IPC级污点传播. TaintDroid深入剖析系列目录: TaintDroid深入剖析之启动篇 TaintDroid剖析之DVM变量级污点跟踪(下篇) TaintDroid剖析之Native方法级污点跟踪分析 具体实现 这里我以情景为上下进行跟进,每…
1.1     摘要 现今,智能手机操作系统不能有效的提供给用户足够的控制权并且很清楚的了解到第三方的应用程序是如何使用其的隐私数据.我们使用了TaintDroid来阐明这个缺点,其是一个高效的,全系统动态污点跟踪和分析系统可以同时跟踪对个敏感数据来源.TaintDroid利用了Android虚拟机的执行环境提供了一个实时的分析.TaintDroid仅需消耗绑定的CPU为基准14%的性能开销对于第三方的应用程序的开销完全可以忽略不计.通过使用TaintDroid监控了Android第三方比较流行…
4.3   原生代码标记传播 Native 代码是不受TaintDroid监控的.理想情况下,我们获得了相同的传播语义当使用相同的解释副本时.因此,为了精确的在Java层进行污点监控,我们定义了两个必要的前提条件:1)所有被访问的外部变量(对于其他方法的类字段引用)根据数据流都被标记上了相应的污点.2)根据成数据流所有返回值都被分配了一个污点标记.TaintDroid完成这些的前提条件是通过各种人工方式,推断,方法概要,取决于环境要求. 内部虚拟机方法:内部虚拟机的方法又叫做直接译码法,传递一个…
6      应用程序研究 款流行的应用程序是怎么使用用户敏感数据的.选取的应用程序可以根据相应的权限通过Internet获得各种各样的用户数据.我们研究发现三分之二的这些数据暴露了用户详细的地理位置信息,唯一的电话标示,以及电话号码通过在安装的时候授予一些看似没有危险的访问权限.这个发现证实了TaintDroid可以用来监控运行时的用户的隐私敏感数据以及能过准确的监控相关的应用程序的数据暴露. 6.1     实验装置 在2010年初的一项调查是关于在Android Market上的每个类别最…
​1 背景知识 1.1   Android平台软件动态分析现状 众所周知,在计算机领域中所有的软件分析方法都可以归为静态分析和动态分析两大类,在Android平台也不例外.而随着软件加固.混淆技术的不断改进,静态分析越来越难以满足安全人员的分析要求,因此天生对软件加固.混淆免疫的动态分析技术应运而生.虽然动态分析技术本身有很多局限性,诸如:代码覆盖率低,执行效率低下等等,但是瑕不掩瑜,个人认为熟悉各种动态分析技术的核心原理也应当是安全从业人员的必备要求. 下图1-1展示了部分工业界和学术界在an…
确实是没有时间整理以及总结和发表自己的感慨.难得中秋银行的事情搞完了自己清闲3天,是时候总结一下从大公司做.NET PC 端网站的开发到现在做移动互联网的银行及政府微信公众号的开发的感触.当时自己的选择现在公司做移动互联网的部门,移动互联网就是比较忙和累.你知道的. 主要是上传成功之后返回的文件信息有细微差异.返回的都是一个包含上传文件的信息的二维数组(文件信息在内层数组中),只不过基本上传返回的二维数组只包含一个元素,而批量上传返回的二维数组包含多个元素!进而影响将上传的文件信息保存到数据库中…
1.Information-Flow tracking,Realtime Privacy Monitoring.信息流动追踪,实时动态监控. 2.TaintDroid是一个全系统动态污点跟踪和分析系统,能同时跟踪多个敏感信息源.通过监控敏感数据让用户了解第三方app的使用行为. 3.监控30款常用的应用程序,其中20款中发现68例滥用用户位置信息和设备识别信息的行为. 4.移动平台操作系统对app访问隐私权限只提供粗粒度访问控制,不能了解到底是被如何使用的.只能盲目相信app会合理使用隐私信息.…