一、概述
性能指标是每个用户采购安全产品必定关注的问题。但是,如果不知道这些指标的真实含义,不知道这些指标如何测出来,就会被表面的参数所蒙蔽,从而做出错误的决策。
本文介绍了网络入侵检测系统的性能指标的含义、测试方法,并分析了测试过程中可能作假的方法,以给用户正确选择网络入侵检测产品提供辨别的思路。
二、性能指标简介
不同的安全产品,各种性能指标对客户的意义是不同的。例如防火墙,客户会更关注每秒吞吐量、每秒并发连接数、传输延迟等。而网络入侵检测系统,客户则会更关注每秒能处理的网络数据流量、每秒能监控的网络连接数等。
就网络入侵检测系统而言,除了上述指标外,其实一些不为客户了解的指标也很重要,甚至更重要,例如每秒抓包数、每秒能够处理的事件数等。
1.每秒数据流量(Mbps或Gbps)
每秒数据流量是指网络上每秒通过某节点的数据量。这个指标是反应网络入侵检测系统性能的重要指标,一般涌Mbps来衡量。例如10Mbps, 100Mbps和1Gbps。
网络入侵检测系统的基本工作原理是嗅探(Sniffer),它通过将网卡设置为混杂模式,使得网卡可以接收网络接口上的所有数据。
如果每秒数据流量超过网络传感器的处理能力,NIDS就可能会丢包,从而不能正常检测攻击。但是NIDS是否会丢包,不主要取决于每秒数据流量,而是主要取决于每秒抓包数。
2.每秒抓包数(pps)
每秒抓包数是反映网络入侵检测系统性能的最重要的指标。因为系统不停地从网络上抓包,对数据包作分析和处理,查找其中的入侵和误用模式。所以,每秒所能处理的数据包的多少,反映了系统的性能。业界不熟悉入侵检测系统的往往把每秒网络流量作为判断网络入侵检测系统的决定性指标,这种想法是错误的。每秒网络流量等于每秒抓包数乘以网络数据包的平均大小。由于网络数据包的平均大小差异很大时,在相同抓包率的情况下,每秒网络流量的差异也会很大。例如,网络数据包的平均大小为1024字节左右,系统的性能能够支持10,000pps的每秒抓包数,那么系统每秒能够处理的数据流量可达到78Mbps,当数据流量超过78Mbps时,会因为系统处理不过来而出现丢包现象;如果网络数据包的平均大小为512字节左右,在10,000pps的每秒抓包数的性能情况下,系统每秒能够处理的数据流量可达到40Mbps,当数据流量超过40Mbps时,就会因为系统处理不过来而出现丢包现象。
在相同的流量情况下,数据包越小,处理的难度越大。小包处理能力,也是反映防火墙性能的主要指标。
3.每秒能监控的网络连接数
网络入侵检测系统不仅要对单个的数据包作检测,还要将相同网络连接的数据包组合起来作分析。网络连接的跟踪能力和数据包的重组能力是网络入侵检测系统进行协议分析、应用层入侵分析的基础。这种分析延伸出很多网络入侵检测系统的功能,例如:检测利用HTTP协议的攻击、敏感内容检测、邮件检测、Telnet会话的记录与回放、硬盘共享的监控等。
4.每秒能够处理的事件数
网络入侵检测系统检测到网络攻击和可疑事件后,会生成安全事件或称报警事件,并将事件记录在事件日志中。每秒能够处理的事件数,反映了检测分析引擎的处理能力和事件日志记录的后端处理能力。有的厂商将反映这两种处理能力的指标分开,称为事件处理引擎的性能参数和报警事件记录的性能参数。大多数网络入侵检测系统报警事件记录的性能参数小于事件处理引擎的性能参数,主要是Client/Server结构的网络入侵检测系统,因为引入了网络通信的性能瓶颈。这种情况将导致事件的丢失,或者控制台响应不过来了。
三、性能指标受哪些因素影响?
网络入侵检测系统性能取决于软硬件两方面的因素。
1.软件因素
软件因素主要是:
●网络抓包的效率;
●数据包重组和TCP流重组的效率。这是严重影响网络入侵检测系统性能的因素,对处理器和内存的开销非常大。如果数据包重组和TCP流重组在操作系统的用户层完成,那么就会导致操作系统以极高的频率在核心态和用户态之间切换,导致大量额外的系统开销;
●入侵分析的效率。入侵检测一般是基于特征匹配的,将网络数据包与入侵规则库进行特征匹配的。很多产品利用协议分析技术提高入侵分析的效率,先使用协议分析过滤冗余数据,同时尽快在规则树上分叉,加速深度遍历;
●C/S结构下,网络通信的延迟。在服务器端和客户端都要引入网络通信模块,从而增加事件传输的延迟。大多数网络入侵检测系统都是采用Client/Server结构的,例如ISS Real Secure,赛门铁克的IDS系统,启明星辰的天阗和金诺的KIDS等等。像一些基于浏览器/服务器(B/S)结构的网络入侵检测系统就没有这种问题,例如方正科技软件的方通Sniper,因为它的事件直接存储在网络传感器上;
●事件日志库的记录能力。有的系统将事件收集(Event Collector)和事件日志库分开,事件收集器和事件日志数据库又形成了C/S结构,又引入了延迟。如果EC和日志数据库在不同的主机上,更引入了网络传输延迟。ISS Real Secure,启明星辰的天阗和金诺的KIDS等等又是采用这种结构;基于浏览器/服务器结构的网络入侵检测系统也没有这种问题;
●控制台的事件显示效率。很多控制台会因为事件多的处理不过来,所以导致控制台死机。很多C/S结构的控制台完成的功能太多了,例如和传感器的网络通信、和事件收集器的通信、和事件日志数据库的通信,还要完成事件显示、事件分析、系统管理和配置等等。引入了很多性能瓶颈点。如果不能达到实时监控,就会使网络入侵检测系统的价值大打折扣。
2.硬件因素
硬件方面主要是CPU处理能力、内存、网卡和硬盘IO等。
●CPU处理能力
CPU处理能力是影响网络入侵检测系统网络传感器性能的重要因素。CPU处理能力从三个方面对系统产生影响:CPU主频和CPU的个数,分别被称为CPU的纵向和横向的扩展能力。一般而言,随着CPU主频的提高,网络传感器的处理能力越高,这是显而易见的。
但是是不是随着CPU数量的提高网络传感器的性能就线性增加呢?这要看系统是否是多进程或多线程架构的。很多网络入侵检测系统都在做多处理器的优化。
对CPU处理能力的利用率也极大地影响网络传感器的性能,那么如何提高CPU处理能力的利用率呢?其中一个非常重要的方法就是对网络传感器进行CPU指令集的优化。例如,在P4处理器上,尽可能的使用P4处理器的指令集。Intel公司提供的C&C++编译器,就有针对指令集进行优化的功能,而且Intel实验室还提供这方面优化服务。
目前,Intel的新至强处理器采用了超线程技术,但是网络传感器如果要发挥新至强处理器的性能,就必须针对超线程进行优化。目前Linux最新的核心还不支持超线程技术。