论文部分内容阅读
摘要:隐马尔可夫模型(HMM)已经被证明是一个对系统正常行为建模的好工具,但是它的Baum-Welch训练算法效率不高,训练过程需要很大的计算机资源,在实际的入侵检测中效率是不高的。本文提出了一个高效的用多观察序列来训练HMM的训练方案,我们的实验结果显示我们的训练方法能比传统的训练方法节省60%的时间。
关键词:入侵检测,异常入侵检测,隐马尔可夫模型, Baum-Welch 算法
中图分类号:TP393 文献标识码:A文章编号:1009-3044(2007)16-31013-02
A New Hidden Markov Model Training method for Anomaly Intrusion Detection
ZHAO Bo,LI Yong-zhong,XU Jing,YANG Ge
(School of Electrics and Information, Jiangsu University of Science and Technology, Zhenjiang 212003,China)
Abstract:Hidden Markov Model (HMM) has been proved to be a good tool to model system normal behaviours, but its Baum-Welch training algorithm is inefficient and it need excessive computer resources in HMM training process, which makes it inefficient to practical intrusion detection. In this paper we propose an efficient HMM training method using multiple observations sequences, Our experimental results show that our HMM training method can reduce the training time by about 60% compared to that of the conventional training method.
Key words:Intrusion Detection; Anomaly Intrusion Detection; Hidden Markov Model;Baum-Welch algorithm
1 引言
入侵检测技术是计算机安全技术中的一个重要技术,它分为异常检测和误用检测。目前,大部分入侵检测产品都是采用误用检测技术,误用检测技术较为成熟,异常检测技术成为现在入侵检测研究的主要方向。异常检测的关键是如何建立系统的正常行为模式及如何利用该模式去检测和判断系统的异常行为。隐马尔可夫模型已经被证明是一个的对系统正常行为建模的好工具[2][3],但是经典HMM的Baum-Welch算法引入了一个很不合理的假设:不同的观察序列之间是统计独立的,这与实际情况往往不符。它一个很大的缺点就是的训练过程需要很大的计算机资源,在实际的入侵检测上效率是不高的。用多观察序列方法来训练HMM已经被成功的用于语音识别[7][8]。同样用多观察序列算法来训练HMM也能用于入侵检测,我们针对前面所说缺点,对多观察序列算法进行改进,我们首先把多观察序列分成多个子序列,然后用这些子序列去训练子模型,最后把子模型合并成一个整体模型。经过改进,HMM训练方法得到改进,大大节省了计算机资源,也减少了训练时间,更利于网络入侵检测。我们使用美国新墨西哥州大学计算机科学系实验室里[6]采集到的Sendmail守护进程数据和inetd数据进行实验,实验结果显示我们的训练方法能比传统的训练方法能节省大约60%的时间。
2 隐马尔可夫入侵检测训练模型
2.1 隐马尔可夫模型
隐马尔可夫模型是一个双重随机过程,即内含一个不可见的(隐藏的)从属随机过程的随机过程,此不可见的从属随机过程只能通过另一套产生观察序列的随机过程观察得到.
假定计算机在正常运行情况下的某个进程在一个时段内产生的长为T的系统调用序列定义为观察值O={O1,O2,L,Ot,L,OT},Ot为t时刻产生的系统调用;系统调用序列对应的隐含状态序列为Q={q1,q2,L,Qt,L,Qt},qt为t时刻所处状态.那么,可以使用3个参数描述一个基于HMM的正常程序行为模型λ=(A,B,π),其中HMM 涉及到的一些参数描述如表1所示。
这里对网络的正常状态建立HMM模型,正常状态就是指网络在没有任何攻击、正常使用的状态,这种正常状态只是一个理想情况,起个参照作用,在实际的系统应用中不存在。用这种状态与系统当前状态比较,当前的状态与模型的差别越大,为异常状态的可能性就越大。
表1 HMM参数描述
针对异常入侵检测的隐Markov模型的状态空间只包含两个状态:正常状态和异常状态,为了表达方便,我们用0表示正常状态,用1表示异常状态。观测链是系统行为的采样,系统行为每次的观测值都有可能属于正常状态,也可能属于异常状态。建立的针对异常入侵检测的隐Markov模型如下:
(4)初始状态分布:
π={π0,π1},其中πi=P{第1步处于状态i},i∈?准,指正常状态和异常状态的初始分布.
(5)观测序列:O(t),t=1,2,L,T ,O(t) ∈V,为可见符号(观测到的系统行为)序列,T为观测到的可见符号的数量。
我们对完全正常的计算机系统运行过程建立的隐Markov模型为:λ=(A,B, π)
其中我们定义在理想情况下的状态转移概率矩阵A1010,它表示在完全正常的计算机系统运行过程中,由正常状态转移到正常状态和由异常状态转移到正常状态的转移概率均为1,这表示不管当前处于何种状态(正常状态或异常状态),下一步都以概率1转移到正常状态;并且我们只能知道在正常行为过程中的可见符号的概率分布为{b0(k)},即在正常行为过程中各种系统行为出现的概率,而对于在异常行为过程中的可见符号的概率分布是不能确定的.由于我们是对理想条件下的完全正常的计算机系统运行过程建模,所以正常状态和异常状态的初始分布π={1,0},表示在完全正常的情况下,系统的初始状态是正常状态的概率为1.
2.2 用HMM为正常行为建模
建立HMM需要确定状态数N.入侵检测的实验结果表明,如果状态数等于训练数据中系统调用类型的个数,就会获得较好的检测效果[2]。因此,在入侵检测时,状态数的选取与实验用到的具体数据集有关.我们选取状态数N等于不同的观察符号数M。
我们对入侵检测的HMM建模包括两部分(如图1),一部分是训练建模部分,首先把系统信息经数据处理成观察序列,经过训练算法训练生成HMM。另一部分是检测部分,把系统信息转变成短序列,把每一个短序列与HMM匹配,推断系统信息正常与否。
图1 基于系统调用的异常检测的HMM的训练和检测
2.3 HMM的训练算法
关键词:入侵检测,异常入侵检测,隐马尔可夫模型, Baum-Welch 算法
中图分类号:TP393 文献标识码:A文章编号:1009-3044(2007)16-31013-02
A New Hidden Markov Model Training method for Anomaly Intrusion Detection
ZHAO Bo,LI Yong-zhong,XU Jing,YANG Ge
(School of Electrics and Information, Jiangsu University of Science and Technology, Zhenjiang 212003,China)
Abstract:Hidden Markov Model (HMM) has been proved to be a good tool to model system normal behaviours, but its Baum-Welch training algorithm is inefficient and it need excessive computer resources in HMM training process, which makes it inefficient to practical intrusion detection. In this paper we propose an efficient HMM training method using multiple observations sequences, Our experimental results show that our HMM training method can reduce the training time by about 60% compared to that of the conventional training method.
Key words:Intrusion Detection; Anomaly Intrusion Detection; Hidden Markov Model;Baum-Welch algorithm
1 引言
入侵检测技术是计算机安全技术中的一个重要技术,它分为异常检测和误用检测。目前,大部分入侵检测产品都是采用误用检测技术,误用检测技术较为成熟,异常检测技术成为现在入侵检测研究的主要方向。异常检测的关键是如何建立系统的正常行为模式及如何利用该模式去检测和判断系统的异常行为。隐马尔可夫模型已经被证明是一个的对系统正常行为建模的好工具[2][3],但是经典HMM的Baum-Welch算法引入了一个很不合理的假设:不同的观察序列之间是统计独立的,这与实际情况往往不符。它一个很大的缺点就是的训练过程需要很大的计算机资源,在实际的入侵检测上效率是不高的。用多观察序列方法来训练HMM已经被成功的用于语音识别[7][8]。同样用多观察序列算法来训练HMM也能用于入侵检测,我们针对前面所说缺点,对多观察序列算法进行改进,我们首先把多观察序列分成多个子序列,然后用这些子序列去训练子模型,最后把子模型合并成一个整体模型。经过改进,HMM训练方法得到改进,大大节省了计算机资源,也减少了训练时间,更利于网络入侵检测。我们使用美国新墨西哥州大学计算机科学系实验室里[6]采集到的Sendmail守护进程数据和inetd数据进行实验,实验结果显示我们的训练方法能比传统的训练方法能节省大约60%的时间。
2 隐马尔可夫入侵检测训练模型
2.1 隐马尔可夫模型
隐马尔可夫模型是一个双重随机过程,即内含一个不可见的(隐藏的)从属随机过程的随机过程,此不可见的从属随机过程只能通过另一套产生观察序列的随机过程观察得到.
假定计算机在正常运行情况下的某个进程在一个时段内产生的长为T的系统调用序列定义为观察值O={O1,O2,L,Ot,L,OT},Ot为t时刻产生的系统调用;系统调用序列对应的隐含状态序列为Q={q1,q2,L,Qt,L,Qt},qt为t时刻所处状态.那么,可以使用3个参数描述一个基于HMM的正常程序行为模型λ=(A,B,π),其中HMM 涉及到的一些参数描述如表1所示。
这里对网络的正常状态建立HMM模型,正常状态就是指网络在没有任何攻击、正常使用的状态,这种正常状态只是一个理想情况,起个参照作用,在实际的系统应用中不存在。用这种状态与系统当前状态比较,当前的状态与模型的差别越大,为异常状态的可能性就越大。
表1 HMM参数描述
针对异常入侵检测的隐Markov模型的状态空间只包含两个状态:正常状态和异常状态,为了表达方便,我们用0表示正常状态,用1表示异常状态。观测链是系统行为的采样,系统行为每次的观测值都有可能属于正常状态,也可能属于异常状态。建立的针对异常入侵检测的隐Markov模型如下:
(4)初始状态分布:
π={π0,π1},其中πi=P{第1步处于状态i},i∈?准,指正常状态和异常状态的初始分布.
(5)观测序列:O(t),t=1,2,L,T ,O(t) ∈V,为可见符号(观测到的系统行为)序列,T为观测到的可见符号的数量。
我们对完全正常的计算机系统运行过程建立的隐Markov模型为:λ=(A,B, π)
其中我们定义在理想情况下的状态转移概率矩阵A1010,它表示在完全正常的计算机系统运行过程中,由正常状态转移到正常状态和由异常状态转移到正常状态的转移概率均为1,这表示不管当前处于何种状态(正常状态或异常状态),下一步都以概率1转移到正常状态;并且我们只能知道在正常行为过程中的可见符号的概率分布为{b0(k)},即在正常行为过程中各种系统行为出现的概率,而对于在异常行为过程中的可见符号的概率分布是不能确定的.由于我们是对理想条件下的完全正常的计算机系统运行过程建模,所以正常状态和异常状态的初始分布π={1,0},表示在完全正常的情况下,系统的初始状态是正常状态的概率为1.
2.2 用HMM为正常行为建模
建立HMM需要确定状态数N.入侵检测的实验结果表明,如果状态数等于训练数据中系统调用类型的个数,就会获得较好的检测效果[2]。因此,在入侵检测时,状态数的选取与实验用到的具体数据集有关.我们选取状态数N等于不同的观察符号数M。
我们对入侵检测的HMM建模包括两部分(如图1),一部分是训练建模部分,首先把系统信息经数据处理成观察序列,经过训练算法训练生成HMM。另一部分是检测部分,把系统信息转变成短序列,把每一个短序列与HMM匹配,推断系统信息正常与否。
图1 基于系统调用的异常检测的HMM的训练和检测
2.3 HMM的训练算法