软件WAF vs. 硬件WAF
PCI补充资料(PCI Information Supplement)表明,WAF可以以软件的形式部署在运行有通用操作系统或者工具的标准服务器上。它也可以是一个单独的设备或者内置在网络器件中。所以,你可以在市场上选择各种类型的WAF。
软件WAF通常比较便宜,更加灵活。硬件工具更容易安装和配置,因为他们的操作系统已经固化在了芯片中,而软件防火墙则需要人工去进行配置。(WAF不会去保护那些存在着问题的配置,也不会防护服务器中的漏洞。)
如果你倾向于使用以软件为基础的产品,那么请选择一款能够在你IT部门所熟悉的平台上运行的产品。不管怎样,请弄清楚防火墙供应商能够提供哪些培训和支持,以及相应的费用。
当然,目前也存在着开源的软件WAF,比如ModSecurity[http://modsecurity.org] 和AQTRONIX WebKnight [http://www.aqtronix.com]。如果它们能够满足你的要求,你就可以大大地降低成本,不过还需要人去学习、安装、配置,并对其进行维护。许多开源工程具有非常好的支持论坛,但是与付费产品不同的是,你不能在紧急情况下向客服寻求帮助。
性能以及可扩展性是选择硬件或者软件WAF时需要着重考虑的另一个方面。有些设备每小时能够处理的工作有限,而有些工具可能还存在带宽限制。如果你以后想要增加Web活动,或者在不久的将来需要添加其他的应用程序,那么你可能更应该选择一款可扩展的、灵活的防火墙。
软件产品的升级往往比硬件设备简单,但是硬件WAF更适用于大容量网站,这些网站需要非常大的吞吐量。
如果你在运行一个大型应用程序,那么你所需要的WAF将不止一个,这样集中化的管理可能是一个关键的功能,因为有了这个功能之后你就可以在一个地方部署和管理多个防火墙。
我们的建议是,不管WAF是硬件的还是软件的,只要它能够满足目标要求,并可以对其进行配置管理即可。
帮助信息
请花足够的时间对WAF产品进行评估。一旦你确定了可以满足基本要求的某些产品,你又应该如何确定最终要买哪款产品呢?
Web应用程序安全联盟(WASC)[Link: http://www.webappsec.org/]创建并推行了Web应用程序安全标准。他们已经制定出了可供参考的Web应用程序防火墙评估标准(WAFEC)[Link:http://www.webappsec.org/projects/WAFec/]。任何具有一定技术水平的技术人员都可以单独使用WASC的测试方法对WAF方案进行质量评估。
请把WASC的标准作为你评估过程的一部分。遵循WASC的建议,仔细审查WAF产品所使用的配置架构,WAF的HTTP、HTML和XML、监测和保护技术、日志记录和报告能力,以及管理和性能等。
WAF的部署
祝贺你。你已经选择、购买并安装了一款具有必要的遵从能力的WAF。但是,这并不意味着你会一帆风顺。适当的安排、配置、管理以及监视是必不可少的。
WAF的安装需要遵循四步安全生命周期:确保安全、监视、测试和完善。这是一个持续的过程,内部存在着反馈和多次循环,从而使得安全更加稳固。在把设备连接到你的网络前,你一定要用文档记录下网络基础设施,并且想办法让网络中的设备或者系统更加稳固。这意味着要给设备打上补丁,还要花时间对设备进行配置,从而增强其安全性。
配置将直接追溯到你在安全政策中确定的业务规则(比如说允许的角色集合)。如果你按这种方式处理防火墙配置,规则和过滤器将会自动定义。WAF能够发现网络或者应用程序中的技术问题,比如误报(false positive)警告或者流量瓶颈等。
仔细测试是必不可少的,尤其是你的网站使用了特殊的标题(header)、URL或者cookie,或者与Web标准不一致的特定内容。如果你运行了应用程序的多语言版本,你还应该预留额外的测试时间,因为它可能要处理不同的字符集。
测试环境应该尽量接近“真实的”应用程序环境。这有助于在部署WAF前发现WAF可能引起的系统整体问题。用微软的Web Application Stress 和 Capacity Analysis Tools或者 AppPerfect Load Tester等工具对WAF进行压力测试,也有助于发现部署WAF后可能引起的瓶颈。
WAF管理
一旦你配置完成并开始运行,请评估Web应用程序防火墙未来的变化将如何影响Web应用程序,反之亦然。当然,你必须记录下你对网络基础设施做的任何改变,作为将来的参考和故障处理的依靠。这个包括跟踪现在以及将来对配置所做的任何变化。
产品环境的改变必须在监测下进行。请确保把时间和变化的范围提前告知企业中所有受影响的部门。为了确保配置不被故意更改、确保配置具有合法程序,你必须控制安全设备的任何物理访问以及逻辑访问。严格坚持变化控制、业务连续性,以及灾难发现政策,因为它们可以保护WAF和你的业务。
因为应用程防火墙不仅检查网络地址和端口,还会检查整个网络的信息包,所以它们的日志记录能力更加宽泛,并且能够记录特殊应用程序命令。所以,请不要浪费这个功能和信息。日志文件分析可以提醒你即将来临或正在进行的攻击。一定要定义好你的防火墙所需要记录的信息,最好是全部请求和应答数据,包括头和身体负载。请确保你的员工具有这方面的专业技能和足够的时间,以便对日志进行审查和分析。
Web应用程序永远不可能百分之百的安全。即便是没有短时间内部署Web应用程序的内部压力,系统也会存在漏洞、存在威胁。把Web应用程序防火墙作为安全模型的一部分,你就可以观察、监测并寻找那些入侵的苗头。防火墙与匆忙去修补漏洞不同的是,它为你提供了一个可以喘息的地方,让你按照自己的时间进度去安排漏洞修复。