如今的入侵检测系统(IDS)实现的是被动监视功能,而入侵保护系统(IPS)能够进行实时监控,具备智能处理功能,可以主动阻截和转发数据包。Gartner也预测,将来的市场属于IPS。现在,市场人员也纷纷拾起IPS这个时髦词汇并为之奔走。就像当年的VPN大潮,每个与virtualization或privacy相关的产品都打上VPN的标签。如今,各式各样的IPS产品开始涌向市场。
前一段时间,美国《Network World》对市场上的11款IPS产品进行了评测。但并没有对各个产品的性能进行测试,这种做法引起了我们的注意。我们将他们针对这一问题的解释翻译出来,希望对您有所启发。
先来看看他们是如何测试这些IPS产品的。
如何测试?
测试者将参测IPS设备分别放到位于不同城市的真实的网络环境中。选择的受保护系统是惠普的ProLiant DL330服务器,运行未加补丁的Unix和Windows操作系统,还有一台运行V11.3版IOS的Cisco路由器。这些设备都被放入洛杉矶和圣荷塞的数据中心。每个受保护系统都有一个IPS设备加以保护,并与数据中心中的其他流量共存。
接下来,他们设置了各个IPS设备的功能。测试者的原则是尽可能多地使用这些设备的功能,从而为系统提供最优的保护。尝试使用设备每一种特性,比如扫描和签名等。此外,测试者还定义了自己的白名单和黑名单地址及服务,并将其置入每一台设备,还开启设备的阻断功能(如果该产品支持这一功能的话)。
当那些不可避免的攻击真正出现时,测试者对报警和监视机制进行了分析。观察这些产品能够监测到哪些流量,它们在阻断数据流时表现出的能力和灵活性是怎样的,以及它们的管理系统如何支持各种真实的网络拓扑。
为什么不测试性能?
在开始测试之前,测试者曾公开向厂商征求意见,请他们提出自己的看法,包括应当测试哪些项目,以及如何测试等。有三家厂商极力建议测试性能。
但问题是,这三家厂商所建议的测试方法却大相径庭。只有基本的测试标准—吞吐量和延迟相同的。有一种观点认为,如果IPS厂商希望将这些设备放在生产环境中进行测试,那么这些设备必须具备足够的速度和可靠性,至少应当与那些被替换掉的交换机和路由器不相上下。当然,测试者也赞同这一观点。
但除此之外,大家实在无法在其他问题上达成共识,因为IPS在一些最基本的特性方面存在很大的差别。某些系统在网络上以集线器的形式存在,有一些则更像是交换机,还有一些则是以路由器的方式运行的。第2层交换机和第3层交换机的性能测试是两个完全不同的概念。
可以假设这样一种情形,使用测试二层或三层设备的方法来测试IPS。在测试中,可能获得有关吞吐量、延迟、抖动等类似项目的数字。但问题是,大家绝对不可能从这些测试结果中了解系统作为IPS的表现究竟如何。测试的项目中并不包含安全性。而且此类性能测试甚至不可能通过一种有意义的方法来获得真正的性能。总之,如果将IPS系统设置为第七层检查,或是二/三层的转发,那么两者的性能表现肯定会有巨大的差别。
要想取得可比较的、可重复的性能统计数字,最大的障碍并不是说服多个厂商在IPS的定义上达成共识。最基本的测试只不过是让流量通过这些设备,并了解其具体表现。这样的测试完全是可以重复的,但它也是毫无用处的。我们关心的不是这些设备能否让网络流量通过,而是这些设备在面临网络攻击时的表现究竟怎样。
这也产生了另外两个更为复杂的性能问题,即:应当通过哪些流量?应当阻断哪些攻击?当各种类型的攻击开始向IPS发难时,可以想见,各类IPS的表现也是千差万别的。IPS可能选择以随机的方式丢弃包,从而保护它身后的系统。IPS也可以对包进行延迟处理,希望通过这种方式来抵御SYN flood攻击。由于IPS在受到网络攻击时会改变自己原有的特性,因此又产生了新的问题:究竟应当对哪些特性和性能进行测试?
如果大家希望IPS能够区分正常的和恶意的流量,那么就必须首先定义什么是正常的,什么是恶意的。不同的产品在设计之初以不同的方式对这类参数进行了定义,这就要看产品关注的是哪些类型的攻击。
有一种测试选项是,只向IPS发送正常的流量,但要对其进行配置,要求它搜索恶意的流量。在这种情形下,入侵保护系统只是进行搜索和监视,并且不丢弃任何包。在这种理想情况下,入侵保护系统可以在不受干扰的情况下给出性能数据。但是,这里所获得的结果与配置有很大的关系,而且与通过IPS的正常流量本身也有很大的关系。不同的流量会导致不同的系统表现。对于有些流量,入侵保护系统根本不需要进行任何深入的分析就可放行。而对于另外一些确实引发响应的流量,入侵保护系统又必须保留其统计数字和计数结果。有时配置中还需要定义侦测恶意流量的探测水平。在所有各种情况下,如果同一产品的配置发生了变化,其性能也会表现出相当大的差别。
不过,在这种理想情况下,我们确实可以获得一些攻击出现时各种产品的性能信息。所以任何合理的IPS性能测试都必须包含一部分此类内容,也就是将正常的流量和恶意的流量混合在一起进行的运行测试。但这种测试的结果更难评价。
例如,可以假设要对比的产品是Econet IPS(一种基于内容的设备)和Captus IPS(一种基于速率的设备)。我们首先驱使一些流量通过这些设备,然后再启动一个SYN flood攻击。如果Captus系统的配置中有对SYN flood进行响应的配置内容,它将开始丢弃一些包。但是,应该启动Captus的四个不同攻击响应机制中的哪一个呢?这时候应该采集吞吐量数据还是应该终止发送流量呢?在这一过程中存在太多的选项,而且没人知道哪些选项是公正的、可重复的和可比较的。
Econet的入侵保护系统并不侦测SYN flood,它会很高兴地让所有的包都自由通过。那么,在这种情况下我们得到的是什么结果呢?结果当然是,Econet比Captus快,因为它不丢弃任何包。结果也可能是,Captus比Econet快,因为后者不能捕捉任何攻击。
谁都知道这种方法是不公正的。那么,我们也可以将Captus和Top Layer放在一起进行比较,两者都是基于速率的IPS设备。在这种情况下,我们遇到的关键问题就是配置。如果只是让它们对通过包的数量进行计数,那么整个测试就没有什么意义了。我们也可以让它们丢弃一些包或延迟连接。如果要在零损失环境中测量吞吐量和延迟,测试的意义也就不存在了。随着IPS行为的改变,其响应时间也会发生变化。这两种设备根本就不存在相同的设置,也就是说,两种设备不可能以相同的方式来对同一问题做出响应。所以,我们所能做的只是简单地让包通过这些设备,根本谈不上有意义的性能测量。
要进行IPS的测试会遇到诸多困难和障碍,进行性能方向的比较和评价也是必要的,特别重要的是要针对IPS的作用进行有意义的性能测试。