一、引言
防火墙是在被保护网络和互联网之间,或是在其他网络之间限制访问的一种或一系列部件,主要具有过滤网络数据包、管理网络访问行为、封堵禁止访问行为、记录通过的信息内容和活动、对网络攻击进行检测和告警等基本功能。防火墙作为网络安全保护的第一道屏障,直接影响着网络的正常应用。
二、防火墙性能测试指标
建立一套科学合理的测试指标是保证测试有效进行的必要前提。一般来说,选取的测试指标应具备以下特征。代表性:所选指标在体现网络设备特征方面应具有代表性。可执行性:所选取指标在测试时应便于执行。可对比性:所选取指标应使不同设备的测试结果可进行对比。完整性:所选取指标应能完全反映设备的性能状况。
网络互联设备基准方法(RFC2544)中定义了4个网络设备的性能指标:吞吐量、延迟、丢包率和背靠背。防火墙性能基准方法
(RFC3511)中则定义了10个网络设备的性能指标:IP吞吐率、传输控制协议(TCP)并发连接数、最大TCP连接建立速率、最大TCP连接拆除速率、抗攻击能力、HTTP传输速率、最大HTTP处理速率、异常流量处理、IP分片处理及延迟。GB/T20281-2015《信息安全技术防火墙技术要求和测试评价方法》中则对防火墙规定了4个性能指标:吞吐量、延迟、最大并发连接数和最大新建连接速率。
为建立一套科学合理的测试指标体系,本文综合以上标准要求并结合测试经验,在进行实际防火墙测试时,主要考虑6个性能指标:吞吐量、延迟、丢包率、背靠背、最大并发连接数和最大新建连接速率。吞吐量:在没有数据帧丢失的情况下,设备能接受的最大包转发速率。延迟:数据帧最后一位的末尾达到防火墙内部网络输入端口,至数据帧第一位的首部到达防火墙外部网络输出端口之间的时间间隔。丢包率:在连续负载的情况下,防火墙由于资源不足,应转发但却未转发的帧百分比。背靠背:从空闲状态开始,以达到传输设备最小合法间隔极限的传输速率发送相当数量的固定长度的帧,当出现第一个帧丢失时,发送的帧数。最大并发连接数:防火墙能保持的最大TCP连接数。最大新建连接速率:防火墙在单位时间内所建立的最大TCP连接数。
三、防火墙性能测试方法
防火墙性能是硬件和软件的综合表现,硬件的设计和配置直接影响设备的性能。在相同硬件配置条件下,高效的算法和优化的管理软件也能大大提高防火墙性能。
测试指标会针对每个性能提供多个测试用例,在执行性能测试用例过程中,主要涉及测试环境的搭建和性能测试工具参数的设置,而参数的设置将直接影响测试结果的准确性和公正性。防火墙性能测试中的主要测试仪表包括:Spirent公司的性能分析仪(TestCenter)、Avalanche和IXIA公司的Ixload等。
(一)吞吐量。作为衡量防火墙性能的重要指标之一,吞吐量小会造成网络的瓶颈,从而影响整个网络的性能。性能测试仪测定的是被测设备在不丢包的情况下,正常转发的最大吞吐量。一般选端口的理论最大值(如100%),通过二分算法得出最终不丢包的情况下的最大吞吐量。延长测试时间和选取不同帧长的数据包等方法可提高吞吐量性能测试结果的精确度。但测试时间的延长及选取不同帧长的数据包又将大幅增加测试时间。所以综合考虑,根据RFC2544的要求,每一轮数据包的发送时间为120秒。此外,不同帧长的数据包吞吐量的差别很大,这是因为同一带宽下,帧长与数据包数成反比,帧长越小,包数越大,防火墙对包的处理耗费时间就越多,从而导致吞吐量下降,反之亦然。根据RFC2544的要求,测试时的帧长一般选取为64字节、128字节、256字节、512字节、1280字节、1518字节。
(二)延迟。延迟能力将体现防火墙的数据处理速度。一般延迟是通过按一个固定的持续时间发送帧,每一秒会有一个打了时间戳T1的帧被传输出去,当测试仪收到这个帧时,将完成传输时的时间与帧携带的时间戳T2的比较,从而计算出延时值为T2-T1。考虑时钟同步问题,一般将发出的帧环回到发送方进行比较。延迟测试是建立在吞吐量指标测试的基础上,首先要进行吞吐量测试,然后根据吞吐量的测试结果向设备发送对应每个帧长吞吐量的数据包。
(三)丢包率。丢包率对防火墙的稳定性、可靠性有很大影响。一般测试时按初始速率开始发送帧,记录收到的帧数量,如果被测设备不能完全转发,会降低一点速率再次发送,测试会一直持续到防火墙可完全转发为止,最后的结果会显示出各种帧长度的帧丢失情况。丢包率测试是通过发送端向防火墙发送一定数量的测试帧,帧数计为A;接收端在收到数据包后对其进行统计,得出成功转发的数据帧个数为B;则可得丢包率为B/A×100%。
(四)背靠背。该指标能体现出被测防火墙的缓冲能力。通过向被测设备连续发送具有最小帧间隔的N个帧,并统计被测设备转发帧的个数。如果发送帧的个数和转发帧的个数相等,则增加N值,再重复上述测试过程。
(五)最大并发连接数。主要用来测试被测防火墙建立和维持TCP连接的性能。利用性能测试仪测试最大并发连接数时,在服务器上设定一定大小的时延,使服务器和客户端一直保持联接状态,然后使客户端和服务器快速建立大量联接,直到设备达到最大承受的连接数。
(六)最大新建连接速率。主要用来衡量单位时间内防火墙建立和维持TCP连接的能力。利用性能测试仪测试每秒新建联接时,客户端向服务器发起建立联接并请求一个设定好的网页,收到请求的网页立即关闭联接,不断提高建立联接的速率,直到设备中有联接没有成功建立为止。
四、防火墙性能测试的考虑因素
笔者通过性能测试仪进行的是一种模拟测试,希望尽可能逼近现实网络环境,这里真实的环境可以是防火墙的使用场景,也可以是防火墙中的流量内容。防火墙各个性能指标值之间是强关联,但按照RFC测试理论,测试某一个性能指标时,应尽量排除其他指标的影响,实际测试的是这个指标的最优值。在实际应用中,往往对各种指标进行综合考虑,但在实验室环境中,会受到一些因素的限制。
(一)性能设置的各个参数都是强关联的,并将影响结果的准确性。笔者在进行TCP连接性能测试时,没有考虑并发连接数对新建数产生的影响,同样对新建数进行测试时,也没有考虑并发连接数对其的影响。实际上,防火墙在某一时间内运行TCP连接时,可能存在3种情况:正在建立联接、正在传输数据、正在关闭联接。测试并没有考虑这样复杂的情况,性能测试仪所创建的测试流量模型是不断地建立联接,再传输数据,而后依次关闭联接,失去了一定的真实性。
(二)用户在实际上网时会考虑认证时间、接入速度、网页联接时间等,而这些因素往往在性能测试中被忽略。
(三)在相同网络环境背景下,防火墙一些功能的开启将会对其性能产生影响:网络地址转换(NAT)是将防火墙的源地址、目的地址及端口进行转换,从而隐藏受保护的网络真实地址。防火墙的性能应考虑最真实性能,因此要求防护功能全部开启,才能更真实地体现防火墙的性能。
(四)在实际网络流量中,混合加密的SSL流越来越普遍,防火墙应能迅速截获SSL数据流并进行解密。在性能测试时,加载一定加密流量也是应该考量的一部分。
(五)性能优良的防火墙能不仅阻拦来自外部的恶意攻击,还能使内部网络与外界正常通信,对外提供服务。因此,应考虑防火墙在正常联接情况下的防攻击能力,在正常流量中增加各种攻击流量也是对真实环境的考量。
防火墙的性能逐渐成为衡量防火墙的一个重要指标,随着测试设备的升级、测试标准的更新及测试手法的多样化,防火墙性能测试也在不断接近真实的网络环境。因此,只有在测试前对相关因素进行严格分析、统一检测方法标准,才能对防火墙进行科学、合理、公正的测试。
(原载于《保密科学技术》杂志2017年8月刊)