Group of Software Security In Progress

GoSSIP @ LoCCS.Shanghai Jiao Tong University

Harvesting Runtime Values in Android Applications That Feature Anti-Analysis Techniques

论文下载:http://www.bodden.de/pubs/ssme16harvesting.pdf

Introduction

作者提出了一种基于程序切片的android程序分析技术,能够获得敏感变量可能的runtime value,检测恶意软件 现有的问题:

  • 恶意软件通常用反射调用混淆代码,要靠动态分析才能得到方法名,但是动态分析有代码覆盖率问题
  • 一些恶意行为只有在特定环境下才触发,例如特定时间,或者在真机上

主要的贡献:

  • 优化了传统的程序切片方法
  • 提出了一个全自动的程序分析框架,自动获得敏感变量可能的runtime value
  • 将得到的runtime value放到原来的apk中可以提高现有分析工具的成功率
  • 提出了一个大规模分析恶意软件的框架

Solution Architecture

  1. 优化过的Static Backward Slicing
  2. 动态执行切片产生的apk,记录runtime value
  3. 将获得的runtime value插入原APK,供进一步分析使用

Fig

Fig

Fig

Implementation & Evaluation

  • 实现工具:静态框架Soot,和FlowDroid
  • 实验结果:

Fig

  • 对比现有的静态分析工具SAAF,分析了2600个恶意APP,只关注发送的短信。作者没有给出数据,但是说SAFF不能处理反射,不能处理字符串拼接
  • 对比现有的动态分析工具Monkey,测试150个恶意APP,Monkey大概发现了所有logging points中的16.31%而作者有74.7%,漏报的原因主要是组件间通信以及Soot的Dalvik处理不好。
  • 增加了现有分析工具的成功率:

Fig