Analysis of Code Heterogeneity for High-Precision Classification of Repackaged Malware

Analysis of Code Heterogeneity for High-Precision Classification of Repackaged Malware

一、引言

这篇文章的作者分析了已有的恶意应用检测机制的局限性,提出大多数漏报的情况是由于大量的恶意应用是通过重打包得来的,很多基于机器学习的检测技术不能很好的检测出这类样本,提出了一种结合程序分割和机器学习来检测异质代码团的思想,实验结果发现所提出的方法能够降低将近30倍的漏报率

二、重打包研究现状简单介绍

重打包顾名思义就是对Android应用软件进行重新打包,然后签名从新发布到各大应用市场,重打包应用大量存在于应用市场,这主要的原因有三:

  • 反编译、静态分析技术很成熟,重打包技术门槛低,通过重打包,恶意开发者可以向APP中嵌入恶意代码或者广告来达到窃取用户隐私、静默安装、以及恶意扣费等目的;

  • Android应用反重打包机制不够先进,安全防护能力低,造成重打包的难度降低;

  • 应用市场审查不到位,没有良好的审查措施或者技术针对成千上万的移动应用进行审核;

重打包的过程如下图所示:

2.1 重打包目标:
  • 流行度比较高的应用;借助应用的流行程度,达到广泛传播的目的

  • 第三方库;第三方库开源,代码很多时候未被完整的混淆,便于阅读插入恶意负载,同时第三方库也具有一定的流行度

2.2 已有研究:

DroidMoss【1】和DNADroid【2】 主要通过成对的相似度计算来检测重打包的app,这种方法对于成千上万的应用市场来说,检测的时间复杂度是很高的

DNADroid主要通过计算程序依赖图之间的相似度

DroidMoss根据程序的操作码来计算模糊哈希值,以此来构建app的指纹库,用作相似度比较

作者【3】使用程序依赖图的几何特性来衡量两个应用程序之间的相似性的方法,然后计算两个应用程序的相似性得分。

【4】和【5】提出以APK的资源文件内容为特征提取对象,包括GUI的描述文件等,以此来计算应用间的相似度,检测重打包

2.3 基于机器学习的检测恶意应用的过程:

已有基于机器学习的恶意应用检测,主要是通过提取应用中使用的权限、敏感API、常量字符、URL等特征构造特征向量,以此来检测恶意应用。

三、现有研究的不足与挑战

3.1 限制一:similarity-based detection
(1) Relies on the availability of original apps for comparison
(依赖于与原始APP进行比较)

(2) The pairwise based similarity computation is of quadratic complexity
(N个APK检测时间复杂度为o(N^2),也就是要成对计算相似度)
3.2 限制二:general purpose detection

基于机器学习的恶意检测方案

(1)文章中作者对已有现状分析了之后就总结提了一句话,就是说现在的恶意检测当中大多数漏检的案例基本都是由于重打包的恶意引用造成的

(2)依据是什么呢?我觉得一个比较直观的理解就是:对重打包的恶意应用提取特征时候,现有的方案主要站在整个APP的角度提取特征,这样会带来一个问题就是很多时候APP的整体行为特征会掩盖恶意负载的行为特征,可能是造成误报一个重要原因

四、文章中作者提出的检测方案

4.1 Workflow

具体的工作流程分为三个步骤,预处理,代码区域分割,特征提取与训练

  • 步骤一:预处理

利用已有的反编译工具,对APK进行反编译,得到APK的smali代码

  • 步骤二:代码区域分割

(1)首先使用Androguard进行构建程序class级别的依赖图,类与类之间的依赖主要包括调用依赖、字段依赖以及ICC依赖(组件间通信),这些依赖可以理解图的边

(2)然后使用networkX图分析工具进行图的可达性分析,将依赖图分割成具有相对独立数据流/控制流的代码团;基于独立的代码团找到其函数级别的调用关系图;

  • 步骤三:特征提取与训练

对分割得到的各个代码团,主要提取以下三类特征:

  • User Interaction Features(与用户进行交互的函数特征、频繁度等)

    user-related functions and the graph-related impact features

  • Sensitive API Features(敏感API)

    sensitive Java and Android APIs

  • Permission Request Features(请求的权限信息)

    permissions used in each region

对训练集进行训练,得到分类器,分类的评判标准(得分函数)是使用分类为恶意的代码团占该应用所有代码团总数的比例,该比例超过一定阈值,则判断为重打包的恶意应用

五、实验评估结果

参考文献

【1】Wu Zhou, Yajin Zhou, Xuxian Jiang, and Peng Ning. Detecting repackaged smartphone applications in third-party android marketplaces.

【2】Jonathan Crussell, Clint Gibler, and Hao Chen. Attack of the clones: Detecting cloned applications on android markets

【3】Kai Chen, Peng Liu, and Yingjun Zhang. Achieving accuracy and scalability simultaneously in detecting application clones on android markets.

【4】Yury Zhauniarovich, Olga Gadyatskaya, Bruno Crispo, Francesco La Spina, and Ermanno Moser. Fsquadra: Fast detection of repackaged applications

【5】Yuru Shao, Xiapu Luo, Chenxiong Qian, Pengfei Zhu, and Lei Zhang. Towards a scalable resource-driven approach for detecting repackaged android applications.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值