首页
社区
课程
招聘
[原创]Android沙盒开发之TaintDroid分析(1)
发表于: 2013-7-9 21:35 25019

[原创]Android沙盒开发之TaintDroid分析(1)

2013-7-9 21:35
25019

标 题: 【原创】Android沙盒开发之TaintDroid分析(1)
作 者: 蟑螂一号
时 间: 2013-07-09,21:44:41
    目前Android系统最大的问题是安全。恶意应用危害有:吸费、流量消耗、隐私泄漏、系统破坏、远程控制等。在Android 4.0之前的系统,恶意应用往往以后台服务的形式存在,即应用没有启动界面,应用安装在手机之后,通过监听系统发出的广播达到自启动,从而在用户神不知鬼不觉的情况下,后台联网、发送短信或者电话监听。在Android4.0之后,系统对服务启动增加了标识,如果服务第一次没有被启动,那么无论接收什么广播,后台应用都不会被启动,这种方式某种意义上杜绝了纯后台的恶意应用。针对有应 用界面的,恶意应用往往以打包的形式把恶意代码嵌入到那些比较火的应用里。
    经过分析,目前android很多应用都存在获取手机隐私信息,比如IMEI、IMSI等。应用获取这些信息之后,一般都会通过网络回传,具体传到后台服务端干没干坏事,那就不好说了。比如经常看到一些应用访问的网络URL里面,就包含了imei、手机系统版本信息等。
    Android沙盒开发可以分为两个部分,一是行为分析,二是隐私泄露的侦测。针对于隐私泄漏的侦测,目前有一个开源软件叫做DroidBox,基于TaintDroid原理构建。今天我们就来分析一下TaintDroid是如何侦测隐私泄漏的。
    TaintDroid主要使用污点追踪,在相关的API调用处把隐私数据标记为污染数据。恶意程序拿到隐私数据后往往会做一些操作,包括截取,拼装,加密甚至是进程间传递,这使的隐私数据的的这些操作都需要进行污染标记。TaintDroid将所有隐私数据变成污染源,在程序运行的过程中如果你想对污染源进行截取,拼装,加密,传递等操作,那么你新生成的数据也会被 污染。如果有被污染的数据被泄漏出去,那么就发生了隐私泄漏。下面,将通过源码剖析TaintDroid的构建。
   TaintDroid主要是基于应用级的污染追踪,很显然,对于纯C的应用或者应用中通过native代码来实现功能的,那就不是很妙咯。TaintDroid构建:
  1.在android源码dalvik源码目录中,在dalvik/vm/oo/Object.h中为对象增加一个tag字段。在dalvik/vm/oo/ObjectInlies.h中增加虚拟机调用接口。如下只是其中一部分:
struct ArrayObject : Object {
    /* number of elements; immutable after init */
    u4              length;

#ifdef WITH_TAINT_TRACKING
    Taint           taint;
#endif
    /*
     * Array contents; actual size is (length * sizeof(type)).  This is
     * declared as u8 so that the compiler inserts any necessary padding
     * (e.g. for EABI); the actual allocation may be smaller than 8 bytes.
     */
    u8              contents[1];
  };、
  2.在dalvik/vm/native/中,dalvik_system_Taint.cpp类实现了libcore目录中Taint.java中的native方法调用。该类中提供很多污染处理的函数,包括对字符串、byte数组、单个数据类型等处理。
3.在libcore/davilk/src/main/java/dalvik/system/Taint.java中声明一系列方法,为上层关键API污染数据处理提供接口。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 5
支持
分享
最新回复 (5)
雪    币: 131
活跃值: (98)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
不错,加油,分析得不错。
2013-7-9 22:54
0
雪    币: 259
活跃值: (3623)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
谢谢,多多指教
2013-7-10 09:06
0
雪    币: 33
活跃值: (145)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
4
建议楼主把原来的论文翻译一遍。
2013-7-10 10:03
0
雪    币: 147
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
太给力了  英文论文看到头大  正郁闷
2014-3-8 22:10
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
感谢~~~
2015-3-14 22:20
0
游客
登录 | 注册 方可回帖
返回
//