安全牛:用网络层指标衡量下一代防火墙性能?你OUT啦!
发表日期:2015-12-23 14:50:05
导读
谈及到网络设备的性能指标,大家总是习惯性的联想到吞吐量、丢包率等网络层性能指标。诚然,以吞吐量为代表的网络层指标概念清晰,易于测量,对于用户选型传统防火墙等典型网络层设备起到了很好的指导作用。但随着近年来应用需求和网络技术的发展,用户不再满足于基本的数据通信能力,而是更多关注业务本身的运营效率与安全,希望看到网络流量中用户、应用、内容等可理解的信息,随之而来的是应用层网络设备的不断涌现。如何客观公正的评估这些新一代安全设备的性能,成为摆在用户面前亟待解决的问题。
网络设备性能评估需要费厄泼赖
与传统网络设备相比,应用层网络设备不再简单的关注数据报文的转发,而是关注和应用协议相关的内容,如协议识别、应用特征识别、应用威胁识别等,并基于此开发功能特性。针对这些特性,通常应用层网络设备都有各种各样的识别引擎,无论何种算法,最基本的一个要求就是:必须把数据包解封到OSI模型第七层,即应用层。而网络层设备以数据包转发为主要目的,只关心数据包转发能力,只需要解封到第三层,找到对应的IP地址和端口信息即可。
数据包封装和解封,层次越多,CPU的计算负载就越高,这会直接体现在性能上的衰减。同样处理能力的CPU,处理网络层数据转发和应用层识别,所呈现的性能参数是完全不同的,不能放在一起横向比较。使用传统网络层性能指标来评价应用层设备的性能,显然有悖于现代社会所倡导的费厄泼赖(Fair Play)精神。
应用层性能测试的本地化实践
应用层设备的性能测试指标,并不是什么新生事物。全球知名的独立安全研究和评测机构NSS Labs已经提出过比较详细的评估指标,包括网络层吞吐量、网络层新建连接速率、应用层吞吐量和应用层新建连接速率四个指标。之所以将一些网络层的评估指标也引入到了对应用层设备的评估,是为了衡量被测设备的基础数据转发能力,确保工作引擎在攻击流量下仍有足够的应用层处理能力。
NSS Labs的测试指标与方法具有普遍性,适用于品类多、覆盖广的通用性测试,但没有充分考虑产品实测的流量模型,尤其是没有考虑到中国本土网络环境下的热点应用、网络条件和使用方法等地域性特征。就此缺点,国内有安全厂商提出了更贴近中国市场“真实世界”的本地化性能测试指标和方法建议,具体包括以下几个指标:
1. 应用层吞吐量
测试方法:在开启应用识别引擎的前提下,通过发送平均21K大小HTTP页面来测试设备应用层最大吞吐量,且只能计算成功获得HTTP响应的连接。
(说明:选取大小为21K的页面,是基于该厂商对多家高校、运营商等典型网络环境的长期流量统计,总结得出对于每Gbps的流量,包速率采用185Kpps、平均包长670字节、新建连接速率5000个/秒,能够比较准确地描述实际流量,可以作为实际性能测试的流量模型。将流量换算为HTTP页面,恰好为21K。)
2. 开启IPS的应用层吞吐量
测试方法:在开启应用识别引擎、IPS引擎的前提下,通过发送平均21K大小HTTP页面来测试设备应用层最大吞吐量,且只能计算成功获得HTTP响应的连接。
(说明:本项测试主要针对下一代防火墙(NGFW)设备。由于IPS开启会较大影响整体性能,因此有必要考察开启IPS功能后设备的性能表现。)
3. 应用层新建速率
测试方法:发送64字节大小的HTTP页面,且必须获得正常的HTTP响应,计算每秒可以建立的最大HTTP连接数。
4. 网络层吞吐量
测试方法:发送1518字节UDP数据包来测试设备网络层最大吞吐量,与传统方法相同。
5. 网络层新建速率
测试方法:正常建立和销毁1字节负荷的TCP连接,来计算最大TCP新建连接数。
小结
由于网络层设备与应用层设备的特点与差异,传统的网络层性能标准无法有效衡量应用层网络设备的能力。基于业界权威的标准和测试方法,并结合对中国本土化应用层流量模型特征,建议使用四项通用指标来评估应用层网络设备性能:应用层吞吐量,应用层新建速率,网络层吞吐量,网络层新建速率。其中应用层指标可以作为主要指标,网络层指标可作为参考指标。此外,对于下一代防火墙设备,还需要考察开启IPS功能后的应用层吞吐能力。