论文部分内容阅读
随着计算机网络的迅速普及以及人们对网络越来越强的的依赖性,网络安全问题日益突出并引起广泛关注。入侵检测是网络安全系统的一个重要组成部分,其目的是通过监视和分析网络流量来发现可疑的攻击行为,进而采取有效的防护措施。目前入侵检测最常采用的方法是先根据各种入侵行为的特点建立一个入侵行为特征(数据流中出现的特征字符串)库,并为每一种入侵行为关联一个安全措施,运行时通过在收到的数据包中检查是否存在这些特征字符串来判断是否存在入侵行为。在数据包中查找入侵特征串使用的是模式串匹配技术,研究表明模式串匹配是入侵检测系统中耗时最多的操作。随着网络速度及网络流量的激增,模式串匹配已成为决定入侵检测系统性能的主要因素。
模式串匹配是一个已经研究了很久的的问题,其应用十分广泛,也已经有很多算法被提出。根据应用的特点选择合适的模式串匹配算法、进行适应性改造并在特定平台上高效实现是模式串匹配应用研究的一个重要方面。随着网络速度及流量的增长,入侵检测面临的压力越来越大。目前基于通用处理器实现的模式串匹配只能达到100Mbps左右的速度,距离10Gbps的网络速度还很远,如何提高模式串匹配的速度是目前亟待解决的难题。网络处理器的出现为以较低的代价实现高速模式串匹配带来了新的解决方案,但目前基于网络处理器的模式串匹配研究开展得还不多。
本文研究适合于入侵检测的模式串匹配算法以及算法在网络处理器上的高效实现。在对目前使用最广泛的Snort入侵特征库的统计特性进行分析的基础上,本文选择FNP算法作为主要的模式串匹配算法并做了适应性改变,在具有相同前缀的模式串数量超过一定阈值时将FNP算法和AC算法相结合以改善FNP算法在最坏情况下的性能。本文选择IntelIXP2800网络处理器作为算法实现的平台,仔细研究了IXP2800的软硬件体系结构,充分利用其多核多线程的特点对算法进行了并行化。在IntelDevWorkbench仿真平台上对FNP-AC算法的测试表明,算法具有很好的扩放性,在10k规模的模式串集合上可达到6Gbps的吞吐量,且具有近乎线性的加速比。