Group of Software Security In Progress

GoSSIP @ LoCCS.Shanghai Jiao Tong University

PREC: Practical Root Exploit Containment for Android Devices

论文下载

INTRODUCTION

本文提出了Practical Root Exploit Containment (PREC),可以检测高危组件(例如第三方库)中的系统调用,并使用一个单独的线程来执行这些系统调用。

两个部分:

  • 当开发者提交app到market后,进行 offline learning
  • 当用户下载、安装app,进行 online enfrocement

malware经常在动态分析中使用logic bomb或者不执行可疑代码来逃过market动态分析检测。

PREC 选择 third-party native code 作为分类标准,因为:

  • 大多数malware使用third-party native code进行攻击
  • low-level system API 不向java代码提供
  • third-party native code分析比java代码、系统库要困难,所以malware分析攻击通常会忽略third-party native code

特点:

  • ASLR会要求攻击者重复攻击多次来猜测正确的栈地址
  • 很多root exploits使用资源穷尽攻击(不断forking)

贡献:

  • 提出了一种能防御在动态分析时隐藏踪迹的malware的方法
  • 能够建立 fine- grained 行为模型来检测不正常行为
  • 使用SOM学习算法,可以实现高精确度,低负载

Fig

DESIGN AND IMPLEMENTATION

System Call Origin Identification

  • 当进程切换到 third-party native code,Dalvik 通知 kernel ,kernel 维护一个 third-party native code的flag.
  • 缺点:不能分清是Dalvik还是可疑代码设置的flag

本文提出维护一个native threads的线程池,来执行third-party native code

  • 可以代码不能切换native threads到正常thread
  • switch的代码对 application process只读

Fig

system call tracer: lkm in kprobes.

java组件access native binaries的三种方法:

  • JNI Bridge
  • JNI_OnLoad
  • System.Runtime.exec

当native function call back to java 代码,依旧使用native thread 执行java 函数。

方法的优点:

  • 能够轻松地检测出system call origins(判断thread是否属于native thread pool)
  • 将一小部分的应用程序分离开,而不是杀掉整个应用程序
  • 可以与其他的execution sandboxing mechanisms共用

On-Device Root Exploit Detection

建立正常的行为模型。

Normal app behavior learning

SOM:artificial neural network

Use of system call arguments

两种类型的参数特别注意:

  • file paths
  • socket argument

将file path 分为两种:

  • application accesible directories
  • system directories

将socket分为三种:

  • connect to a remote server
  • local server
  • kernel component with NETLINK socket

根据这些类型,赋予system call不同的权重

Runtime root exploit detection

当用户从market购买一个app的时候,这个app的正常行为模型也下载到用户的手机上。

进行匹配,如果system call sequences map到rarely trained neurons,就说明是可疑的。

Automatic Root Exploit Containment

当 root exploit被检测到,PREC提供了两种模式去阻止

  • stopping (使用SIGSYS终止线程)
  • slow down(终止线程可能会影响到app正常运行,插入delay去slow down)

EXPERIMENTAL EVALUATION

Evaluation Methodology

Benign application selection

每个app种类的最受欢迎的前10个app

  • 80 app include third-party native code
  • 60 app without third-party native code
  • Samsung Galaxy Nexus device with An- droid 4.2

Malware selection

Fig

Model learning data collection in emulator

  • Android Monkey tool:随机生成inputs,模拟用户行为
  • collected traces for malicious applications on a modified An- droid 2.2 emulator (API level 8)
  • 没有root exploits 在training阶段被触发(malware在动态分析环境中隐藏自己的踪迹),如果被触发那就会被market检测出来

On-device real application testing data collection

  • To evaluate the on-device benign application false alarm rates and malware detection accuracy of PREC, Samsung Galaxy Nexus device with Android 4.2
  • real user
  • 表1中的10个malware在Google Nexus One device with Android 2.2运行

Alternative algorithms for comparison

  • SOM(full)
  • HMM(native)
  • HMM(full)
  • FSA(native)
  • FSA(full)

Evaluation metrics

Fig

  • true positive rate (AT )
  • false positive rate (AF )
  • Ntp, Nfn, Nfp, and Ntn denote the true positive number, false negative number, false positive number, and true negative numbe

Results and Analysis

Runtime classified system call monitoring

Fig

Runtime on-device detection accuracy

Fig

Fig

Fig

Fig

Malware containment results

Fig

Fig

LIMITATION DISCUSSION

  • simple fuzz-testing tools such as the Monkey tool are not guaranteed to produce su cient be- havioral coverage
  • 应用程序在真机和模拟机上使用不同的库(e.g., OpenGL library)
  • 从 java 代码进行攻击