【转】WAF(Web Application Firewall)中的多模式匹配算法论文
WAF的构造中必然会涉及到规则库的高速匹配问题,就规则库检测这一传统WAF特性而言,高速模式匹配的性能就是需要探讨的地方了。
Web Server Guard 2009在设计误用检测模块(也就是特征码检测模块,与主动防御模块对应)的时候的过程中,参考了非常多的成熟模式匹配算法。
一般来说,早期的都是单模式匹配算法,比如KMP算法、BM算法、RK算法(或KR算法),这类算法已经不能满足WAF的实现需求。
因为我们需要一次就能从检测目标中匹配到多个模式,这样就需要到了目前的多模式匹配算法以及相关的改进算法,比如AC算法、AC—BM算法、WM算法等等。
Web Server Guard 2009的特征码检测模块是一种自适应模式匹配算法,也就是可以根据现场情况自动更改特征码模式匹配算法,从而更好的平衡性能以及内存占用。
下表是以往整理出来的一些算法参考论文,对于研发WAF的人来说或许有一点借鉴意义。
论文题目(部分) | 摘要 |
《WWW服务器防护系统检测引擎的研究与实现》 | 引擎实现。 |
《模式匹配算法在入侵检测中的应用》 | 仅依靠传统的被动防御技术已经不能满足如今的网络安全需要,基于模式匹配的入侵检测系统正成为研究和应用的热点,模式匹配效率的高低决定了这类入侵检测系统的性能。全面综述了应用于入侵检测系统的经典的模式匹配算法,包括单模式匹配算法中的KMP算法、BM算法、RK算法和多模式匹配算法中的AC算法、AC—BM算法,并对各种算法的执行效率进行了总结。通过分析算法的思想,提出了未来此类算法的研究方向。 |
《Web 入侵检测系统高效多模式匹配算法》 | 针对Web 入侵检测系统中存在的攻击模式误匹配与效率问题, 提出了一种高效的多模式匹配算法MPMA。MPMA 通过构建比较树, 并在比较树的每个节点中记录下次比较的字符位置以提高比较效率, 并利用( 模式, 偏移) 信息对来搜索可能符合的匹配模式。详细的实验以及与现有算法的比较表明, 提出的MPMA 不仅适合于Web 入侵检测系统, 同时在时间、空间和匹配率性能上具有更高的效率。 |
《Wu_Manber多模式匹配算法的研究与改进》 | 模式匹配算法的性能对入侵检测系统影响很大。该文介绍模式匹配算法的原理,研究多模式匹配算法Wu_Manber及改进方法,提出QMWM方法。该方法利用前缀信息,实现了移动距离的最优,且不增加空间复杂度。实验表明,QMWM在提高效率的同时能够避免空间的额外占用。 |
《多模式匹配算法的优化研究》 | 模式匹配技术有着广泛的应用且模式匹配算法已经被研究了很多年,同时对稀疏存储及其结构的操作也有大量的文献资料。本文首先描述了Aho—Corasick多模式匹配算法,该算法是基于自动机及状态向量的,然后提出了使用banded-row稀疏存储对Aho—Corasick算法中的状态转换表进行存储优化的观点,给出了优化算法。最后给出了和原Aho—Corasick算法 |
《多模式匹配算法及硬件实现》 | 介绍了多模式匹配的算法和硬件实现方法.首先介绍了两种常用的多模式匹配算法——Aho-Corasick基于自动机的算法和Wu-Manber基于hash的后缀匹配加移位跳跃的算法以及相关的改进算法.并通过实验对各种多模式匹配算法的时空复杂度进行了分析比较.通过几个硬件实现的实例介绍了多模式匹配的硬件实现方法及策略.最后对多模式匹配的发展趋势进行了展望. |
《改进的Sunday模式匹配算法》 | 在基于模式匹配的检测方法中,匹配效率是检测技术的瓶颈,间接影响入侵检测系统的实时性能。该文对4种模式匹配算法进行分析后,选择最优的Sunday算法进行改进。该算法进行匹配前先找到模式串中的特征字符(出现概率最小的字符),进行特征字符与尾字符双重匹配,失败则移动尽可能远的距离。实验结果证明匹配效率比Sunday算法有一定的提高。 |
《基于网络处理器的高效中英文多模式匹配算法》 | 由于中英文字符在编码方面的差异,传统面向英文字符环境的多模式匹配算法无法直接应用于中英文字符混合环境。提出了一种适用于网络处理器和中英文混合环境的高效多模式匹配算法。该算法采用从左向右的正向匹配,以字节为最小匹配单位,以字符为最小移位单位,在Trie树结构基础上,利用块字符匹配降低逐字匹配的概率,结合Quick Search(QS)算法进行跳跃加速。实验表明,算法能够在中英文混合环境下避免字节错位和误匹配,匹配速度优于已有算法,且不存在空间膨胀问题,能够满足高速网络信息审计的要求。 |
《入侵检测多模式匹配算法》 | 基于模式匹配的入侵检测是目前最厦要的一种入侵检测方法,『fii字符申匹配效率是该方法的核心,直接影响检测效率。该文在充分分析BM算{击、AC算法及AC_BM算法的基础上提出了一种新的更好搜索步长的多模式匹配算法NMSA,并具体分析了该算法的效率n通过实验数据对比,再次证明NMSA算法具有更好的搜索步长、更好的效率。 |
《入侵检测系统设计的改进》 | 针对目前入侵检测遇到的一些新问题提出了一些改进方案, 主要包括对整个系统的体系结构设计, 蜜罐与陷阱子系统设计, 入侵检测系统与动态防火墙相协同的框架模型设计, 利用双网卡技术和备份监控代理方式提供对入侵检测系统自身的有效安全防护等。 |
《网络入侵检测系统中的最佳特征组合选择方法》 | 为了提高网络入侵检测系统(IDS)的实时性、可用性以及整体性能,该文给出了基于遗传算法的从n个特征中选择出数量为k(n>k)个的一组最佳特征的方法,这组特征是对分类最有效的,它可使分类评价指标J达到最大。实验证明,该方法是有效的,能提高IDS的总体性能。 |
《一种高效多模式匹配算法及其在NIDS 上的应用》 | 提出了一种基于BM算法思想的、改进了的多模式串匹配算法, 并且讨论了它在一个网络入侵检测系统( NIDS) 中的实际应用情况。从具体实验中可以看到匹配时间上的显著改进。 |
《一种快速的多模式匹配算法》 | 本文将给出一个简单但非常有效率的多模式匹配算法,这个算法基于压缩编码的思想。该算法在自左向右扫描文本的过程中,根据出现在输入模式中的字符将文本中的字符进行编码。这个简单的扫描算法展示了同时处理大量的输入模式的能力。我们的实验表明,在大多数情况下,我们的算法比当前的多模式匹配算法(比如agrep, grep)有更快的执行速度。 |
《入侵检测中的自适应模式匹配技术》 | 模式匹配既是网络入侵检测系统(NIDS)的核心技术,也是NIDS 中消耗资源最多的部分,并正在成为NIDS 的性能瓶颈。现有的模式匹配算法大多采用静态定义的优化策略,没有考虑网络流量和入侵检测规则的特性。该文提出一种自适应的模式匹配算法AMPM,动态统计网络流量和规则组的特性,根据统计结果自动选择最合适的模式匹配算法。测试表明,AMPM 使现有NIDS 的性能提高了9.4%~29.1%,且对于大规则集具有更好的适应性。 |
《KMP字符串模式匹配详解》 | KMP字符串模式匹配通俗点说就是一种在一个字符串中定位另一个串的高效算法。简单匹配算法的时间复杂度为O(m*n);KMP匹配算法。可以证明它的时间复杂度为O(m+n).。 |
《C#算法-Boyer-Moore算法实现》 | 使用C#实现的BM算法,VS2008测试通过 |
《字符串匹配算法》 | 大致翻译自EXACT STRING MATCHING ALGORITHMS,去掉一些废话,增加一些解释。 |
《直面经典:重温KMP(不着一图,尽得精髓)》 | KMP算法,每一个初学者都曾被它搞迷糊,在数据结构教材上,这个算法出现的如此之早,你怎能指望一个还没搞懂二叉树遍历的人来理解KMP呢,记得越快,忘得越快。直到多年以后回过头来看看,这才发现KMP算法如神谕般震撼。 |
上面的文档如有需求,可以发送邮件到 Webmaster@WebServerGuard.Net ,主题注明需要的论文题目。