基于隐马尔科夫模型的移动应用端行为模式识别
摘要:随着移动应用的普及,作为恶意行为识别的基础,移动应用端的行为模式分析也成为当前研究热点。本文创新地从系统环境数据入手,通过对系统多方面数据的监控,建立隐马尔可夫模型,使用➳该模型对后续行为产生的系统环境数据进行隐马尔科夫估值计算,从而实现对后续行为模式的识别,同时在后续识别过程中不断优化模型。本文通过实验证明该方式具有一定有效性,为移动应用端行为模式识别提供了更多可能。
Abstract: With the popularization of mobile applications, as the basis for recognition malicious behavior, behavior pattern analysis of mobile application terminal has become a hotspot of current research. This paper, starting from system environmental data, and by monitoring many aspects of system data to establish Hidden Markov Model, uses this model to take hidden Markov valuation calculation for the system environmental data generated by the subsequent behavior, so as to realize the recognition of subsequent behavior patterns. Meanwhile in the subsequent recognition process, the model has to be continuously optimized. Through experiments, it shows that the approach has some validity, in order to provide more possibilities for behavior pattern recognition of mobile application terminal.
关键词:移动应用端;隐马尔可夫模型;行为模式
Key words: mobile application terminal;Hidden Markov Models;behavior pattern
0 引言
在移动设备迅速普及的今天,开展移动安全性研究势在必行。目前针对移动应用端恶意行为检测的方式主要是对移动应用端的应用程序进行反编译,分析其源码是否存在于恶意行为代码特征库,以此作为评判标准。但随着恶意行为代码特征库的不断增加会导致系统开销增大,检测速度变慢。另外,随着黑客们使用的代码混淆技术的发展,也使之能够逃避这种静态分析手段[1]。
因为程序的运行会造成系统环境数据变化,所以系统环境数据可以反映系统运行情况。本文提出一种基于隐™马尔可夫模型的行为模式识别方式,通过对移动应用端系统运行环境的CPU使用率、内存使用率、进程数、服务数、流量数监测获得时间序列数据,对特定行为进行隐马尔科夫建模,以待测行为的时间序列与特定的模型之间相似度为评判标准,并在每次评判之后优化模型[2]。该方法目的在于有效识别行为模式,对移动端恶意行为分析的后续研究提供前提,丰富了行为检测的手段,具有一定的实用价值。
1 马尔可夫模型介绍
2 隐马尔可夫模型介绍
2.1 隐马尔可夫模型
在马尔可夫模型中,每一个状态代表一个可观察的事件。而在隐马尔科夫模型中观察到的事件是状态的随机函数,因此隐马尔科夫模型是一双重随机过程,其中状态转移过程是不可观察的,而可观察的事件的随机过程是隐蔽的状态转换过程的随机函数(一般随机过程)[3]。对于一个随机事件,有一观察值序列:O=O1,O2,…Ot,该事件隐含着一个状态序列:Q=q1,q2,…qt。
2.2 隐马尔科夫模型使用前提
假设1:马尔可夫性假设(状态构成一阶马尔可夫链)P(qi|qi-1…q1)=P(qi|qi-1)
假设2:不动性假设(状态与具体时间无关)P(qi+1|qi)=P(qj+1|qj),对任意i,j成立。
假设3:输出独立性假设(输出仅与当前状态ษ有关)P(O1,…OT|q1,…,qT)=∏P(Ot|qt)
隐马尔科夫模型在解决实际问题的过程中,需要事先知道从前一个状态St-1,进入当前状态St的概率P(St|St-1),也称为转移概率,和每个状态St产生相应输出符号Ot的概率P(Ot|St),也称为发射概率。描述它的数学表达式为:λ={N,M,A,B,∏},下面对各个参数逐一描述:
N表示隐状态S的个数,其取值为{S1,S2,…,SN},
M表示显状态O的个数,其取值为{O1,O2,…,ON},
2.3 隐马尔科夫可以解决的三个问题
①评估问题:已知一个显状态序列O={O1,O2,…,ON},并且有确定的λ={N,M,A,B,∏}组成的HMM参数,求发生此显状态的概率P(O|HMM)有效的解决算法是前向算法。
②解码问题:在己知一个显状态序列O={O1,O2,…,ON},并且有确定的λ={N,M,A,B,∏}组成的HMM参数,求解最有可能产生此显状态序列的隐状态序列S。较为有效的解决方法是Viterbi算法。 ③优化问题:在己知一个显状态序列O={O1,O2,…,ON},通过对参数N⌘,M,A,B,∏的修正,使得发生此显状态的概率P(O|HMM)最大,有效解决算法是Baum-Welsh算法[4,5]。
3 基于隐马尔科夫的移动应用端行为模式识别
本文通过对移动应用端的下载,看视频,打电话,聊微信、QQ,视频通讯,网络语音通讯,卫星导航及混合行为下这8个特定行为进行监控,抽样出大量时间数据序列,对每一个时间序列进行归一化处理,综合多方面归一化结果给出对应编码序列,以此建立出不同行为的隐马尔可夫模型,对于待识别的时间序列进行隐马尔可夫模型的估值计算,即相似度计算。取相似度计算值最大所对应的隐马尔科夫模型的行为模式作为待识别序列的行为模式判别结果。同时使用该待测序列对其所匹配的隐马尔可夫模型进行优化,以便提高之后识别准确率。
3.1 获取时间序列
本文以Android平台为例,获取运行环境的CPU使用率、内存使用率、进程数、服务数、流量使用情况等五方面信息的时间序列。具体实现是在固定时间间隔,通过平台API调用访问和解析相关系统文件来获取Android平台运行环境的CPU使用率、内存使用率、进程数量、服务数量、流量数等信息[6,7]。
3.2 时间序列归一化处理及综合编码
对每一个时间序列进行归一化处理[8],使其平均分配在[0,1]上5个均分区间内(事实上均分区间数目越多越能反映真实的波动趋势,但考虑到编码复杂度,本文选择归一化区间为5个均等分)。并为其分配{1,2,3,4,5}的标识,由此可以得到每个时间序列的波动趋势。同时为了综合多方面信息考虑,可以对多类时间序列的归一化标识进行编码,本文研究了CPU、内存、进程数、服务数、流量数这5类序列,所以可以产生5×5=25种编码,分别用{A,B,C…V,W,X}25个字母表示。以编码的序列结果作为隐马尔可夫模型输入序列,然后以此建立出不同行为的隐马尔可夫模型,对于待识别的时间序列进行隐马尔可夫相似度计算。
3.3 隐马尔可夫模型初始化及训练
本文HMM模型初始参数设置为:λ={N,M,A,B,∏},其中,N=8(八个隐状态,即本文考虑的7个行为外加一个混合行为),M=25(可能出现的25种显状态,即输入的编码序列所能看到的25个码元状态),根据对实验数据各状态转换频率占比的统计,可以设置A为:
而B由于是在25个显状态时背后所处的8个隐状态概率,所以可以暂且设置元素为1/25=0.04的25阶矩阵:
分别使用3.2节获得的7种行为和1种在混合行为下所监控得到的归一化序列作为上述初始化模型的输入值,分别训练可以得到8个隐马尔科夫模型,分别用Ⅰ、Ⅱ、Ⅲ、Ⅳ、Ⅴ、Ⅵ、Ⅶ、Ⅷ来表示。
3.4 行为模式识别
对于待识别的行为模式,依然是按照3.2节的方式产生隐马尔科夫模型的输入序列。计算该待测序列与3.3节训练出的8个隐马尔科夫模型之间的相似度,即2.3.1所述参数评估问题。取8个相似度中最大值所对应的隐马尔科夫模型的行为模式作为该待测序列的识别结果。
为了每一次识别的准确性,本文还采取了隐马尔可夫模型的优化处理。具体方式:在每一次识别后,使用待测序列去更新其对应的隐马尔科夫模型参数,即2.3.3节所述模型优化问题。图1是隐马尔科夫训练模型的流程。
4 实验以及结果
为了对本文方法的有效性验证,依次在下载,看视频,打电话,聊微信、QQ,视频通讯,网络语音通讯,卫星导航及混合行为下这8个特定行为下分别抽样2万条长度为10个抽样点的时间序列,共计16万数据样本。实验将每个行为获取的2万条时间序列中前一万条用于模型训练,第一次实验用前一万条进行行为识别,第二次用后一万条进行行为识别,取两次实验准确率的平均值作为最终准确率。同时使用相同的实验样本,依托支持向量机SVM模型对同样的8个特定行为进行识别,将本文方法准确率与其结果作为比对,由表1可以看到本文方法除聊微信、QQ和混合行为模式判别的准确率低于SVM方法之外,其他行为模式识别都较SVM方法的准确率有明显提高,所以本文提出的行为模式识别方式具有一定有效性。
5 小结
本文给出了一种基于隐马尔科夫模型的行为模式识别方式,进行实验,通过该方法和SVM方法结果比对可以看出该方法具有一定的有效性,但在聊微信、QQ和混合行为模式判别准确率上要低于SVM方法,这一点也是后续研究要解决的问题。由于本文旨在提出一种可行性办法,所以实验中对特性行为的选取还有待进一步斟酌与研究。本文以Android平台的监控数据为例,但该方法同样适用于其他操作系统的移动应用端行为模式识别中。
参考文献:
[1]周正,刘毅,李建,等.计算机抗恶意代码免疫模型[J].计算机工程,2008,34(17):7-9.
[2]曹凯,于善义,于少伟.基于多隐马尔可夫模型的车辆机动行为识别与预测[J].信息与控制,2014,43(4):506-512.
[3]王相海,丛志环,方玲玲,等.混合种群多样性自适应遗传操作的HMM训练模型[J].计算机研究与发展,2014,51(8):1833-1844.
[4]张增银,元昌安,胡建军,等.基于GEP和Baum-Welch算法训练HMM模型的研究[J].计算机工程与设计,2010,31(9):2027-2029.
[5]刘云冰.基于HMM的说话人识别中下溢问题的修正[J].微计算机信息,2006.
[6]Bose,A, Hu,X., Shin, ฐK.G., Park,T. Behavioral detection of malware on mobile handsets. 2008.ACM.
[7]Enck W,Ongtang M, McDaniel P. On lightweight mobile application certification[C].Proceedings of the 16th ACM conference on Computer and communications security ACM.2009:235-245.
[8]李新德,潘锦东,DEZERT Jean.一种基于DSmT和HMM的序列飞机目标识别算法[J].自动化学报,2014,40(12):2862-2876.