基于重叠子字符串分类器的深度分组检测方法

文档序号:7743664阅读:280来源:国知局
专利名称:基于重叠子字符串分类器的深度分组检测方法
技术领域
深度分组检测(De印Packet Inspection, DPI)的硬件结构主要应用于高性能的网络安全设备,如安全网关,高性能边缘路由器,高性能入侵检测系统等技术领域。
背景技术
传统的网络安全设备,如防火墙(firewall)等,只能实现在网络分组中检测网络层或者传输层中头部(header)的信息,而新一代的网络分组深度检测系统,则可以对网络分组中的净荷(payload)数据部分进行深度检测,从而能以较高准确率发现恶意入侵或攻击,或者检测出运营相关的特殊流量(如P2P流量)。一般来说,深度分组检测系统由一个包含特征串的规则集和一个字符串匹配引擎构成;检测的一般工作过程是将网络中输入的分组中的净荷内容与规则集中的特征串进行按字节的匹配(这种匹配可以由硬件实现,也可以由软件实现),如果发现匹配,则将整个分组上交给嫌疑分组处理模块或系统管理员进行进一步的处理。因此,实现高性能的多特征串匹配引擎是构建实用DPI系统的关键。常用的多特征串匹配算法中,Aho-Corasick[1],Commentz-ffalter [2], Wu-Manber [3]是最常见的三种,其中最常用的是Aho-Corasick算法(AC算法);这主要是由于这种算法能够实现与目标串和输入数据流无关的稳定查找速率。Aho-Corasick算法的主要思想是构造给定特征模式集的有限状态自动机(DFA)。给定一个模式集,Aho-Corasick 算法首先将这个集合的特征串转换成一个模式匹配树,并且在树中加入失败变迁从而避免了匹配失败时的回退;最后,此算法还引入了额外的变迁从而消除了失败变迁,使得算法能够以恒定速率处理输入数据流。为了提高AC算法的吞吐率和存储效率,研究者提出了有很多基于硬件的方案 [4] [8]。[4]提出了一种将有限状态自动机(DFA)进行位级分解的方案,从而提高了查找的并行性,提高了吞吐率;[5]提出了一种编码与压缩技术,从而减少了 DFA的存储;这两种方案都需要存储接收每个字节后的256种状态,从而需要大量的存储空间;在[6]和 [8]中,DFA被标示为一组带优先级的变迁规则向量,从而减少了必要变迁的数目,达到了一定的节省存储的目的。以上几种基于DFA的硬件特征串匹配方案分别针对了模式匹配算法的两个最重要要求,一种是针对高性能高吞吐率,即为将每个byte的下一状态的256种变迁全部存储,在实现固定高吞吐率的同时却大大增加了存储量,另一种是针对存储效率, 使用所谓的变迁规则向量来实现较高的存储效率,但是却无法保证固定的高吞吐率。传统的字符串匹配技术大部分都是基于AC算法或DFA的完全精确匹配,而在字符串集合较大时,所需的存储器容量和带宽将巨大增加,这使得目前为止很多DPI算法都无法在实际系统中得以部署。但是对于很多应用场合,完全精确的匹配并不是绝对必要的,放松这一“精确,,的要求,则可以大大减少对存储的需求。本发明就是从这一点出发,设计了一个大大减少存储容量,同时其精确程度近乎等价于传统的DFA方法的硬件匹配方案。

发明内容
本发明的基本思想是,并不严格要求字符串匹配的精确程度,但希望能减少匹配所需的存储。基本的手段是先将输入字符串的信息进行提取,压缩,然后再进行匹配。因此匹配硬件在结构上分为两个部分,一部分是用于输入字符串压缩(摘要信息提取)的结构, 在此我们使用一种叫重叠子字符串分类器(Overlapped Substring Classifier,0SC)的硬件结构来实现这一功能;另一部分,比较类似于传统基于DFA的匹配结构,用于对压缩后的信息串进行匹配,从而确认原字符串中是否有目标字符串。基于重叠子字符串分类器(OSC)的字符串匹配结构图1描述了整个基于OSC的匹配硬件的逻辑结构和匹配过程。首先,目标字符串集合中的每个串的所有长度为4 (这里的4叫跨度stride,是一个参数,记作t)的字串都被加入η个集合中的任意一个。对输入字符串进行压缩时,每隔s个位置,看这之后的长度为 4的字符串是否属于刚才生成的η个集合中的某一个,若属于第i个集合,则压缩后的串加入i,否则则加入X。在图中,η = 2,s = 1,则生成的压缩后的字符串为二进制bit串,这样对输入字符串进行信息压缩提取的结构就叫做OSC,Overlapped Substring Classifier。 这样再对这个bit串进行匹配时,其需要存储的信息则会大幅度减少。在压缩的同时,可以在输入字符串的一些位置进行某些必要性检验,从而进一步滤掉不相关的流量,这种技术称为Stamping。如图2所示,将位置为0或者1的长度为4的所有可能的目标子字符串组成一个集合,然后在每一个位置进行检查,实际上是对上面得到的bit串进行的再一次验证。以上的两个结构都涉及“检查长度为t的字串是否输入η个字符串集合中的某一个”这一操作,而这一操作可以用一种基于叫做Bloom Filter的结构高效地实现,Bloom Filter的具体细节可以参见相关文献。如图3所示,当η = 2时,可以用两个BF来实现一个0SC,另外在stamping模块中,也用BF来实现类似的功能。这样,就可以将5字节的子字符串,编码为Ibit。经过这一番处理后,原本对输入字符串的匹配变换为对压缩后的摘要串进行的匹配,而这一部分的匹配可以用传统的DFA方法来进行,唯一的区别是使用的存储要少很多, 其主要结构可见图4。虽然压缩后的匹配可能出现误报,但是通过调整t,s,n这三个参数, 并加入stamping等验证模块后,其平均精确程度基本接近传统方法。技术特点与优点为了说明本技术的优越性,我们用两个指标来衡量,首先是存储消耗,我们的方案与其他方案比较,可以极大地减少存储开销,节省率85%以上;另一个指标我们定义为模糊集(Ambiguity Set,AS),即报告匹配到某个目标串时,实际上可能匹配到的所有字符串的集合。明显,对于传统的DFA方法,AS的大小永远为1,而经过我们的实验,在合适的参数下,我们提出的方案的AS将在平均来说接近于1。本发明的三个参数,前向跨度t,步长s,和子字符串分组数n,对方法的模糊集大小有着很重要的影响。图5便显示了这种影响。我们看到,对于常用的深度分组检测字符串集合Snort来说,合适的t,s和η能极大地减小AS的平均值。而加入了 stamping的系统,如图6所示,则可以把AS集合大小的平均值优化到接近1.这样,我们用非常小的代价(平均小于10_8的假阳性率,False Positive Rate,即误判的可能性可以忽略)换取了非常客观的存储节省,从而为DPI系统的实用化打下了基石出。


图1.使用OSC进行on-line输入字符串压缩的逻辑结构与示意图。图2.加入了后检验机制“stamping”的字符串压缩逻辑示意图。图3. OSC的实现结构,对于η = 2的OSC来说,需要两个Bloom Filter来构成一个分类器,另外还需要一个额外的Bloom Filter来进行后检验。图4.使用OSC后整体DPI系统的设计。(a)表示的是每节拍处理两字节的体系结构,(b)表示的是没节拍处理8字节的体系结构,需要更多的处理引擎并行处理。图5. (a)展示了后检验的有效性,(b),(c),(d)分别展示了三个参数s,t,η对匹配精确度(以Ambiguity Set大小来衡量)的影响。图6. (a), (b)分别展示了结合各种优化手段后,本发明的匹配精确度可以接近于传统DFA的匹配精确度(即AS大小接近1).参考资料[1]Alfred V. Aho and Margaret J. Corasick, Efficient string matching :an aid to bibliographic search.Communication of the ACM,18(6) :333_340,1975·[2]B. Commentz-Walter, A string matching algorithm fast on the average. Proc. of the 6thColloquium on Automata,Languages and Programming, pp.118—132, July 1979.[3]Sun Wu and Udi Manber,A fast algorithm for multi-pattern searching. Technical ReportTR-94—17,Department of Computer Science,University of Arizona, 1994.[4]Lin Tan and Timothy Sherwood, A High Throughput String Matching Architecture for IntrusionDetection and Prevension. Proceedings of the 32nd International Symposium on ComputerArchitecture(ISCA* 05).[5] Benji am in C. Brodie, Ron K. Cytron and David E. Taylor, A Scalable Architecture forHigh—Throughput Regular-Expression Pattern Matching.Proceedings of the 33rd InternationalSymposium on Computer Architecture(ISCA, 06).[6]Jan. van. Lunteren,High Performance Pattern Matching for Intrusion Detection.IEEE Infocom2006.[7]Jan. van. Lunteren,Searching Very Large Routing Tables in Wide Embedded Memory.Proc. IEEE Globecom,vol.3.pp. 1615—1619,November 2001.[8]Sailesh kumar, Sarang Dharmapurikar, Fang Yu, etc, Algorithms to Accelerate Multiple RegularExpressions Matching for Deep Packet Inspection. SIGC0MM,06,September 11-15,2006,Pisa,Italy.[9] Snort,http://www. snort, org.
权利要求
1.使用基于重叠子字符串分类器的字符串匹配算法。包括重叠子字符串集合的生成算法,基于分类器生成压缩后摘要串的匹配算法。
2.重叠子字符串分类器的硬件结构。包括使用BloomFilter构建子字符串集合分类器的结构,以及使用后检验技术“Stamping”过滤无关流量的技术与实现结构。
全文摘要
本发明公开一种基于重叠子字符串分类器的深度分组检测方法。技术领域属于网络安全中用于高性能入侵检测系统,安全网关等网络设备的硬件模块。技术简述深度分组检测的主要任务是在输入的网络流量中,从分组净荷中检测符合条件的特征串,为下一步的分类处理提供依据。为了提高检测的速度,一般用基于DFA(有限状态自动机)的字符串检测算法来实现特征串的匹配,但是由于特征串的数目增大时,DFA的存储开销会非常大,因而影响了算法的实用性。为了解决这一问题,本发明使用了一种叫做“重叠子字符串分类器”的结构,对输入字符串进行预处理,使得输入串的信息被充分压缩和提取,使得进一步的匹配(基于传统DFA方案)节省了大量的存储开销。虽然这样做会带来误判的可能(即假阳性的可能),但是通过认真地选取参数,假阳性概率可以降到忽略不计。
文档编号H04L12/26GK102195827SQ20101012423
公开日2011年9月21日 申请日期2010年3月15日 优先权日2010年3月15日
发明者张志凯, 赵有健 申请人:张志凯
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1