基于异构信息网络的智能安卓恶意软件检测系统

作者:{WJN}@ArkTeam

原文标题:HinDroid: An Intelligent Android Malware Detection System Based on Structured Heterogeneous Information Network

原文作者:Shifu Hou, Yanfang Ye, Yangqiu Song, Melih Abdulhayoglu

原文出处:KDD’17, DOI: 10.1145/3097983.3098026

随着Android恶意软件的爆炸性增长以及对智能手机用户的严重损害,Android恶意软件的检测在网络安全中变得越来越重要。在论文中,作者进一步分析被调用API之间的不同关系并创建更高级别的语义,来替代之前仅分析API调用来进行恶意软件检测的方法,使得规避检测的代价大幅增加。

1显示了我们开发的Android恶意软件检测系统HinDroid的系统概述,该系统由以下五个主要组件组成,具体流程如下:

第一步,通过UnzipperDecompiler模块解压缩APK并将dex文件反编译为smali代码。

第二步,通过Feature Extractor模块提取完整的Android API调用列表,并进一步分析提取的API调用之间的关系

第三步,利用异构信息网络(Heterogeneous Information NetworkHIN构造模块基于先前组件提取的关系特征构造HIN,形成代表不同元路径的可交换矩阵。

第四步,使用标准多核学习(Multiple Kernel LearningMKL1,优化不同元路径的权重,组合不同的可交换矩阵以形成用于Android恶意软件检测的更强大的核函数。

第五步,恶意软件检测模块,对于每个新收集的未知的Android应用程序,经过一系列预处理得到其API调用及相互关系后,使用构建的分类模型,判断该应用程序为良性或恶意。


1 HinDroid系统架构图,共有五个主要模块

下面将分三个部分依次介绍原文用到的主要技术手段

一、API调用之间的关系分析

虽然API调用可用于表示Android应用程序的行为,但它们之间的关系可能意味着恶意软件检测的重要信息,因此原文选择以下三种API关系作为分析的依据(表1):

R1—两个API同在一个代码块2:用矩阵B表示,Bi,j =1表示APIiAPIj在同一个代码块,否则Bi,j = 0

理由:尽管在良性应用程序中单独使用某些API可能很常见,但它们在转换的smali代码的相同方法中很少共同出现在良性文件中。

R2—两个API同属于一个包:用矩阵P表示,Pi,j =1表示APIiAPIj属于同一个包,否则Pi,j =0

理由:同一个包的API调用始终显示类似的意图

R3—两个API有同样的调用方法:用矩阵I表示,Ii,j =1表示APIiAPIj以同样的方式被调用,否则Ii,j =0

理由:相同的调用方法可以显示API调用的公共属性,因此使用相同调用方法的两个API调用可以指示它们之间的特定隐式关系

1 关系矩阵及其元素含义描述


二、异构信息网络(HIN)构造

1. HIN定义

信息网络可以用一个有向图G = (V, E) 来表示,其中V代表 ObjectE代表Edge。并且用映射函数 ϕ : V → A 来表示每一个object v V 属于object类型集合A:ϕ(v) A,用映射函数ψ : E → R表示每条边 e E 属于边的类型集合R: ψ(e) R。如果|A| > 1 或者 |R| > 1 ,则该信息网络即为异构信息网络。

简单来说,HIN就是拥有两种以上节点类型或是两种以上关系类型的有向图。

2为原文背景下形成的HIN


2 HinDroid中,有两种实体类型,即Android应用和API调用。

存在四种类型的关系,例如,包含API调用的app(A),在相同代码块中的API调用(R1),具有相同包名称的API调用(R2),以及具有相同调用类型的API调用(R3)

2. 元路径

HIN的概念中使用元路径来形成实体之间的高阶关系的语义, 从而能够使用机器可读的表示来丰富API之间相似性的语义。

简单来说,元路径就是从一个实体到另一个实体之间的连续关系的集合。一个实体可以通过”元路径”最终联系到另一个实体。

在原文背景下的元路径举例如下图3


3 AAT表示两个APP存在相同的API调用

ABAT表示APP1调用的API1APP2调用的API2属于同一代码块

APAT表示APP1调用的API1APP2调用的API2来自同一包

AIAT表示APP1调用的API1APP2调用的API2有同样的调用方式

元路径长度不限,同时可以有多个API调用满足某一具体的元路径约束。
因此,我们使用可交换矩阵来给出使用特定元路径计算实体相似性的一般形式。

三、多核学习(MKL)

给定具有不同类型的实体和关系的网络模式,我们可以枚举许多元路径。
但是,并非所有元路径都对特定的Android恶意软件检测问题有用。这里我们只考虑对称元路径,因为我们只关注应用程序的相似性

传统的SVM都是单核的,在使用的时候,需要根据经验或试验来选择用哪种核函数、怎样指定它的参数,这样很不方便。在本文中,我们的特征(元路径)是异构的,因此可以使用多核学习算法自动合并不同的相似性并在分类应用时确定每个元路径的权重,如图3


3 多核学习框架

假设我们有K个元路径Pk (k = 1,…,K),我们可以计算相应的可交换矩阵 (k = 1,…,K),其中即为核函数。最终使用已获得的核函数的线性组合来形成一个新核函数:


其中为可交换矩阵(核函数)的权重(利用Laplacian分数3确定)。

为了学习每个元路径的权重,我们假设我们有一组标记数据,其中xiapp(这里我们可以将xi视为ID),
是标签。
然后我们使用p-norm多核学习框架和以下目标函数来学习参数wk


对于每一个数据,引入松弛参数,以允许误分类情况

是特征在Hilbert空间4的非线性映射,作为核函数,其中

最终对于一个未知的APP x来说,可以用(类似SVM)来评估其是否为恶意APP

在原文的最后作者使用从Comodo云安全中心获得的真实样本集进行了四组实验,以全面评估Android恶意软件检测系统HinDroid的性能。实验结果表明HinDroid不但能够减少特征工程的工作,还能够显著提高安卓恶意软件的检测性能。在大规模真实数据集上检测的平均正确率也达到了0.9833

注:

1、多核模型是一类灵活性更强的基于核的学习模型, 在多核框架下, 样本在特征空间中的表示问题转化成为基本核与权系数的选择问题

2、本文中代码块定义为smali文件中”:method“和”:endmethod“之间的代码,它反映了API调用之间的结构信息

3Laplacian分数,基于拉普拉斯特征图和局部保持投影。Laplacian Score算法可以有效的提取出那些体现数据潜在流形结构的特征。详情请参考http://www.cad.zju.edu.cn/home/dengcai/Publication/Conference/2005_NIPS_LaplacianScore.pdf

4、希尔伯特空间是欧几里德空间的一个推广,其不再局限于有限维的情形,是一个完备的内积空间。当样本在原特征空间中线性不可分,即找不到一个足够好的超平面时,SVM便是利用核(kernel)函数,将特征映射到希尔伯特(Hilbert)空间。后者一般维度更高,通过这样的映射之后,样本在新的特征空间中便是线性可分的了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注