1、基于 HMM 的系统调用序列异常入侵检测基于 HMM 的系统调用序列异常入侵检测王志川钱兴坤王东亮中同石油大学(华东) 计算机与通信 T 程学院山东 25706l摘要:本文首先介绍了入侵检测的发展状况,接着用马尔呵大和 BW 算法进行建模;然后以系统调用执行迹这类常用的入侵检测数据为例,验证该模型的工作效果,最后将计算机仿真结果与其他检测方法进行了比较.通过实验和比较发现,基于 HMM 的系统调用序列的异常检测率比其他方法有明显的提高.关键词:入侵检测;HMM;BW;系统调用0 弓 I 言目前大部分基于主机的入侵检测都是使用不同方法,以系统调用作为研究对象.来建立正常程序行为模型,从而实现入侵
2、检测.系统调用是用户间和内核卒问中资源调用的接口.单个程序在执行过程中可能会产生多个进程,一个进程产生的系统调用被归为一个执行迹,通过分析执行迹产生的系统调用,就可以发现程序的异常运行状念,进而判断系统是否受剑攻击.相对于其他数据源来说,系统调用的种类非常有限(内核为 2.7.10 的 Linux 系统其系统调用不足 220 种,常用的大约在 90 种),黑客攻击不可避免的会在系统内核层留下入侵痕迹,因此基于系统调用的入侵检测建模比较简单高效,已成为异常入侵检测中主机行为建模的主要研究对象.隐马尔可夫模型可以跟踪系统调用中隐含的状态转移特性,此利用它有较好的检测结果.但是传统的基于 HMM 的
3、入侵检测方法要分别计算出每个系统调用的输出概率和状态转移概率,计算量很大.本文通过计算系统调用划分短序列的方式将 HMM 应用剑入侵检测,与 Forest 等人的测试结果桕比,检测效率明显提高.lHMM(隐马尔可夫模型)HMM 是由马尔可夫过程扩充而来的一种双重随机模型,可以看作由两部分组成:马氏链:一个观测不到的有限状态链,用来描述状态的转移,在模型中用转移概率 aij 描述.一般随机过程:描述状态与观察序列的关系,是与状态桕关的可观测的随机变量,也称为观测链,在模型中用输出概率 bj(k)描述 .HMM 要描述随机事件应满足这些假设:一个随机事件,有一个观察值序列:0=(01,02 OT)
4、,该事件隐含着一个状态序列 Q=ql,q2qT.假设 l:马尔可夫假设 P(q,Iqq1)=P(q,Iq)假设 2:不动性假设:P(q.+,Iq,)=P(q,+lIqi)对仟意的 q,和q 成立.,假设 3:独立性:P(o.,oq.q):兀 P(o 汨),=l满足上述条件下,首先定义观察序列长度为 T 的观察序列在整个观察期间的输出序列为 0=O,O.0,某 t时刻所输出的观测值为 0,状态序列 Q=q.,q,q,某t 时刻所处的状态 q.那么 HMM 中涉及剑的 5 个参数描述如下:模型中的节点个数:N,也就是状态个数,定义状态的有限集合:S=S.,S .S=l,2,N观测值个数:M,定义观
5、测值有限集合 V=V.,V.V=1,2,M初始分布:=i其中 I-P(q.一.)即开始时处于 S.状态的概率满足约束条件:N.90;M=I(1iN)状态转移概率矩阵:A=al_ 其中 a.,=P(q+.一.Iq 一,)即为在 t 时刻处于 Si 而在 t+l 时刻处于状态 sj 的概率 ,也就是从状态 Si 转移到状态 sj 的概率.输出概率矩阵:B=b其中 b_k=P(0=VIq 一,)即在 t 时刻处于状态 si 并输出观察值 vk 的概率满足约束条件:Il 作者简介:王志刚(1980 一),男,中国石油大学( 华东 )计算机与通信上程学院,硕士研究生,研究方向:网络安全,入侵检测.钱兴坤
6、(1966 一),男,一中国石油集团经济信息研究院,教授级高_,研究方向: 网络安全.工东亮(1980 一),男,中国石油大学(华东) 计算机与通信工程学院,硕士研究叶:,研究方向:网络安全.2O 鹏安呈技 7It 与应用 20oB73 圜/o:=k当观察符号 v 是离散符号时,输出慨率 b 是离敞的概率值,这时的 HMM 称为离散的隐马尔可夫模型记为=(N,M,A,B),简记为:(A,B,);当观察符号 v 取为连续的矢量时,这时的 HMM 称为连续的隐马尔可夫模型 .由于在入侵检测中,我们处理的对象系统调用为离散的数据,因此在这里选取 DHMM 作为系统模型.在 HMM 模型实际应用中有三
7、个基本问题需要解决.(1)评估问题: 给出一个 HMM=(A,B,),如何高效率地计算某个输出序列 0 的概率 P(OI),就是在模型已知的情况下,计算某个输出结果的概率.(2)解码问题: 给出输出序列 0 及模型,如何选择状态序歹 IJ,使得它最符合输出序列,就是在模型已知的情况下 ,求可能性最大的序列.(3)学习问题: 给出一个输出序列 0,调整模型参数,使得观察值出现的概率 P(OI)最大;也就是训练 HMM 模型,优化模型参数.2 基于 HMM 的正常系统调用行为建模要建立正常程序的系统调用模型就是由程序在正常运行中产生的系统地调用序列确定 HMM 的各参数,也就是解决HMM 的 3
8、个基本问题中的学习问题.本文使用标准的 BW(BaumWelch)算法进行参数估计,以解决 HMM 中的学习问题.通过不断地重估参数,调整状态转移概率和输出概率,直到 P(0I)局部最大.要解决 HMM 在建模中的学习问题,首先要计算观察系统调用序列在给定模型下的输出概率,即定义和解决评估问题.建立 HMM 需要确定状态数 N.入侵检测的实验结果表明,如果状态数等于训练数据中系统调用类型的个数,就会获得较好的检测效果.所以,基于 HMM 的异常检测时 ,状态数的选取与实验用刨的具体数据集有关.给定观察的系统调用序列 0:O,O.0),和给定的模型 HMM 模型:(A,B,),计算输出概率 P(
9、OI)首先要解决评估问题,这可以通过“ForwardBackward“算法来实现.定义前向变量.【t(i)表示给定 HMM 参数,输出部分观察序列O,0 .0,则在 t 时刻处于状态 si 的概率.【ti:P(O.O,q,:SI);定义后向变量 pt(i)为给定 HMM 参数,观察序列在 t 时刻处于状态 Si,则系统输出部分观察序列 0.O,OT的概率 t(j)=P(O+1,OH.OT,q=S.).通过“ForwardBackward“算法可以得刨输出概率p(o)13t(?): n(i)a-ll13(j)=T【1)利用 BW 算法训练 HMM 的参数,通过不断的重估参数调整转移概率和输出概率
10、直钊输出概率 P(Ol)局部最大 .在利用 BW 算法时,还需要定义另外 2 个变量(i)和 Y(i).(i,j)为给定模型和观测序列 O 在 t 时刻处于状态 si,而在 t+1 时刻处于状态 si 的概率,通过如下得到:(i,j)=-P(q:S1,1:SjIO,)-P(ql=s,1:Sj,OI)/p(oI)(2)Y.(i)为给定模型和观测序列 0 在 t 时刻处于 si 状态的概率,通过如下得到Y.(i)=P(qt=Sif0,)=.【t(i)pt(i)/P(Of)(3)从(i,j)和 Y(i)的定义可以得出 ,如果定义 E 为从状态 s 转移纠状态 s 的期望次数,E 为从状态 s 转移的
11、期望次数,Ei 为处于状态 s 的期望次数,则有EutOd).(4),1Eir=t=l,Ei=it()_16Jt=l利用上式(4) (6)就可以得到 HMM 参数重估的方法.,一个新的重估模型:(一 A,百,)使用如下等式来计算:=在(仁 1)时刻处于 si 的期望次数=Y,(i)1=i=N(7)a,Eij/Eir(8)Ej表示处于状态 sj 并且观测值为 v 的期望次,bjk=Ej,k/E(9)给定初始模型=(A,B,),利用训练的系统调用序列 0,通过式(7)式 (9)可以计算重估后的模型 j:(.,).可以得知 P(OI2)大于 P(OI).用代替,并重复进行上述重估过程,直刨满足某一限
12、制条件为止,例如 IP(OA)一 P(OI)I 的值小于某个给定闽值.可以看出,重复进行重估计算,就可以提高训练序列 0 的输出概率,这个重估程序的最终结果被称为 HMM 的最大似然估计.得到的=(A,B,)即为正常程序行为的 HMM 模型.3 系统调用序列预处理基于正常程序行为的系统 HMM 训练完成之后,在实验中,我们以每个进程作为研究对象,检测某个进程是否正常.因此,在给定一组系统调用数据,我们首先按照进程对他们进行分组,将每个进程产生的系统调用作为一组进行检测.在实际中我们首先对某个进程产生的系统调用序列用长度为k 的滑动窗口进行分割,滑动窗口每次后移一位.假设测试序歹 IJ 长为 L
13、,则短序列集包含 C=(Lk+1)个长为 k 的滑动窗口短序列,于是可以得到系统调用短序列集Xi(1 iLk+1).对每个短序列 xi 按照式 (1)求输出概率,为了明显突出输出概率之间的差别,可取输出概率为 lgP(XiI).将短序列集中的每个短序列的输出概率与给定的输出概率阔值进行比较,并将小于的短序列标定为“不匹配“. 然后 ,统计并求出测试序列中“不匹配 “的短序列数 T 与总的短序列数 C 的比值 ,该比值定义为异常度 6=T/C,再将求得的测试序列的异常度与另一给定的异常度阔值 6 进行比较,如果异常度大于 6,就认为产生此测试序列的程序可能为异常的;否则,认为测试序列的程序是正常
14、的.4 入侵检测实验结果和分析2006.7 面塘各安宝技 7ft 与应用 21图secUrltv本文以 Sendmail 和 LiveFrP 来进行实验,两种训练数据中分别共有 53 和 45 种不同类型的系统调用,因此,在对这两种程序系统调用序列进行建模时我们确定 HMM 中的状态数为 53 和 45.对 SendMail 数据来说,我们随机选取 105 个正常进程训练,用 42 个正常进程和 23 个异常进程用来测试;对LiveHP 数据我们选取了 5 个正常进程来训练,80 个正常进程和 3 个异常进程来测试;试验中采用滑动窗口的值 k 为 3 和 6.实验结果如表 l 所示.表 1se
15、ndMa;I 和 LiveFTP 系统调用数据正常进程和异常进程的平均异常度6()系统调用序列k=3k=6Syslogremote 一 1259873344564Syslogremote 一 23443l549l434SendmallSysloglocal 一 127204l407950Sysloglocal 一 228664246445Nomal0023OO异常 lO32l847LiveFTPNomalOl2OI778表 2SendMaiI 数据的漏报和误报率滑动窑口大小 i 报(23 个异常进程)误报(42 个进程)i 报率(%)误报率 lJ30l02460000表 3LiveFTP 的数
16、据的漏报和误报率l【l6l010J00表 4HMM 训练数据的时间和检测时间表 5SendMaiI 数据和文献和结果的比较HMM 检测方法滑动窗口系统调用数据复 Foest 滑动窗口为【1Lee 滑动窗口为 73SyslogTemote 一 1344564Syslog-remote 一 2SysloglocallSysloglocal-25 实验结果的分析从表 l,表 2,表 3,表 4,表 5 中可以得出以下结论:(1)我们应用的基于 HMM 的系统调用异常检测方法有很好的检测结果.无论是 SendMail 数据还是 LiveFIP 数据,异常进程的异常度比正常进程异常度明显高得多,所以应用
17、基于HMM 的系统调用异常检测方法很容易准确地将程序的正常行为与异常行为区分出来,具有很高的检测精度.(2)在滑动窗口大小相同正常测试数据的异常度大体相当的情况下使用本文的方法得刨的异常测试数据的异常度与Forrest 和 Lee 这两种方法相比要大的多.这说明文中的方法更有效,更准确地检测异常行为.(3)滑动窗口的大小对异常度也有影响,滑动窗口越大,正常测试数据与异常测试数据异常度之间的差距就越大,但消耗时间也随之增加.尽管本文的方法具有很高的检测精度,但是正常模型的建立比较费时.6 结论基于 HMM 的系统调用异常检测方法,主要是利用 HMM可以跟踪状态转移的特点,用正常的系统调用序列建立
18、正常程序行为模型.在检测时,用系统调用短序列作为研究对象,根据短序列与正常系统调用行为模型的匹配程度进行标定,并统计不匹配短序列所占的百分比,进而判断系统调用所在的程序行为是否异常.实验结果表明,使用本文方法的检测效果很好.参考文献1LiaoYH,VemuriVR.Useofk-nearestNeighborClassifierforIntrusionDetection.ComputersecurityJ.2002.2WarrenderC,ForrestS,PearlmutterB.Detectingintrusionusingsystemcall:alternativedatamodelsA
19、.1999IEEESymposiumonSecurityandPrivacy.Oakland.USA.1999.3RabinerLR.ATutorialonHiddenMarkovModelsandSelectedApplicationsinSpeechRecognition.ProceedingoftheIEEEC.1989.4ForrestS,HofmeyrSA,SomayajiA,eta1.AsenceofSelfforUnixProcesses.Proceedingsofthe1996IEEESymposiumonResearchinSecurityandprivacyC】LosAla
20、mos,CA.1996.5LeeW,StolfoS.DataMiningApproachesforIntrusionDetection.Proceedingsofthe7thUSENIXSecuriposiumC.UsenixAssocciation.1998.AnIntrusionDetectionofAnomalousBasedonHMMSystemCalISequenceWangZhigang,QianXingkun,WangDongliangCollegeofComputerandCommunicationEngineering,ChinaUniversityofPetroleum,S
21、handong,257061Abstract:First.theresearchprogressofintrusiondetectionisrecalled.thenthemodelofanlDSbasedonMarkovandBWispresented.Anexampleofusingsystemcalltracedata,whichisusuallyusedinintrusiondetection,isgiventoiIlustratetheperformanceofthismode1.Finally,comparisonofdetectionabilitybetweentheabovedetectionmethodandothersisgiven.1tisfoundthatthelDSbasedonHMMSystemCallsquencehasimprovetheaccuracygreatly.Keywords:intrusiondetection;HMM:BW;systemcall22 麟安呈技 7It 与应用 20.7