模块化的网络入侵检测系统的制作方法

文档序号:7719845阅读:162来源:国知局
专利名称:模块化的网络入侵检测系统的制作方法
技术领域
本发明涉及网络过滤和监控技术领域,尤其涉及一种模块化的网络入侵检测系统。
背景技术
网络入侵检测系统(Network Intrusion Detection System,NIDS)是一禾中监控网络或系统活动中恶意或有害的行为并进行报警的网络安全系统。它通过旁路或在线的方式截获网络中的数据包(以下简称网包),并对其内容进行分析,对含有攻击的网包予以报警或截断,以实现入侵检测/防御的功能。由于NIDS的功能复杂,一般使用软件实现,运行于防火墙或安全网关系统内部。 近年来,业界对网络设备的吞吐量要求越来越高,NIDS作为安全网关的性能瓶颈,需要大量的计算力以实现高吞吐量的处理。在通用处理器架构下要满足NIDS运算需求的提升,仅靠单一CPU是有限的,近年来发展的多核处理器解决了单核处理器运算力增长不足的难题。但多核的应用有一个条件,就是程序的一个线程仅能运行在一个处理器内核上,要充分利用多个内核的性能优势,必须使用多个线程并行处理。因此,NIDS并行处理架构是迎合当今处理器多核化的重要技术。 如图1所示,现有技术中常用的NIDS包括以下几部分包获取模块、编码解析模块,入侵检测模块和信息反馈模块。其中,入侵检测模块是NIDS的核心功能部分,该模块通过预处理、规则匹配等几个步骤来检测网包中是否含有攻击。然而,入侵检测模块也是最耗时的模块, 一般并行化NIDS都会选择检测模块进行并行化处理,以达到提高多核CPU利用率的目的。 现有技术中通用处理器架构下的并行NIDS并不多,比较典型的有Intel公司的Supra-Snort和美国普渡大学的Multi-Snort。然而,前者没有实现多线程间的内存共享,使得多线程运行时内存消耗过大,限制了该系统的应用范围;后者没有实现模块化构架,因此难以对该系统添加新的应用。

发明内容
针对现有技术中存在的缺陷和不足,本发明的目的是提供一种具有并行处理架构的模块化的网络入侵检测系统,能够使得内存消耗大大下降,并方便地添加新的应用。
为达到上述目的,本发明提出了一种模块化的网络入侵检测系统,包括数据源模块,其用于包获取和编码解析,所述系统还包括 分流模块,用于完成来自所述编码解析模块的网包的调度,并通过缓冲队列将网包分发到检测模块中的各个检测子模块;禾口 检测模块,用于检测网包中是否含有攻击,其使用多个线程,包括一种或多种检测子模块,同种类的检测子模块共享只读数据。其中,所述数据源模块和所述分流模块使用一个线程。
其中,所述分流模块还可以包括一五元组信息分发子模块,用于根据网包的五元
组信息完成将网包分发至所述检测模块,其中,所述五元组信息包括源/目的网络层地址、源/目的传输层端口和传输层协议标志。 其中,所述分流模块还可以包括一哈希编码子模块,用于将所述五元组信息进行
哈希编码以决定将网包分发至所述检测模块中的哪个检测子模块。 其中,所述检测模块至少可以包括入侵检测模块、防病毒模块及网址过滤模块中的一种或多种检测子模块。 其中,该系统还可以包括信息反馈、网包阻断模块。 其中,所述系统还包括一检测子模块加载模块,用于通过读取配置文件动态加载所述检测子模块。 其中,所述同种类的检测子模块可以被设置为同一优先级,所述分流模块自动将流量均匀分发给同等优先级的各个检测子模块。 其中,根据所述检测模块中所包括的检测子模块的种类,相应地,所述只读数据至少可以包括入侵检测规则集、病毒库及网址库中的一种或多种。 上述技术方案具有如下优点本发明通过分流模块实现了系统的并行处理,从而将数据采集与检测分离开,形成了可独立设计的数据采集及分发/检测模块式架构,便于不同种类的数据源与检测模块的分别设计,及使用硬件实现某一特定模块的功能,且可以并方便地添加新的应用;检测模块使用多线程设计,能够充分利用多核处理器的处理能力,性能可随处理器核数线性增长,且可以动态加载多个检测模块,便于针对不同硬件情况进行配置;同时实现了同种模块间的内存共享,使得内存消耗大大下降,增强了系统的通用性。


图1是现有技术的NIDS的原理框图; 图2是本发明实施例提出的网络入侵检测系统的原理框 图3是本发明实施例提出的网络入侵检测系统的使用实例框图。
具体实施例方式
下面结合附图和实施例,对本发明的具体实施方式
作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
如图2所示,依据本发明实施例的系统包括 数据源模块,其用于包获取和编码解析(分别相当于现有的NIDS系统中的包获取模块和编码解析模块),具体来说,整合了数据采集、数据解析、流管理、IP碎片重组、TCP流重组等功能; 分流模块,用于完成来自所述编码解析模块的网包的调度,管理网包缓冲队列的调度,并通过网包缓冲队列(使用缓冲队列使得模块间无需相互等待)将网包分发到检测模块中的各个检测子模块; 检测模块,用于检测网包中是否含有攻击,其采用多线程设计,包括一种或多种检测子模块,同种类的检测子模块共享只读数据。所述数据源模块和所述分流模块使用一个线程(数据采集及分发线程);禾口 信息反馈、网包阻断模块(相当于现有技术的NIDS系统中的信息反馈模块)。 其中,分流模块可以根据网包的五元组信息完成将网包分发至所述检测模块,其
中,所述五元组信息包括源/目的网络层地址(各32bit)、源/目的传输层端口 (各16bit)
和传输层协议标志(8bit)。所述分流模块可以将所述五元组信息进行哈希编码以决定将网
包分发至所述检测模块中的哪个检测子模块。所述检测模块至少可以包括入侵检测模块、
防病毒模块及网址过滤模块中的一种或多种检测子模块。例如,如图3所示,可以包括入侵
检测模块和防病毒模块两种。在图2 3中,每个虚线框代表一个线程。 本实施例中,所述检测子模块可以由所述系统通过读取配置文件动态加载。同种
类的检测子模块可以被设置为同一优先级,分流模块会自动在各个优先级上将流量均匀分
发给同等优先级的各个检测子模块,同一网包可以由多级不同的检测子模块依次处理,实
现灵活配置功能。 本实施例中,根据所述检测模块中所包括的检测子模块的种类,相应地,所述只读
数据至少可以包括入侵检测规则集、病毒库及网址库中的一种或多种。 本实施例中,所述同种类的检测子模块可以通过TLS (ThreadLocal Storage,线程
本地存储)技术共享只读数据。各检测子模块的线程之间原本是毫无关联的,但是检测子
模块间的数据存在冗余,一些本可以共享的内存会被重复申请。这类内存主要是运行时只
读的那些,例如,编译后的规则集有2. 3GB之多,如果每个检测子模块的线程都拥有一份,
每个线程都需要消耗2.3G内存,这样多线程化之后很容易造成内存不足。为此,本发明实
施例实现了检测子模块之间的内存共享,例如共享了入侵检测规则集和病毒库,使得内存
消耗大大下降,增强了系统的通用性。 以上所述仅是本发明的实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应视为本发明的保护范围。
权利要求
一种模块化的网络入侵检测系统,包括数据源模块,其用于包获取和编码解析,其特征在于,所述系统还包括分流模块,用于完成来自所述编码解析模块的网包的调度,并通过缓冲队列将网包分发到检测模块中的各个检测子模块;检测模块,用于检测网包中是否含有攻击,其包括一种或多种检测子模块;其中,所述数据源模块和所述分流模块使用一个线程。
2. 根据权利要求1所述的模块化的网络入侵检测系统,其特征在于,所述分流模块还包括一五元组信息分发子模块,用于根据网包的五元组信息完成将网包分发至所述检测模块,其中,所述五元组信息包括源/目的网络层地址、源/目的传输层端口和传输层协议标志o
3. 根据权利要求2所述的模块化的网络入侵检测系统,其特征在于,所述分流模块还包括一哈希编码子模块,用于将所述五元组信息进行哈希编码以决定将网包分发至所述检测模块中的哪个检测子模块。
4. 根据权利要求1所述的模块化的网络入侵检测系统,其特征在于,所述检测模块至少包括入侵检测模块、防病毒模块及网址过滤模块中的一种或多种检测子模块。
5. 根据权利要求1 4之任一所述的模块化的网络入侵检测系统,其特征在于,该系统还包括信息反馈、网包阻断模块。
6. 根据权利要求1 4之任一所述的模块化的网络入侵检测系统,其特征在于,还包括一检测子模块加载模块,用于通过读取配置文件动态加载所述检测子模块。
7. 根据权利要求1 4之任一所述的模块化的网络入侵检测系统,其特征在于,所述同种类的检测子模块被设置为同一优先级,所述分流模块自动将流量均匀分发给同等优先级的各个检测子模块。
8. 根据权利要求4所述的模块化的网络入侵检测系统,其特征在于,根据所述检测模块中所包括的检测子模块的种类,相应地,所述只读数据至少包括入侵检测规则集、病毒库及网址库中的一种或多种。
全文摘要
本发明公开了一种模块化的网络入侵检测系统。该系统包括数据源模块,其用于包获取和编码解析,分流模块,用于完成来自编码解析模块的网包的调度,并将网包分发到检测模块中的各个检测子模块;检测模块,用于检测网包中是否含有攻击,其使用多个线程,包括一种或多种检测子模块;其中,所述数据源模块和所述分流模块使用一个线程。本发明的技术方案可独立设计的数据采集及分发/检测模块式架构,便于使用硬件实现特定模块的功能;能够充分利用多核处理器的处理能力,性能可随处理器核数线性增长,且可动态加载多个检测模块,便于针对不同硬件情况配置;同时使内存消耗大大下降,增强了系统的通用性。
文档编号H04L29/06GK101699788SQ200910236818
公开日2010年4月28日 申请日期2009年10月30日 优先权日2009年10月30日
发明者李军, 薛一波, 陈新明 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1