防火墙测试中的一些误区

本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。
msn: [email protected]
来源:http://yfydz.cublog.cn
 
1. 前言
防火墙测试目前并没有真正的测试标准,因此很多只是靠测试仪提供的一些标准测试,常见的测试仪有SmartBit和Ixia,国内各种测试中SmartBit用得比较多一些。
 
测试仪主要还是根据RFC2544来测试网络设备的基本性能,如吞吐量、延迟、丢包率、背靠背等,这些是属于路由器(IP层)级别的性能参数;此外还可进行一些传输层的性能测试,如最大连接数,最大连接建立率等;还可以进行攻击测试,攻击类型包括:land、ping of death、syn flood、teardrop、ping flood、ping sweep、smurf等,这些攻击的原理在以前的文章中介绍过。
 
前几年的测试中,性能测试和功能测试是分开测试的,两者的配置可以不同;近两年测试的新趋势则是性能测试功能测试是使用相同的配置来做的,相同的配置下完成功能和性能测试,这种情况下其实是有问题的。
 
2. 误区
 
目前这些测试仪进行吞吐量测试时发的包是UDP7的包,端口7是echo服务,所有包的源和目的地址都相同,这种大流量的相同包在防火墙看来是有问题的,应该是归属于udp flood之列,试想如果在实用中某台机器发出如此大数量的UDP包时防火墙却没有异常的报告,任由网络带宽被占用,估计整个网络都会瘫痪,网管估计也不敢再用这种防火墙了吧。一个好的测试方式应该是包的源地址和目的地址都要动态变化的,模仿实际数据流,防火墙才能将其作为是正常包,这样结果才比较正确,但目前的测试仪似乎都发不出这类包。如果还是相同源目的IP的包,应该在确认防火墙上关闭UDP flood的防御,这也顺便检测了防火墙是否有检测UDP flood的能力。同样道理,在测试最大连接数和最大连接建立率时如果所发的包都具有相同的地址,那防火墙应该将其视为DOS攻击,这种情况下测试结果就不可靠,测试仪所发的连接的包都应该是不同的地址。
 
在攻击测试中,一般当然是觉得攻击包能通过的越少越好,所以在某些防火墙的测试报告中确实出现那七种攻击包没一个能通过防火墙的情况,但这也是有点问题的。那些攻击测试中,land、ping of death、teardrop、smurf都属于有特征的包,全部阻断是没问题的,对于syn flood,使用syn proxy或syn cookie技术的话也可以全部阻断,因为测试仪不发ACK包的,而且很多情况下甚至不需要此这些技术,因为测试仪发的SYN包基本都没有TCP选项,可以丢掉;ping flood和ping sweep实际是正常的ping包,只能通过统计方式来识别,当发包速度降低到一定程度下就成了正常的ping功能应用,在允许ping包通过防火墙的情况下开始多少会应该通过一些的,过了一些后才能统计识别出是ping flood或ping sweep,如果测试结果是全部阻断了,反而说明防火墙有问题了,根本不是靠统计功能来识别ping flood/sweep,而是靠全部阻断ping包来防御了,但就限制了正常ping功能的使用。
 
3. 结论
 
防火墙的测试人员不能纯粹看测试仪的输出数字来判断防火墙功能的好坏,而应当真正明白各种测试背后的东西,可惜目前很多测试中的测试人员还是只懂让测试仪走一遍后就按数字进行排序而不会进行任何分析。

猜你喜欢

转载自cxw06023273.iteye.com/blog/866887