摘要:随着移动应用的普及,作为恶意行为识别的基础,移动应用端的行为模式分析也成为
当前研究热点。本文创新地从系统环境数据入手,通过对系统多方面数据的监控,建立隐马
尔可夫模型,使用该模型对后续行为产生的系统环境数据进行隐马尔科夫估值计算,从而实
现对后续行为模式的识别,同时在后续识别过程中不断优化模型。本文通过实验证明该方式
具有一定有效性,为移动应用端行为模式识别提供了更多可能。
关键词:移动应用端;隐马尔可夫模型;行为模式
中图分类号:tp311.5 文献标识码:a 文章编号:1006-4311(2016)19-0173-03
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)有效的解决算法是前向算法。
3 基于隐马尔科夫的移动应用端行为模式识别
3.1 获取时间序列
本文以android平台为例,获取运行环境的cpu使用率、内存使用率、进程数、服务数、
流量使用情况等五方面信息的时间序列。具体实现是在固定时间间隔,通过平台api调用访
问和解析相关系统文件来获取android平台运行环境的cpu使用率、内存使用率、进程数量、
服务数量、流量数等信息[6,7]。
3.2 时间序列归一化处理及综合编码
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 实验以及结果
5 小结