指令集的优化。例如,在P4处理器上,尽可能的使用P4处理器的指令集。Intel公司提供的C&C++编译器,就有针对指令集进行优化的功能,而且Intel实验室还提供这方面优化服务。
目前,Intel的新至强处理器采用了超线程技术,但是网络传感器如果要发挥新至强处理器的性能,就必须针对超线程进行优化。目前Linux最新的核心还不支持超线程技术。
●内存
内存对网络传感器的影响是显著的。因为网络入侵检测系统需要大量的内存进行抓包、包重组、流重组、协议分析、规则匹配等计算。
内存的使用方法也是至关重要的,因为会影响CPU的利用率。使用方法包括:内存分配、释放、复制、匹配等。使用不当一方面会造成内存泄露,另一方面会占用CPU开销。
网络传感器的部分进程在核心态运行,另一部分进程运行在用户态,两者之间如果共享数据,必须进行内存复制,这时就需要在核心态和用户态之间切换,两者之间切换的CPU开销是很大的,如果切换非常频繁,CPU开销就会非常大。
●二级缓存
L2 Cache的数量也对网络传感器的性能有积极的影响。因此,尽可能的使用大的L2 Cache。
●网卡
网卡对网络传感器性能的影响主要是抓包效率。网卡到达性能峰值时,就很容易丢包。所以网络传感器的网卡就不能使用一般性的网卡。目前,使用比较多的是Intel系列、3Com系列网卡。例如,Intel百兆网卡中的82559,千兆网卡中的82543,82544等。
如果网络入侵检测系统支持多个网卡监控,那么各个网卡最好分配在不同的总线段。
网卡对网络入侵检测系统的影响还体现在网络传感器与控制台的数据传输上。
网卡驱动对网络传感器的影响也是很重要的,有的网络入侵检测系统,对网卡做专门的优化。
●PCI总线带宽
另一个非常重要的硬件因素是PCI总线带宽。特别是在千兆网络入侵检测系统上,为了实现几个G的抓包速率,必须使用多个66Mhz/64-bit PCI or 133Mhz/64-bit PCI-X总线扩展槽。如果使用PCI-X总线,就必须使用PCI-X兼容的网卡,以充分发挥PCI-X 133MHz标准。为了提供更好的带宽利用,多个网卡必须合理地分布在PCI/PCI-X总线段上。
●硬盘IO
因为网络入侵检测系统的传感器需要在硬盘上存储很多日志信息,所以硬盘的IO也会影响到网络传感器的性能。
四、性能测试方法
介绍网络入侵检测系统的性能测试方法是为了让用户明白性能指标是怎么出来的,从而可以在众多厂商公布的产品性能指标中辨识真伪。
具体的测试环境、以及测试结果,请参看图示:
测试网络环境(以千兆网为例)
=========================================
●拓扑结构
●网络环境配置
●Smartbits的配置
在此测试环境示例中,我们看到:
●Smartbits设备制造TCP背景流量;
●在Cisco Catalyst 3500千兆交换机上进行端口镜像;
●分别从攻击机1和攻击机2发起对受攻击服务器2和受攻击服务器1的攻击,从而使网络传感器能够检测到攻击。
●测试结果示例
五、分析
网络入侵检测系统的性能测试的基本原理是是通过一些设备或软件工具制造不同数据包大小(如64, 128, 256, 512, 1024 , 1518字节)、不同压力的背景流量(如10Mbps,50Mbps,100Mbps,350Mbps,500Mbps,750Mbps等),然后通过各种黑客工具发动攻击,看网络传感器的检测情况和数据包丢失的情况。
在网络入侵检测系统中,背景流量的产生起着至关重要的作用。背景流量从如下方面影响性能测试的结果。
1.背景流量的数据包大小
对于发包测试设备来说,每秒制造数据包的数量(pps)是有极限的。一般而言,数据包越小,每秒制造的数据包数量越多,数据包越大,每秒制造的数据包数量越少。但是,数据流量(Mbps)等于数据包大小和每秒数据包数的乘积,所以数据流量由两者共同决定。
对应于网卡,也是一样,数据包越小,每秒能够处理的数据包越多,数据包越大,每秒能够处理的数据包越少。但是网卡每秒能够处理的数据包数也是有限的。
在极限情况下,数据包越小,处理的难度越大,数据包越大,处理的难度越小。因为在网络流量的不断增长的趋势下,小数据包的pps增长速度比大数据包的pps增长速度快得多,迅速达到极限。从上述的测试结果数据来看,可以很明显的看到这一点。
小数据包的处理能力不仅是网络入侵检测系统,而且也是防火墙的性能瓶颈。所幸在网络中小数据包出现的比率还是比较低的。但是,在一些黑客攻击中,采用小包,很容易制造DoS攻击。
厂商公布的网络入侵检测系统的每秒可处理的最大网络流量指标,往往是在最好的条件下测的,如每个数据包的大小是1518字节。
用户在选购网络入侵检测产品时,不能单纯看厂商公布的数据,而是要分析自己的流量的情况。要分析数据包大小的分布情况,64字节包平均占多少,128字节包平均占多少,512字节包平均占多少,1518字节包平均占多少,还要分析整体的流量在每天的时间上的平均分布。
2.背景流量的数据包类型
数据包的类型决定了网络入侵检测系统的处理方式,从而很大程度上决定了性能指标的有效性和真实性。
例如UDP包和TCP包的处理方式就是很具有代表性的一例。众所周知,UDP协议是面向无连接的协议,TCP是面向连接的协议。TCP传输不仅要完成三次握手,而且要对IP数据包进行组装,以形成完整的会话数据,有时网络传感器还要对TCP传输进行流重组。所以,TCP的处理比UDP复杂的多,占用的CPU、内存等系统资源也要多的多,而且,在所有攻击类型中,利用UDP协议的攻击所占的比率不到10%。
所以,用UDP包作为背景流量具有很大的欺骗性。而目前很多公布数据的网络入侵检测产品厂商都是用UDP作为背景流量,特别是千兆入侵检测产品,什么800M,941M等等。
在我们所举例的测试中,是使用TCP作为背景流量的类型,更具有科学性和真实性。
用户在选购网络入侵检测产品时,要注意鉴别真伪。
当然,利用背景流量的类型做文章的厂商比起随便插个千兆网卡就自称是千兆级产品的厂商来说,还是高明一些。
3.背景流量的方向
在我们举例的测试中,采用双向流量测试后,系统的流量和pps的性能指标在一定程度上提高,但不是成倍的上升。因为系统的处理性能放在那儿了。而且,小数据包的性能指标比大数据包的性能指标提高的更加明显。
4.CPU占用率
CPU占用率也是反映了网络传感器性能的主要参考指标,如果在其他条件相同的情况下,CPU占用率越低,表明系统的性能越好,反之就越差。
辨别网络入侵检测系统(IDS)的性能
0
相关文章