论文部分内容阅读
随着计算机网络技术的快速发展,特别是Internet的广泛应用,网络信息系统的安全问题日益严重,网络入侵检测系统(Network Intrusion Detection System,NIDS)在计算机网络安全领域的作用越来越重要。 网络带宽的增长和网络攻击数量、复杂度的增加使得NIDS面临严峻的性能挑战,单进程、单线程NIDS无法满足处理高速网络的性能需求。如何利用并行结构,在多核、众核处理器上提高NIDS的处理能力成为研究热点。 本文重点研究如何利用并行方法提升NIDS性能。论文研究了NIDS的并行模型,把NIDS中数据包处理流程进行分割并映射到可用的处理器资源,以最大程度的利用计算资源对NIDS进行加速;研究并行NIDS线程间的负载均衡问题,实现并行数据包处理流程间的负载均衡;研究高效的规则指纹库提取,打破NIDS在规则匹配模块的性能瓶颈。论文主要的工作与创新点如下: 针对并行模型问题,本文首先对NIDS的已有并行模型:RTC(Run-To-Complete)模型和SPL(Software-Pipeline)模型进行了实现和性能分析,实验结果表明大量的并行线程可以提高NIDS性能,但同时带来严重的资源竞争和冲突,系统并行化开销大大增加。为解决已有方法存在的问题,提出一种混合并行模型:多个数据包处理模块以RTC方式并行,以获得系统性能的可扩展性;数据包处理模块内以SPL方式并行,最大程度的利用处理器计算资源。在TileraGX36众核处理器平台上的实验结果表明,并行系统实现了性能的线性增长,最高可以处理7.1Gbps的100字节小包流量。 针对负载均衡问题,由于传统的基于流量的负载均衡方法受限于网络数据包分布的局部性,容易单核瞬时流量过载而引起数据包丢失。本文提出一种拆分NIDS规则库的负载均衡方法:把规则条目保存在规则树结构中,利用剪枝方法把具有相同协议特征的条目均分到规则子集中,NIDS中并行的规则匹配模块分别加载不同的规则子集,实现负载均衡。由于规则的划分和网络流量无关,当流量在流空间上分布不均衡时,仍然可以达到良好的均衡效果;由于规则的划分是离线完成的,系统额外开销很小。实验结果表明,在网络流量存在严重不均衡性情况下,基于规则拆分的负载均衡方法仍然取得很好效果,与基于流的方法相比,采用拆分规则方法的并行NIDS性能提升了25%-42%。 规则匹配模块是NIDS的核心模块,也是其性能瓶颈。规则匹配模块的数据包处理流程包括预过滤和规则验证两个阶段,从NIDS规则库中提取的特征指纹库决定了规则匹配模块的性能。已有的特征指纹提取方法只考虑了NIDS规则库的特性,而忽视了NIDS处理的网络数据包的内容特性。本文提出一种新的指纹提取方法:通过对少量的网络流量进行处理和分析,提取出高效的规则特征指纹,在降低预过滤阶段的多模式匹配引擎内存占用的同时,最大程度的减少了规则验证阶段的验证开销。实验结果表明,采用这种新的特征指纹提取方法后,NIDS的数据包处理能力平均提升69%。 最后,应用上述研究成果,在TileraGX36众核处理器上实现了一个基于混合并行模型、采用规则拆分负载均衡方法、具有10Gbps处理能力的高速网络入侵检测系统。