网络入侵检测系统中模式匹配算法的研究与改进母
王德正
合肥工业人学计算机与信息学院,安徽合肥230009
摘要:入侵检测是网络安全的最后一道防线,模式匹配算法是基于特征匹配的入侵检测系统的核心算法,模式匹配的效率决定了该类入侵检测系统的性能。本文对模式匹配算法进行综述,对各种单模式匹配算法和多模式匹配算法进行了性能分析,提出了改进模式匹配算法一N刚sA算法,实验表明该算法具有较高的效率。
关键词:入侵检测系统模式匹配算法多模式匹配算法
』,I引言
随着Internet的飞速发展及网络规模的日益扩人,网络应,}{j趋向全球化,黑客入侵攻击事件也不断发生。传统的防火墙技术已经难以单独保障网络的安全,网络入侵检测系统(NetworkIntrusionDetectionSystem,很重要的意义。
2模式匹配的定义
所谓模式匹配是指:已知长度为n的文本字符串:T=TIT2T3…Tn和一长度为m(m<n)的模式字符串:P=时,可以直接采用强行搜索算法,其实质就是将模式P和文本T从左至右逐个搜索,若在某一位匹配失败,则将模式P向右移动一位,仍从模式P的第一位开始搜索。这种算法虽然可以保证正确性,但显然效率不高,
。
,
.}
‘
:3单模式匹配算法
顾名思义,该算法每次只处理一个模式。常见的单模式匹配算法有KMP(Knuth.Morris.Pratt)算法、KMP算法。
KMP算法是由D.E.Knuth与V.R.Pratt和J.H.Morris同时发现的。该算法的时间复杂度为0(n+m)。该
‘,NIDS)作为一种积极、主动的安全防护技术,已成为网络安全领域中研究的热点。在很多的商业入侵检测产品中,都采用了模式匹配算法,其实质就是字符串匹配。冈此,对字符串匹配算法进行深入地研究具有PIP2P3…Pm,求T中是否存在长度为m的子串:Ti.附ITi-m+2Ti_m+3...Ti使得Ti-m+j=Pj,j=1,2,3…,m。i9.m。当n不很大在最坏情况下需执行(n.m+1)木m次字符匹配检查,其时间复杂度为O(m,-cn)。BM(Boyer-Moore)算法等。其中,较经典的BM算法由于使用了启发式搜索,能够在搜索时跳过大部分文本,从而使得执行效率得到很大地提高,冈而在IDS中运用最为广泛。3.1算法的改进土要有:每当一趟匹配过程中出现字符不匹配时,不需要同溯指针,而是利用己经得到的部分匹配结果,将模式尽可能向右移动后,继续进行比较。
’作者简介t王德正(1975.).男,汉族,安徽泗县人。讲师,硕士研究生,研究方向为计算机网络安全。
KMP算法首先对模式串进行预处理,设置一个与模式串长度(m)一致的整数数组n“tfl。数组next【i】中保存着一个整数k(k<i),使得模式p开头的k字符与P【i】前的k个字符相等。即字符串‘‘p【o】,p【l】..p【k-1】”与字符串“P[i-k],P[i-k一臻,.P[i一玎’相遥配。其next蝤数的定义为:’‘
<
next[il=q№o当啡其㈦瞅黼时k况鼠POPk=Pk^P
具体过程是先设置next[0]= l,然后假定next[i-1】-k则:
(1)若P[kl=Pii-l】则next[i]=k+l,跳出;
(2)若P[kl!=P[i-1]则k=next[k]若k=一l则next[i]--0,跳出;否则返回笫一步继续处理。
一若模式串与主E文之闻出现多处部分匹配,该算法能有效摇嵩处理速度;若部分匹配出现缀少。箕速度提高并不明显:’。
3.2BM算法
BM算法‘’’是一种单模式精确匹配算法,爆著名的开放源代码的入侵检测系统snort就采用了BM算法。BM算法剥用启发式荣略,跳过不必要的比较.减少了摸式串与文本输入串的比较次数,提亮了匹配效率。
对于单一模式串的匹配,BM算法的效率是很高。然而,随着入侵方式、方法的不断演变,入侵检测的匹配规剧也:急剧增穰。仅仅经翔BM算法进{亍字符串匹配,在匿配的遵度土是远远不够姥。在遴行扮议分轿之后.根据规则之间存在的荧联性,采用在多模式匹配中建立规则树技术,可大幅减少匹配次数。提高躁配速度。’7
4多模式匹配算法
在对多模式算法进行研究前,可对多模式匹再己闯题作如F描述:
设模式集p={pl,P2,P3…Pkl,Pi为模式集中的一个模式,模式中字簿取自确定的字母表∑。犬文本T=tl,t2。.-tn,ti为一个文本块,也由∑中的字符组成。问题可归纳为:找出大文本T中模式P的所有匹配。常见的多模式匹配箨法眷AC算法、AC.BM算法等。
4.1AC算法
Aho-Comsick(简称AC)口1自动机匹配算法基于一种精巧的模式树(Trio。模式树是摆具备如下性质的一棵树K:。