1 NIDS面临的问题和解决的方法 随着现代网络技术的迅猛发展,交换技术的不断提高,千兆网络解决方案已经 成为一种潮流,尤其是电信IDC、金融、ISP等企业,均采用了OC-3或千兆的骨干网络环境。像在这样的高端用户群的网络中,他们的共同特点是:网络数据流量非常大,一般持续流量可以达到标准流量的70%—90%;并发连接数极高,骨干网络中的业务服务能力非常强,并发联接数可达百万到千万级,而且并发联接数建立过程也非常快,通常要求在数秒内达到并发联接数的上限。要在这样一个高背景流量环境下进行网络安全监控将会面临很多难题。海量的安全事件对入侵检测系统本身也是一个严峻的考验。 目前市场上主流的基于网络的入侵检测系统还没能满足千兆网络环境的要求,对于像2.5G POS高于千兆流量的情况,入侵检测系统就更加难以处理。如何为高端用户提供可靠的高背景流量下的网络入侵检测,又顾及入侵检测系统网络负载能力,同时保证系统的可扩展性、可维护性,是目前高端入侵检测系统面临的一个主要难题。 在这种情况下有许多提高NIDS性能的方法,如减少环境切换,分布式节点、数据分流、提高硬件性能等。 环境切换是指内核模式和用户模式之间的数据复制。减少数据包处理过程的环境切换可以有效提高接受数据包得性能。如为了提高传统的基于libpcap库基础上开发的入侵检测系统的性能。产生了一种 “零拷贝”技术。但是这种技术只是在一定程度上提高了NIDS的数据包捕获的能力。在提高了捕获能力后,由于受到CPU和协议栈等性能的影响,数据包的匹配检测能力会成为NIDS的下一个瓶颈。 为解决高速网络环境中丢包问题,1999年6月,出现了一种新的结构,基于分布式网络结点结构的IDS,也称为Stack-Based IDS(因为虽然IDS Sensor被装每一个主机上,但它处理的是基于TCP/IP协议的网络数据包)。它将IDSensor分布到网络上的每台机器上,每个Sensor只检查访问本地机器的IP分组然后传感器相互通信,主控制台将所有的告警聚集、关联起来。这种采用分布式网络节点的入侵检测系统一定程度的解决了高速网络中入侵检测性能不高的问题。但是这种方法也有明显缺点,在子网内的所有机器上面安装Sensor检测网络数据,不可避免的会影响机器的其它应用,同时也会产生较大的网络流量。 目前,已有部分基于ASIC的入侵检测系统进入市场,国内也有若干基于网络处理器开发的千兆入侵检测系统。这些基于较高性能的硬件开发的系统,主要面临的问题是开发周期较长和成本较高。采用机群分流的方式是在单机没有较高的检测能力情况下的一种解决问题的方法。通过多台计算机构成机群,能够得到更高的处理性能。在入侵检测领域可以通过这种方式构成NIDS机群以满足高带宽情况下对入侵检测设备的性能要求。 机群(Cluster)是一种并行或者分布处理系统,指一组相互独立的服务器在网络中表现为单一的系统,并以单一系统的模式加以管理。此单一系统为客户工作站提供高可靠性的服务。利用成熟的机群技术,可以构建由多台服务器组成的单一入侵检测系统。通过建立负载均衡机群,将被一台服务器捕获的千兆带宽的网段内的数据包,根据负载情况转发到多台装有百兆等级IDS的服务器进行处理。这样就能通过多个百兆等级的IDS构成一个满足千兆环境的入侵检测系统。通过使用机群技术,使网络数据分流是解决高速网络环境下实时有效检测和大容量存储的问题的有效手段。
2 NIDS机群的应用结构 NIDS机群在实际的应用中,不仅可以将数据分流,还可在数据分流的基础上进行集中管理和分析。如图1展示了一个典型的利用负载分流的方式实现监控DMZ网络流量的架构。在这个体系结构中,由前端负载均衡器捕获数据并按设定的负载均衡算法将网络数据流转发到不同的处理节点。负载均衡器在转发数据的同时也实现了网络负载平衡,有效地在处理节点中分配了工作负载或网络流量。多个IDS Sensor捕获数据流后由一个或多个分析机进行处理。监控台对各个IDS Sensor和分析机状态进行监控,控制台对产生的报警信息进行处理分析,并通过防火墙和路由器对访问数据流进行过滤和控制。数据库统一保存捕获的数据和产生的日志。图1通用NIDS机群应用结构图 完整的检测过程可以分为七个部分(1)量复制:捕获网络数据包;(2)载均衡:根据每个IDS的负载情况和检测能力,均衡分配负载; (3)实时检测:从普通的数据流中发现可疑的数据流;(4)分析:判断可疑的数据流是否正常行为或入侵行为;(5)监控:使网络管理者看到入侵行为,提供报告和解决方案;(6)管理:根据入侵行为设置IDS并通过路由器或防火墙控制访问的数据流;(7)二次分析:在数据库所保存的捕获数据中利用统计和其他相关人工智能的方法发现异常行为和新的入侵行为规则。 在上图的NIDS机群系统中,通过负载均衡器复制了流量,并保证来自同一客户端的多个请求不会被混淆。比如来源于一个IP地址的攻击提供了有效的连接请求,在这种情况下,最初无害的数据包可以被转发,直到IDS发现这个入侵数据包,检测到入侵信号,再由管理控制系统通过防火墙或直接发送rst包终止连接。 在图1所示的入侵检测机群系统中,前端的负载均衡器直接影响了系统的整体性能。如何设计和实现IDS负载均衡器是构建入侵检测机群的核心问题。负载均衡器是主要需要完成的功能是数据包的捕获,分类和根据负载均衡策略转发。目前,大多商用NIDS负载均衡器是通过ASIC实现。也可基于pc实现NIDS负载均衡器,但所能等达到的性能会有较大差距。
3 NIDS机群负载均衡器 负载均衡器是NIDS机群中的核心设备,它主要需要完成的功能是数据包的捕获,分类和根据负载均衡策略转发。目前,大多商用NIDS负载均衡器是通过ASIC实现。但也可基于pc实现NIDS负载均衡器。基于pc实现的NIDS负载均衡器由于转发和负载均衡一般都在IP层实现,且对仅针对数据包头进行简单处理,所以相同硬件条件下pc做负载均衡、分流转发相对于入侵检测可以获得更高的网络处理能力。虽然受到自身硬件能力的限制,目前还不可能实现千兆流量的分流能力。但通过采用千兆网卡也能实现400—500兆能力的数据分流,如果采用较高配置的pc,并对包捕获机制进行优化处理,完全可能达到更高的分流能力。因而PC实现NIDS负载均衡器仍有一定的实际意义。
4 NIDS机群的负载均衡策略 在入侵检测系统中,连接和会话数据的完整性是保证系统性能的重要因素。只有获得完整的一个连接中的所有数据,才能真正对整个连接过程进行实时监控。如果使用随机的方式进行分流,入侵攻击的数据就可能被分配到不同的检测设备中,这时检测设备就无法得到足够的数据来分析并检测此入侵行为并相应的产生报警信息。此外,为了提高检测速度和减少匹配链进行的协议分析也需要完整的连接数据包进行包重组和流重组。因此在由机群构成的入侵检测系统中,数据的分流不能是随机实现的。与标准的负载均衡机群相比,Round Robin等常用的基本负载均衡算法不能直接应用在NIDS负载均衡机群中。 大多数生产IDS负载均衡器的厂家都声称自己实现基于会话实现负载均衡,因为一个完整的会话可以保存足够的信息供IDS检测,会话的完整性保证了tcp流重组,ip包重组并在此基础可以进行相应的协议分析和模式匹配。保证会话的完整性是实现入侵检测的最低要求,也可以认为是实现负载均衡的最小粒度。此外还可以通过源、目的ip、源、目的端口,以及协议的5元组来实现数据包的流分类,将相同的流中的数据包,转发给指定的检测机器。也可根据数据包的源地址分类,将相同源ip地址的数据包,转发给指定的检测设备。具体的实现算法如下介绍。 基于源地址散列的分类(Source Hashing Scheduling),它根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。这种方式保证了源自同一地址的数据包会被转发到相同的服务器。基于5元组散列的分类(Five Tuples Hashing Scheduling)缩小了源地址散列调度的负载均衡粒度。它通过连接建立所需的5个基本元素:源ip地址、目的ip地址、源端口、目的端口、和协议,将所有的数据包通过查找这5元组的散列表,找到相对的服务器。这种方式保证了源自同一地址的建立一次或多次连接的数据包会被转发到相同的服务器也就是保证了连接的完整性。基于会话的数据包分类,进一步缩小了负载均衡粒度,在5元组散列分类的基础上,将同一会话的数据发送到同一服务器进行处理。这种方式保证了源自同一地址的一次完整连接的数据包会被转发到相同的服务器也就是保证了会话的完整性。Tcp会话通过三次握手建立连接并通过四分组结束连接,因而可以通过判断iP包中的标志位syn、fin判断一个会话的开始和结束。Udp数据报相互独立,也不必相互连续,因而无法区分会话始末,有些厂商针对udp开发弥补系统,通过建立状态表记录相同源的数据报,对以同一会话,建立时间限制。在获得新的Udp数据报时,负载均衡器检查数据包头信息,所有源ip相同的数据报都定向到同一节点。在维持一定时间后,若没有同一连接的数据报到达,就视此“udp会话结束”在内存表中删除源ip和目的ip的关联。 上述三种数据分流方式都保证了会话的完整性。从负载均衡的角度来说负载均衡单元粒度越小性能越佳,而从入侵检测的角度来说则负载均衡单元粒度越大所获信息愈全面。如何获得最佳的检测性能需要根据实际情况具体分析。这三种数据分流的方式,实际上是针对已建立连接的数据流,进行处理以保证检测数据的完整性。对于新建连接(第一次获得此类型的数据包,如新的源ip或新的5元组)可以进一步采用下面两种负载均衡的方法。 基于网络流量的均衡,根据以往历史预测从一网络源地址来的流量大小,最简单的形式就是平衡器在查找表中留有特定源地址来的流量计数,分配可基于简单加权,根据负载能力分配。这种方式在NIDS负载均衡中直接应用会存在一些问题。主要在IDS检测中需要保证会话的完整性,若根据流量加权分配很可能会破坏会话完整性。导致IDS Sensor所获信息不完整。 基于节点负载的均衡,将流量分配到处理器负载最小的节点上,负载均衡器远程维护在每个节点上反映当前处理器负载的代理程序。由于在IDS检测过程中,CPU并不一定是处理过程中的瓶颈,因而用这种方法进行负载均衡不够准确。不一定能够选择出负载最小的服务器。 由于所有需要检测的网络流量都通过负载均衡器,而且作为NIDS节点的机器除了入侵检测一般不再承担其它任务所以负载均衡器记录的各个节点的流量足以显示各个节点的工作载荷,因此在保证连接数据完整性的基础上直接在负载均衡器上实现基于网络流量的均衡是更好的解决问题的方法。
5 关于NIDS机群整体性能的考虑 在保证会话检测的完整性的基础上实现了基于流量的均衡,仍有一些问题需要解决。在黑客攻击行为中有大量不断改变源ip地址、目的ip地址、端口的行为,如端口扫描或DoS攻击。在这种情况下如果根据5元组转发,则同一攻击行为的不同连接会因5元组的不同,而被转发到不同的节点处理。这样每个节点所获得的攻击密度降低了,达不到正常情况所设的检测阈值,此类攻击行为就不能被及时发现。解决的方法有两个,一是根据实际情况降低每个NIDS Sensor的检测阈值,二是由负载均衡器完成此类基于统计的检测,而NIDS Sensor侧重协议分析和匹配检测。当然从另一方面来说由于分流,使得每个节点的NIDS Sensor提高了自身的抗DoS攻击的能力。 NIDS机群可视为一个完整入侵检测系统,那么根据如入侵检测自身的需求,并结合机群的特点,我们可以在通过分配不同节点的检测内容,达到检测性能的均衡和优化。如在转发时会判断是否tcp连接,那么可以在节点中将tcp和其他的类型数据包区分开,可以固定几个节点专门处理tcp数据包,这样在这些节点中的入侵检测就可以无需额外的数据包分类的开销。在负载均衡器能较强的情况下,我们也可以将协议分析的大部分工作由负载均衡器完成,节点可以固定完成http、ftp等应用协议的匹配工作。通过固定节点的检测内容,可以有效的简短规则的匹配链。进一步的发展,我们还可以通过预测不同的协议数据包的流量,来动态分配每个节点处理数据的协议类型,同时可以动态分配每个NIDS Sensor的匹配规则链。
6 结束语 目前NIDS面临的问题是普通单机处理能力跟不上网络带宽发展的趋势。通过分流的方式处理高带宽的网络数据流量是可行的解决方法。通过分流架构的NIDS负载均衡机群可以在一定程度上解决高带宽情况下检测能力不足的问题,并具有成本低,研发周期短,适应性广,可扩展性好的特点。在掌握了一定的集群技术后,还可以继续使用该技术配置更高性能的NIDS集群。
参考文献1 (美)布亚(Buyya,R.)着;郑纬明等译.高性能机群计算:结构与系统(第一卷),北京:电子工业出版社,2001.62 许榕生等.宽带网下入侵检测系统的研究与探讨. 计算机工程与应用,2002年第10期3 韩东海,王超,李群.入侵检测系统实例剖析[M].北京:清华大学出版社,20024 (美)布亚(Buyya,R.)着;郑纬明等译.高性能集群计算:结构与系统(第一卷),北京:电子工业出版社;2001.65 Simon Edwards,Vulnerabilities of Network Intrusion Detection Systems: Realizing and Overcoming the Risks
中国论文网(www.lunwen.net.cn)免费学术期刊论文发表,目录,论文查重入口,本科毕业论文怎么写,职称论文范文,论文摘要,论文文献资料,毕业论文格式,论文检测降重服务。