基于隐马尔可夫模型的网络入侵检测

2018-12-05 09:14潘秋羽
网络空间安全 2018年4期
关键词:入侵检测

摘 要:随着互联网科技的进一步革命,在它给我们带来大量便利的同时,其引发的安全问题也一直让众多用户感到头疼。基于此,考虑到隐马模型(Hidden Markov Model,HMM)具有的模型理论透彻、算法成熟、分类器学习性能高等优点,很多学者都曾研究过基于HMM的主机入侵检测。常规的方法是以系统调用作为模型观测值,以程序中出现的系统调用总数作为模型状态数。但由于训练分类器的观测序列过长会导致模型参数不易收敛等问题。文章将提出一种基于数据为特征的网络入侵检测方式。

关键词:入侵检测;异常检测;数据特征;隐马尔可夫模型

中图分类号:TP393.08 文献标识码:A

Abstract: With the further revolution,the Internet technologies bring us more convenience,as well as some problems bothering users all the time so that considering the HMM has numerous advantages,a lots of scholars have studyed the host intrusion detection based on HMM.The conventional measure is that viewing system calls as observed values and regarding the number of system calls existing in the processes the number of model's status.The model's parameters are hard to converge due to the long observed value sequence so that the article illustrates a measure of network intrusion detection based on the data feature's analyses.

Key words: intrusion detection; anomaly detection; data feature; hidden markov model

1 引言

网络入侵检测作为一种重要的网络安全防卫系统,主要是通过对计算机用户的某些行为信息进行分析来检测出对网络的入侵。其存在的意义在于能够分析用户的行为和操作,然后高效的将正常行为和异常行为进行区分,并且对后者采取相应的策略。这样可以让网络管理员更有效地审计和评估当前网络的安全系数,从而提高分析效率。

从目前应用现状来看,应用于网络入侵检测的常规方案可以分为两大类:误用检测(Misuse Detection)和异常检测(Anomaly Detection)。

(1)误用检测:将所有已知的带有入侵倾向的数据特征全部提取出然后存储在一个特征数据库内。每当有数据包被检测时,系统会将该数据包的相关特征与数据库内的特征进行匹配,凡是相符的都会引起检测系统的阻止并报警。

(2)异常检测:先利用训练集对检测系统进行学习或者训练,让其始终适应于正常的行为模式。此后每当有数据造成系统模型脱离正常行为模式的时候,就会自发的检测到该异常并进行阻止和分析。

其中,误用检测虽然无需利用大量的训练集来训练系统模型,但是该方法十分依赖于对特征数据库的更新,并且只能对已知的攻击做出判断,无法应对新型或是变种的攻击,所以误用检测的“漏检率”是相对高的。同样的,异常检测是通过对正常的行为进行建模,然后将所有使得正常轮廓发生偏离的行为都视为异常。这虽然在一定程度上弥补了误用检测的缺点,但若是训练好的模型参数不够精确的话,往往就会将正常的网络行为判断成攻击行为,导致“过检率”偏高。

2 系统设计

现如今,HMM作为一种描述离散时间内观测数据非常强大的统计学模型,在较多的研究领域都得到了很好的运用。本文研究的基于HMM的网络入侵检测模型旨在对带有正常标签和异常标签的网络数据进行区分并采取相应策略。总共分为训练和检测两大模块[1]。大体流程如图1和图2所示。

设计思路是利用对HMM分类器的训练让其一直处于正常模式的工作。在训练好系统后,往后的数据包但凡有令系统脱离正常轮廓的趋势(将对网络数据的特征分析出的概率值与阈值进行比较),则将其标上异常标签,留给管理员做进一步分析。若分析结果为误判,则将其数据特征交给训练模块让其完善模型参数的估计,以避免将来的类似误判。系统的实现依赖于如何解决好HMM的学习问题和估值问题。前者在于对系统训练的参数进行调整,后者在于求出数据集对于正常状态的偏离度,一旦偏离过大则认为该数据存在异常。

2.1 训练模块

2.1.1 HMM参数表达

HMM是一系列可相互转移的有限状态的集合,这些状态的转移是不可见的,间接地通过观察序列来描述,它是一个双重随机过程。HMM可以定义为={ N,M,A,B,π},参数的具体表达为几种情况。

(1)模型的隐含状态数为 N:这些状态满足了马尔可夫性质,是马尔可夫模型中实际所隐含的状态。这些状态无法通过直接观测而得到,用S={ S1 ,S2 ,... ,SN }表示。

(2)模型的观察值个数为 M:在模型中与隐含状态相关联,可通过直接观测而得到,用V={ V1 ,V2 ,... ,VM }表示。(可见符号的数目不一定和隐含状态的数目一致)。

(3)状态转移概率矩阵 AN*N={ aij }:描述了HMM模型中各个状态之间的转移概率。其中aij=P(qt+1=Sj | qt=Si)= P(qt+1=Sj ,qt=Si)/ P(qt=Si);aij≥0, aij=1(j的范圍是1到N)。表示在t时刻状态为Si的条件下,在t+1时刻状态是Sj的概率。

(4)状态输出概率矩阵 BN*M={ Bj(k) }:Bj(k) = P(Vk at t | qt=Sj),表示模型在t時刻、隐含状态是Sj的条件下,观察值为Vk的概率。

(5)状态初始概率矩阵π:表示隐含状态在初始时刻t=1的概率矩阵。例如t=1时:P(q1=S1)=P1 ,P(q1=S2)=P2 ,P(q1=S3)=P3 ,... ,P(q1=SN)=PN,则初始状态概率矩阵π=[ P1 ,P2 ,P3 ,... ,PN ]。

(6)观测序列O={ O1 ,O2 ,... ,OT },表示观测到的观测值序列,T为序列长度,其中Oi属于集合V。

2.1.2 系统训练

曾在此领域研究过的其他学者通过对被攻击者发送的响应包进行分析,得出了一个著名结论:大多数攻击使用TCP包(94%),然后是UDP包(2%)和ICMP包。因此这里只考虑对TCP包建立HMM模型。

现设定所用模型的S空间只包含两种状态:S0=0表示正常,S1=1表示异常,所以N=2。

根据对TCP包的6个标志位(URG、ACK、PSH、RST、SYN、FIN)进行下述方式的编码[2]。通过将其二进制数转换成十进制数,就可以得到一系列的离散值序列。我们将这些离散值视为HMM的观测值,则有M=26=64。

编码方式:Oi=32*URG+16*ACK+8*PSH+4*RST+2*SYN+1*FIN

状态转移概率矩阵AN*N=[ a00=1,a01=0,a10=1,a11=0],表示在正常的行为中,无论当前时刻是正常状态还是异常状态,在下一时刻都将以概率1转为正常状态。

关于状态输出概率矩阵BN*M={ Bj(k) },考虑到TCP协议的工作方式我们可以知道,通过上述编码方式得到的64种观测值中存在着大量的非法标志组合(即在正常网络行为中通常不会出现,但一旦出现该标志组合,就可以视其为异常行为或攻击行为)。非法标志位组合的特点可以参考八点原则:(1)所有标志位都为0;(2)SYN和FIN同时被置1;(3)SYN和RST同时被置1;(4)FIN和RST同时被置1;(5)FIN位被置1,但ACK位没有被置1;(6)PSH位被置1,但ACK位没有被置1;(7)URG位被置1,但ACK位没有被置1;(8)URG不能和PSH标志位同时使用。

将那些无效观测值过滤后,最终能得到正常的观测值数只剩下{2,4,16,17,18,20,24,25,26}一共9个。假设:在正常情况下这9个正常观测值的输出概率Bj(2),Bj(4),Bj(16),Bj(17),Bj(18),Bj(20),Bj(24),Bj(25),Bj(26)服从均匀分布,其它55个非法值的概率为无穷小;异常状态则反过来,55个非法值概率服从均匀分布,而Bj(2),Bj(4),Bj(16),Bj(17),Bj(18),Bj(20),Bj(24),Bj(25),Bj(26)这9个概率为无穷小。

初始状态概率矩阵为π=[1,0],表示在初始时刻数据包是正常数据包的概率为1。

针对系统的训练问题,可以采用Baum-Welch算法[3]来对参数组进行重估计从而得到λ'。再将λ'代替,调用算法不停的调整最新参数,直到'收敛为止,其收敛条件为P(O |λ') < P(O |λ)。需要注意的是,在训练过程中采取的数据包一定要是正常的不含攻击行为的数据包,因为只有这样才能保证我们所得的观测序列是不含攻击的观测序列。

2.2 检测模块

待参数的训练值趋于稳定后,可以利用测试集来进行检测。通过对数据的标志位进行量化和编码,能够得到一组观测序列O={ O1 ,O2 ,... ,OT }。此时运用前向算法[4]来计算概率P(O |λ'),该概率表示在已知最新参数集'的条件下,出现观测序列O的条件概率值。若该概率值很小,则说明观测序列脱离正常轮廓的可能性很大,即所对应的网络数据的特征带有的攻击倾向性就很大。

那么问题来了,到底这个概率值要多小才判断成是异常数据包呢?这其中涉及到一个很重要的点——阈值的确定[5]。因为其直接影响了系统检测的准确率。阈值的确定过程需要结合训练模块训练的多次结果。可以用以下公式来进行选取:Δ=min{ P(L |λ') }。其中L表示观测序列O中长度为的子序列,将每一次计算的概率保存下来,然后将子序列后移一位并继续计算概率值。直到整个观测序列中最后一个子序列被训练完。然后选取这些概率中的最小值为整个检测系统的阈值。最终比较阈值和概率P(O |λ')的大小,如果P(O |λ')≥Δ。则认为该序列对应的数据包是正常数据包,否则将该数据包标记为异常,等待人工分析,看是否系统出现过度检测。

3 结束语

本文所设计的方案虽然基于的是异常检测,但却能有效的解决“过检率”太高的问题。检测模块对使系统脱离正常工作模式的异常数据包,会在阻止后记录在网络日志中以备系统管理员分析。若是入侵检测系统真的产生了“过度检测”行为,那么管理员会将该数据包进行特征分析,并且放入训练模块做进一步的参数重估计,以免往后类似的正常数据包再次被阻挡。

参考文献

[1] 赵玉明.基于隐马尔可夫模型的网络入侵检测系统研究 [D].2005,48-49.

[2] Estevez Tapiador J M,Garcia Teodoro P,Diaz Verdejo J E.Stochastic protocol modeling for anomaly based network intrusion detection [C] Proc of IEEE IWIA03.Piscataway,NJ:IEEE,2003:3-12.

[3] Rabiner L.A tutorial on hidden Markov models and selected applications in speech recognition [C] Proc of IEEE.San Francisco:Morgan Kaufmann,1990,267-296.

[4] Dempster A P,Laird N M,Robin D B.Maximum likelihood from incomplete data via the EM algorithm [J].Journal of the Royal Statistical Society,1977,39(1):1-38.

[5] 韩景灵.基于协议的隐马尔可夫网络入侵检测系统研究[D].2007,21-22.

[6] 赵静,黄厚宽,田盛丰.基于隐Markov模型的协议异常检测[J].计算机研究与发展,2010,47(4):621-627.

[7] 任幸东,王剑.基于隐马尔可夫模型的滑窗宽度可变异常检测[J].网络空间安全,2015,07,33-37.

[8] 孙永强,徐昕,黄遵国.基于HMM的分布式拒绝服务攻击检测方法[J].微电子学与计算机,2006, 23(10):176-177.

[9] 李冠广,王占杰.贝叶斯分类器在入侵检测中的应用 [J].网络空间安全.2010,09,63-66.

作者简介:

潘秋羽(1994-),男,汉族,四川成都人,西安工程大学计算机科学学院,硕士研究生;主要研究方向和关注领域:智能信息处理。

猜你喜欢
入侵检测
多Agent的创新网络入侵检测方法仿真研究
基于入侵检测的数据流挖掘和识别技术应用
艺术类院校高效存储系统的设计
基于关联规则的计算机入侵检测方法
无线传感器网络发展历史及安全需求及技术挑战
无线传感器网络入侵检测系统综述
人工神经网络的改进及其在入侵检测中的应用
基于Φ—OTDR的分布式入侵检测系统的应用综述
一种基于数据融合的新的入侵检测框架