需求:
作为互联网应用和资讯内容提供商,公司拥有大量的WEB服务器,业务种类繁多,动静态内容混杂;已有网络防火墙解决的是公司业务网络边缘的安全问题;而最终用户(client)和服务器(server)之间的行为规范,规则仍为空白,存有大量安全隐患,即应用层安全防范问题。
如:跨站点脚本攻击、SQL注入攻击、OS命令注入攻击、网站侦测攻击、进程劫持、应用拒绝服务攻击、恶意探测与网站爬行、Cookie/进程窃取攻击、路径模式发掘攻击、头信息窃取攻击、信息泄露攻击等。
基于以上情况,需要于web服务器和用户之间部署一套安全,可靠,灵活的应用层防火墙。此次设备选型为“梭子鱼(BARRACUDA) WAF 460”。
设备概述:
此款“460”型号,从硬件体系结构划分,属于较常见的普通计算机系统结构,基于类UNIX系统,依靠UNIX血统强大的网络功能和系统稳定性,安全性,进行强化,二次开发,定制出的专门适用于防火墙的高效系统。此类防火墙由于和ASIC,NP等相比在处理性能上一般稍有不足,所以测试重点在性能方面,其次为功能和操作管理性方面的评估。
设备主要参数:
cpu: AMD Sempron 3400+ (1.8GHz)
mem: 1.5G (DDR720/360MHz RAM)
chipset: AMD K8
支持后端服务器数量 5-10
接入WEB流量(MB/秒) 50 Mbps
HTTP连接/秒 6,000
SSL连接/秒 4,000
机架底盘 1U Mini
有效AC电源输入(安培) 1.4
主要功能:
HTTP(S)/FTP协议验证、常规入侵防护、表单域数据提交验证、网站隐身外壳、应答控制、发送数据窃取保护、HTML代码格式化、协议健康检查、文件上传控制、日志、监控和报表、高可靠性、SSL卸载等。
设备接口情况:
前面板:以太网接口×2Gigabit(WAN口,LAN口);电源开关;RESET开关;
后面板:10/100自适应以太网管理网口;USB×4;显示器接口;串口;并口;电源插孔;
附图:

(前面板)

(后面板)
设备管理方式:
1, 直连基本输入输出设备(键盘,鼠标(支持USB/PS2),显示器)进行配置:
1.1 设备开机自检过程,可直接进入bios进行参数调整.
1.2 启动菜单包含3个选项:
Barracuda,启动梭子鱼系统
Recovery,可恢复系统出厂设置
Hardware Test,硬件测试
附图:

测试环境拓扑图:
设备支持“反向代理,桥模式,单臂模式”三种结构模式;分项测试,仅根据当前网站业务情况进行相关功能和性能测试,在功能测试(安全)方面,由于现实不存在大量并发的hacker行为攻击情况,采用单点单线程测试ACL及SQL注入,cookie欺骗等;对dos/DDOS类flood攻击主要测试设备的抗压能力,归为性能测试部分。
测试环境设备概况:
交换机:CISCO 2950 × 2
服务器:server1
机型:DELL R510 全新双路16核,24GB内存
操作系统:windows server 2003 企业版(32位)
应用服务器:IIS6;SQL SERVER 2005
服务器:server2
机型:DELL R510 全新双路16核,24GB内存
操作系统:windows server 2008 R2 标准版
应用服务器:IIS7;SQLSERVER 2005
Client :
机型:DELL R510 硬件配置同server
各模式下,梭子鱼管理接口IP统一使用192.168.0.200/255.255.255.0
管理用户名和口令采用默认的 admin /admin
Web管理接口:http://192.168.0.200:8000
登录界面:

初次登陆web管理界面,观察到的待机负载情况:

桥模式:
该模式也是设备默认模式;
优点:无需改变现有网络结构及网络内IP设置,配置速度快,不会中断业务和服务器间数据交互。
缺点:不支持负载均衡等功能,受广播包影响较大。

桥模式测试过程及结果:
按照拓扑配置完网络后,在防火墙管理界面配置服务:

配置两条禁止访问的alc

对192.168.9.2的deny措施是直接拒绝请求;
对192.168.9.3则选择redirect处理,方便加压同时测试两种功能下的性能。
注:如有过防火墙或负载均衡设备配置经验,这款产品的配置界面还是比较简单,易于操作,个人感觉灵活性不错。
分别在两台client配置攻击参数:

模拟线程增加到100后,测试机(client)cpu100%,网卡使用率100%,测试机(client)几乎无法操作,故没有截图;仅给出当时防火墙的负载数据如下:
常规的flood攻击全部被过滤。

压力测试采用工具”web stress tools”:
模拟1000个用户并发访问5分钟:

脚本执行过程中防火墙的状态:

系统负载状况可以说相当不错,由于桥模式下,处理正常的web请求时梭子鱼460承担着跟交换机差不多的工作,而且并没有增加过多的规则和复杂URL处理,以上数据可以理解。
在攻击测试和压力测试混合进行过程中,防火墙系统意外的出现了错误报警:

此时,WAF设备进入Bypass模式,对业务访问没有造成任何影响,显示了桥模式下Bypass功能的优势。根据提示和在线帮助文档,重启后告警信息消除,设备恢复正常工作模式。WAF设备的界面提示以及在线帮助显示出了梭子鱼产品强大的实用性和易于使用的特性。
桥模式下吞吐量的简单测试:
采用单一200KB静态文档(利用SSI包含若干小文本和图片)进行并发压力测试;
脚本执行过程防火墙负载情况:

脚本执行报告:
Number of hits: 18411
Requests per Second: 61.37
Socket Statistics
--------------------------------------------------------------------------------
Socket Connects: 19116
Total Bytes Sent (in KB): 4665.31
Bytes Sent Rate (in KB/s): 15.55
Total Bytes Recv (in KB): 3390324.97
Bytes Recv Rate (in KB/s): 11301.26
Socket Errors
--------------------------------------------------------------------------------
Connect: 0
Send: 0
Recv: 689
Timeouts: 0
继续增压:
并发上调至10000的情形:
服务器状态如下:

460防火墙的性能状态:

脚本执行报告:
Number of hits: 93143
Requests per Second: 310.48
Socket Statistics
--------------------------------------------------------------------------------
Socket Connects: 102617
Total Bytes Sent (in KB): 25019.48
Bytes Sent Rate (in KB/s): 83.40
Total Bytes Recv (in KB): 1945695.58
Bytes Recv Rate (in KB/s): 6485.72
Socket Errors
--------------------------------------------------------------------------------
Connect: 1260
Send: 0
Recv: 53758
Timeouts: 0
在如此高并发下,有约1/10的请求被当作恶意攻击处理,但未出现超时情况,对比该型号的官方数据支持最高并发6000 来说,结果还是非常不错的。
接下来添加若干安全规则,用“sandcat”配合“HP WebInspect 7.7”进行web应用安全方面的测试:
测试执行过程截图:

最终结果截图:


如上所示,只有一条文件类型欺骗没有被拦截掉,可能跟防火墙规则设置有关,另,该设备支持实时在线升级规则库,该测试环境没有真正连接至internet,无法升级规则库,如进行升级后应该可以完全过滤。
单臂模式:
单臂模式只使用WAN口对内外的流量进行过滤。由于只适用一个网络接口,吞吐量略差。
优点:无需改变现有网络结构及IP设置,配置速度快,易于与现存负载均衡集群融合。
缺点:吞吐量差;可直接访问源服务器,安全性差;需要更改DNS指向。

该模式在当前测试环境下无应用场景,所以不予考虑。
反向代理模式:
以串联方式安装,同时使用WAN口和LAN 口。提供最高的安全性,需要改变当前的网络设置。
优点:设备功能支持全面(负载均衡等);服务器隔离,安全性高;
缺点:对网络结构改动较大,部署需中断业务;需要更改原Web服务器的IP地址。

反向代理模式可单独对每台服务器配置反向代理,也可以配置反向代理负载均衡集群;本次测试直接对server1和server2进行反向代理下的负载均衡集群模式测试。如采用单独服务器配置,其测试结果各项指标势必比集群模式下高,可直接参考本次集群模式测试结果。
配置节点:

点击“编辑”可进行集群配置:

负载均衡支持3种模式:权重轮询,普通round robin轮询,按请求数量轮询;如需保持会话状态,可选择source IP,cookie insert,cookie passive 其一,视情况而定。
另外一点,failover method除load balance外还支持冗余容错模式,可适用于重要业务的热备机场景。在网站应用中较常见。
首先进行性能测试:
20线程的cc攻击结果:

40线程的cc攻击结果:
客户端:服务器端(以server2为例):


460防火墙:

可见,此类攻击几乎完全被过滤,防火墙负载很低,不过性能状态页面的服务器状态获取似乎有点问题,显示为 active servers: 0/2 ,而实际上2台server服务状态正常,都可正常访问,但刷新页面后显示正常:

下面进行正常web请求的压力测试:
对200KB静态文件模拟10000并发:
Client端连接数状态:

Server1连接数状态:

server2 连接数状态:

注: server2为2008系统,用netstat统计当前连接情况添加过滤会显示IPV4和IPV6数据,所以有“当前连接=0”的隔行记录。
460防火墙负载情况:

Webstress报告:
Number of hits: 901283
Requests per Second: 3760.71
Socket Statistics
--------------------------------------------------------------------------------
Socket Connects: 910909
Total Bytes Sent (in KB): 222506.06
Bytes Sent Rate (in KB/s): 928.43
Total Bytes Recv (in KB): 2342558.01
Bytes Recv Rate (in KB/s): 9774.59
Socket Errors
--------------------------------------------------------------------------------
Connect: 644
Send: 0
Recv: 6978
Timeouts: 0
综上,反向代理模式下的负载均衡集群,对连接请求的分发还是较均匀的,防火墙自身负载也比较理想。Web服务器端的测试环境均为系统默认配置,如进行应用服务器和网络参数的调优后,数值可以更加理想。单从目前压力测试结果来说,已经可以满足需求。
接下来进行安全方面测试,使用工具和安全规则及各项参数同“桥模式”:
防火墙过滤结果:

测试工具报告:

过滤成功率99.99%以上。
综合反向代理模式的性能和安全考核结果,该模式最为适合网站业务,而且能够充分利用和发挥防火墙设备的功能优势。暂定为首选采纳方案。
日志记录:
防火墙的各类日志和操作系统日志,应用程序日志对日常维护和管理人员来说是非常重要的。日志可以帮助我们找到入侵的蛛丝马迹,进行封堵,改进程序,强壮网站的整体安全性。
460防火墙的日志系统分三个部分:防火墙日志,访问日志,审核日志。
防火墙日志记录匹配防火墙策略被处理的请求,如下图:

访问日志和IIS/APACHE等web应用服务器的日志相似,记录访问请求的情况:

审核日志记录的是对于防火墙系统自身的配置更改的操作记录。
对日常维护管理都是必须和有效的帮助。
“梭子鱼460”这款WAF的操作性和易用性,通过实际测试过程的体验,总结如下:
功能强大,配置项目也就繁多,WEBUI布局设计比较合理,如果有过防火墙类似设备的配置经验上手较快,各配置项也易于理解。每个页面都有帮助按钮,随时可以参考帮助和建议信息,方便实用。易用性较好。
测试全程不满意的地方就是WEBUI首页“系统状态”的加载速度过慢。无论防火墙系统负载情况高低,该页面的加载速度都不够迅速,而日常运维工作中,该页面和几项显示日志的页面,访问频率应该是最高的,体验不佳。联系梭子鱼技术支持工程师后得知,这是由于设备在测试之前没有临时激活导致的。相信正常用户使用时都会经过正式激活,所以不会存在上述问题。
总结:BARRACUDA WAF 460 web应用防火墙,产品性能表现良好,功能全面,配置管理操作性良;安全方面做得很到位。其反向代理模式,安全性最高,支持功能最完善,适用于当前生产环境,配合企业边缘防火墙和服务器端的安全策略,可以有效应付现今的各种攻击手段。对于大中型企业来说,可以采取产品支持的HA部署(冗余热备),可以有效解决单点故障的困扰。