2. 中国信息安全测评中心, 北京 100085
为实现Android应用程序恶意行为的有效分析, 提出了基于HMMs-SVM的程序行为分类模型, 将隐马尔可夫模型(HMM)和支持向量机(SVM)相结合, 以动态行为序列作为关键特征, 对移动应用软件运行中的网络收发、文件访问等行为建模.该模型融合了HMM和SVM的优势, 并克服了二者的不足, 适合于在获取连续动态行为特征序列后进行行为分类.实验结果表明, 该方法分析召回率较高, 可以有效对应用中的异常行为进行捕捉, 并可以将其按类型分类.
2. China Information Technology Security Evaluation Center, Beijing 100085, China
A detection method was proposed to analyze the malicious behavior on Android, that combines hidden-Markov model (HMM) with support vector machine (SVM) for modeling as well as construct model for behaviors like networking and data accessing. This model takes advantage of both HMM and SVM and overcomes the shortcomings inside, and it is suitable for classification using dynamic behavior sequences. Experiments show that this method can capture the abnormal behaviors with high accuracy rate and lower false positive rate.
移动智能终端已经不仅是用于通信的工具[1],更成为了应用软件及用户个人隐秘数据的重要载体,移动智能终端相关的安全威胁开始逐渐显现.移动智能终端应用中的恶意程序不以破坏系统为主,主要通过泄露用户隐私信息、恶意扣费、接收远程控制指令等威胁用户切身利益.针对移动平台的软件安全分析技术在近年来才逐步展开[2-3],面对飞速发展的移动平台恶意软件,大部分工具都无法在检测准确性、效率、能力与系统实用性等方面满足需求,现有的移动恶意软件分析方法仍需进一步完善.为此,笔者建立了一个移动应用程序发现和分类模型,分别对移动终端中多类应用的多种行为序列分别学习建模,并开发了一套原型系统,进行了实验验证.
1 检测模型概述隐马尔可夫模型(HMM, hidden-Markov model)作为信号动态时间序列统计模型,具有严谨的数据结构和可靠的计算性能;SVM属于一般化线性分类器,特点是能同时最小化经验误差与最大化几何边缘区,能利用有限的样本信息,在模型的复杂性和学习能力之间寻求最佳折中.在图像识别和故障诊断中,单独的模型已经得到广泛的应用[4-5],但是目前还很少有人把这2种方法同时引入到移动恶意程序动态分析中.
笔者将HMM与SVM结合的初衷是在日常分析中发现大量恶意应用程序常将恶意行为隐藏在多种正常行为中,通常情况下单独对一类行为做分析很难对其恶意性做出判断.在这种情况下,可以通过将不同类型应用中的多种行为单独建模,从而更精确地对应用程序的恶意行为进行描述. HMMs-SVM模型如图 1所示.
如图 1所示,为了检测和将移动应用恶意程序分类,HMMs-SVM模型的具体步骤如下.
1) 选择适量的应用样本,按照正常和多种已知恶意威胁类型分类.
2) 对样本进行预处理和特征提取,得到训练样本的基础特征序列.
3) 在捕获的特征序列中提取多种特征序列,将其作为多个HMM的特征向量输入.每种类型移动应用的特征序列均可以被拆分为短信、电话、文件操作、网络收发4类,对每类行为分别使用Baum-Welch算法进行训练建模,得到不同类别样本中不同行为所对应的HMM.
4) 将特征序列再次通过Forward-Backward算法计算各个观测单元的最大似然输出,并将多个HMM的输出结果组成最大似然向量.
5) 将最大似然向量作为最终决策分类的依据,输入SVM,使用1-a-r(one-against-rest)分类算法对K个类别进行训练,得到最终决策的SVM分类器.
2 特征提取与建模检测结果的召回率依赖于正确地建立模型,而特征提取又是模式识别中最重要的过程之一,对于杂乱的行为序列,需要对其进行预处理,对可观测特征进行描述,才能正确对特征建模.
2.1 特征选取在短信收发行为中,HMM接收和发送次数、信息文本的长度以及发送时间作为观测特征;电话行为中,使用号码长度和呼出时间作为观测特征;文件访问行为是本模型分析的重点,模型中将文件访问区域设置为敏感区域和非敏感区域,在文件打开、读取、写入的过程中,分别记录访问这2类区域的行为及操作频率、数据长度,将其作为文件访问行为特征;在网络流量数据中,将具有有效载荷的数据包比例、Δt时间内数据包数量以及数据包流向选取作为网络序列中的观测特征.同时,考虑到4类序列中存在的关联性,在观测中所取的时间间隔Δt均保持一致.
2.2 HMM建模针对不同行为序列τ的HMM可以描述为
其中:Sτ为模型中的有限模型状态集合,Vτ为可能观测到的结果集合,Aτ为状态转移概率矩阵,Bτ为观测概率矩阵,Πτ为初始状态概率.
在特征和模型确认以后,需要分别对2.1节中提出的4类HMM建模,在此以网络行为模型为例,描述模型构建过程.
建模时,首先设定关于网络流量的HMM隐藏状态集合Snet,其中包含4种状态:无恶意行为流量、仅存在恶意行为流量、仅存在敏感行为流量、既存在恶意行为也存在敏感行为流量.即Snet={s1, s2, …, sm}, m=4.
模型在对恶意应用程序的网络行为建模时,默认网络的初始状态是非正常状态;在对正常应用程序的网络行为建模时,默认的网络初始状态是正常状态.设网络初始状态以0为正常状态, 非0为非正常状态. Πnet= {π1, …, πm}, m=4.
由HMM可知,状态转移矩阵A为4阶矩阵,aij表示从状态si转移至sj的概率,网络HMM的状态转移矩阵Anet可以表述为Anet=(aij)4×4.
其次,建模过程中还需要对观测特征进行处理,提取出可描述的观测序列.观测对象为特定时间间隔内的全部数据包,观测时间区间为Δt.每次采样取n组数据,采样总时间T=Δt×n.
为了描述这些特征,需将3种连续的观测状态根据分布情况分为多个离散区间,从而得到可量化的观测特征值.以网络有效载荷Φ为例,设η为Δt时间内总网络包数量,ω为此时间段承载数据的网络包数量,则可以将可观测的网络负载有效特征Φ按照φ=ω/η的取值区间划分,一般有φ∈[0, 1].设有效特征个数为cΦ,特征的有效取值集合为{σ1, …, σcΦ},取值区间φ的判决值共有cΦ-2个,这些判决值与0组成集合{ξ1, …, ξc-1}, ξ1=0,且对任意ξi, ξj∈φ, 2≤i < j≤c-1,均有ξi, ξj∈(0, 1),且ξi < ξj恒成立.基于这些性质,可以对特征Φ的划分规则描述为
(1) |
类似地,网络包数量Θ、流向特征Λ可以通过上述分别归为cΘ和cΛ个可观测区间.
经过上述步骤后,将网络有效载荷、数量、流向特征组合,得到由μ个三元组组成的集合Vnet:
由此可以获得观察概率矩阵B=(bij),其中bij=P(vi|sj), vi∈V, sj∈S, 0≤i≤m, 0≤j≤n.
至此,关于网络行为的HMM建模完成,用同样的方法,可以对文件、短信及电话行为分别建模.对所有的k类测试样本都需针对这4种行为建模.
所有模型建模以后,计算输入序列与每组模型的最大似然值ri,并将所有的最大似然值组成最大似然向量R=(rij),1≤i≤k, 1≤j≤4.
由于最大似然向量R具备高维度性质,单纯从多HMM的估值结果很难明确输入样本序列的分类,故在HMM估值的基础上,引入SVM分类器,将最大似然向量R映射到更高的维度分类.
2.3 SVM建模为了使用SVM将样本分类,实验中将集合K分为4类,记为K={ki}, 1≤i≤4.设k1类为正常样本集合,则在第1次SVM训练时,训练样本中正例是k1中的所有应用经过HMM估值输出的最大似然向量,反例是其余所有向量.
之后对样本集合进行计算,以第1次SVM分类为例,输入类别l和特征向量集R′,定义正常样本的输入类别li=1,非正常样本的输入类别li=-1.
训练样本集E={[r′1, l1], …, [r′N1, lN1]}.
为了能合理地训练SVM分类器,找到最合适的分类超平面,还需要对SVM的核函数进行对比分析.当前常见的核函数主要有线性核函数、q次多项式核函数和径向基核函数[6]等,通过实验分析,最终选定径向基核函数作为本文使用的核函数:
(2) |
通过训练,可以得到训练好的SVM分类器,找到分类适用的超平面.
3 原型系统及实验为了检验本模型的可行性和评价关键技术的效果,实验中利用沙盒技术[7]搭建了一套原型系统用于检验HMMs-SVM模型效果.实验中用于测试的恶意样本集来源于北卡罗来纳州立大学的恶意样本数据库①,正常样本来源于Google Play商店② 随机下载.
① http://www.malgenomeproject.org/policy.html
② https://play.google.com/store
实验中分别使用了恶意扣费(资费消耗)、信息窃取及恶意传播3类恶意样本及正常样本建模分析,每类样本分别输出4个HMM的最大似然概率值,观测区间取样时间Δt=10 s,每次取样时间为5 min.
实验以模型的召回率与误报率为评判标准,在使用不同SVM核函数的情况下,召回率结果如图 2所示.
从召回率方面来看,当径向基核函数取σ=1.6时,可以取得最高的召回率.不同核函数对误报率的影响如图 3所示.
误报率方面,σ=1.65时的径向基核函数具有最低误报率,但是与σ=1.6时相差不大.综合召回率和误报率两方面,最终选取σ=1.6时的径向基核函数作为模型中选用的核函数.
在对误报的正常应用程序进行深度分析之后,发现这些被误报的应用程序中存在灰色行为,模型的分类结果并非完全是误报.通过数据分析,信息窃取类恶意样本的分类结果中误报率超过了15%,表明模型将部分恶意扣费类和恶意传播类误判为信息窃取类,说明这3类恶意应用中存在一些共性,如果要对它们进行准确区分还需进一步调整或新增特征.
此外,为了验证HMMs-SVM模型的有效性,将单独使用HMM和SVM的分类结果与混合模型分类结果进行对比,如图 4和图 5所示.
从数据可以看出,单纯使用HMM也可以取得具有较高召回率的结果,但误报率较高;仅使用SVM可以得到具有较低误报率的结果,但同时召回率也较低.这说明HMM在应用分类上具有一定的预知能力,因此在漏报率方面HMM模型占有一定的优势.笔者所提HMMs-SVM结合了2种模型的长处,在低误报率的基础上,保证了较高的召回率,使应用检测结果更具有稳定性.
4 结束语笔者结合HMM适合于处理连续动态序列、SVM适合于模式分类的优势,提出了基于HMMs-SVM的移动应用行为动态检测模型,用于判断待测样本是否包含恶意行为,并对其分类.最终通过原型系统验证,表明模型在一定程度上可以对应用中的异常行为进行捕捉及分类.
[1] | Miettinen M, Halonen P, Hatonen K. Host-based intrusion detection for advanced mobile devices[C]//20th International Conference on Advanced Information Networking and Applications, 2006. Austria: IEEE, 2006: 72-76. |
[2] | Bente I, Hellmann B, Vieweg J, et al. TCADS: trustworthy, context-related anomaly detection for smartphones[C]//15th International Conference on Network-Based Information Systems, 2012. Australia: IEEE, 2012: 247-254. |
[3] | Shabtai A, Moskovitch R, Feher C, et al. Detecting unknown malicious code by applying classification techniques on OpCode patterns[J].Security Informatics, 2012, 1(1): 1–22. doi: 10.1186/2190-8532-1-1 |
[4] | Li Qi, Zhang Miao, Xu Guoai. A novel element detection method in audio sensor networks[J].International Journal of Distributed Sensor Network, 2013: Article ID 607187. |
[5] |
刘春波, 段雪涛, 贾春福. 基于层次隐马尔科夫模型和变长语义模式的入侵检测方法[J]. 通信学报, 2010(3): 109–114.
Liu Chunbo, Duan Xuetao, Jia Chunfu. Intrusion detection method based on hierarchical hidden Markov model and variable-length semantic pattern[J].Journal on Communications, 2010(3): 109–114. |
[6] | Cristianini N, Shawe T J. An introduction to support vector machines and other kernel-based learning methods[M]. Cambridge: Cambridge University Press, 2000: 121-147. |
[7] | Blasing T, Batyuk L, Schmidt A, et al. An android application sandbox system for suspicious software detection[C]//5th International Conference on Malicious and Unwanted Software, 2010. France: IEEE, 2010: 55-62. |