Web应用防火墙(Web application firewall,WAF)主要用来保护Web应用免遭跨站脚本和SQL注入等常见攻击。WAF位于Web客户端和Web服务器之间,分析应用程序层的通信,从而发现违反预先定义好安全策略的行为。
尽管某些传统防火墙也能提供一定程度的应用认知功能,但是它不具备WAF的精度和准度。举例来说,WAF可以检测一个应用程序是否按照其规定的方式运行,而且它能让你编写特定的规则来防止特定攻击行为的再次发生。
WAF也不同于入侵防御系统(IPS),两者是完全不同的两种技术,后者是基于签名,而前者是从行为来分析,它能够防护用户自己无意中制造的漏洞。
目前WAF的主要推动因素之一是支付卡行业数据安全标准(PCI DSS),该标准主要通过两个办法来验证是否合规:WAF和代码审查。另外一个推动因素是,人们越来越多的认识到攻击已经开始由网络转移到应用程序。根据WhiteHat Security公布的一份研究报告,从2006年1月到2008年12月间对877个网站进行了评估,结果发现82%的网站至少存在一个高危或紧急安全漏洞。
WAF的主要特性
Web应用防火墙市场仍然不确定,有很多不同的产品被归类到WAF范畴。研究机构Burton Group的分析师Ramon Krikken表示,"很多产品提供的功能远远超出了我们通常认为防火墙应该具有的功能,这使得产品的评价和比较难以进行。"此外,通过将已有的非WAF产品整合到综合产品中的方式,新厂商开始进入市场。
根据研究和咨询公司Xiom创始人Ofer Shezaf提供的清单,下面列出Web应用防火墙应该具备的特性:
·深入理解HTTP。WAF必须全面深入分析和解析HTTP的有效性。
·提供明确的安全模型。明确的安全模型只允许已知流量通过,这就给应用程序提供了外部验证保护。
·应用层规则。由于高昂的维护费用,明确的安全模型应该配合基于签名的系统来运作。不过由于web应用程序是自定义编码,传统的针对已知漏洞的签名是无效的。WAF规则应该是通用的,并且能够发现像SQL注入这样的攻击变种。
·基于会话的保护:HTTP的最大弱势之一在于缺乏嵌入式的可靠的会话机制。WAF必须实现应用程序会话管理,并保护应用程序免受基于会话的攻击和超时攻击。
·允许细粒度政策管理。例外政策应该只对极少部分的应用程序执行,否则,可能会造成重大安全漏洞。
WAF的选择标准
开放网络应用安全计划组织(OWASP)主要工作是改进应用软件的安全性。以下是OWASP提出的WAF的选择标准:
·几乎不出现误报(即,从不拒绝授权请求)
·默认防御强度
·具备易学模式
·预防的攻击类型
·具备将单个用户限定在当前对话中可见的能力
·配置预防像紧急补丁等特定问题的能力
·波形因数:软件与硬件(通常硬件优先)
选择WAF首要考虑的问题
WAF与源代码扫描
WAF不能修复应用程序只能进行实时保护的特点,过去一直备受指责。有些厂商甚至避免使用"WAF"术语形容他们的产品,而是代之以"应用层意识"或"应用层智能"。不过,现在人们已经越来越普遍地认为,通过正确的实施,WAF能够成为多层安全模型中的重要组成部分,因为当人们修补应用程序漏洞的时候WAF可以提供保护。
正如WhiteHat Security公司的创始人Jeremiah Grossman在博客中坚持的那样,应用程序中攻击和漏洞太多,根本来不及修复代码本身。他主张,通过评估发现的漏洞应该作为自定义规则嵌入WAF中,这样就能为减轻当前状况并为过后再修复问题提供选择。
Gartner公司则建议客户考虑采用技术手段消除应用程序漏洞。在花钱购买设备之前,用户首先应该考虑一下,是否通过更强大的系统开发生命周期和使用源代码扫描器等工具来消除漏洞。WAF对于那些不容易改变的应用程序是非常有用的。
虽然一小部分风险承受力低的公司需要采用上述两种方法进行安全防护,但是对于大多数公司而言,采用其中任意一种方法就足够了。
硬件设备与软件
Jarden Consumer Solutions公司负责全球网络服务和运作的IT主管Jack Nelson表示,他们之所以选择Check Point软件技术VPN-1/FireWall-1集成网络智能技术的一大原因在于,能够有效的对这两者进行配置。Jarden公司有个没有配备IT维护人员的远程办公室,因此Nelson使用基于软件的版本解决方案,当现有WAF失效的时候办公室管理人员就可以轻松地将任何电脑配置为WAF。Nelson表示:"这比再买一个防火墙更灵活,比快速反应维护费更便宜。"这种界面足够简单,不需要防火墙专家配置,另外授权是基于密钥的,因此可以远程应用。
在北美的几个小办公室里,Nelson使用Check Point设备,因为他发现这种设备更便于管理和提供支持。
内置与外带
决定部署内置WAF还是外带的WAF是非常关键的,并不是所有WAF都支持这两种模式。包含不同部署模式的产品并不多见。
选择WAF的宜与忌
宜:切实弄懂单机和集成产品的不同
弄清两种供应商的不同是非常重要的,一种供应商将WAF功能集成到现有应用交付和网络安全产品中,而另一种供应商则专门生产应用程序安全产品。选择供应商的决定因素很多,如系统中已经安装的程序,客户需要的安全级别,客户需要专有产品还是功能齐全的产品等。
安全专家表示,致力于应用交付的产品对于应用安全而言是远远不够的,因为这类产品不包括像了解引擎和会话意识等计算密集型功能。了解引擎可以使WAF了解应用软件的行为并生成政策建议。会话认知可以让WAF实时地建立动态的、基于会话的规则,并使用这些规则来判断随后的请求是否有效。
Nelson在公司的虚拟专用网络和外部网络应用程序中使用Check Point的集成产品。集成产品可以处理广泛的安全组件,而不只是一个特定于应用程序的防火墙,这一点是非常重要的。"我们希望在不牺牲性能和可管理性的前提下能够加强功能性。"他说。
同时,汽车零部件供应商AutoAnything.com公司则采取相反的做法,他们使用Breach Security的单机WAF来保护电子商务的安全。 "一个公司将很多事情都做好是不可能的。 "其CTO Parag Patel表示。
忌:不要把WAF当成灵丹妙药
许多公司为了PCI合规的目的开始使用WAF,然而,分析师警告称,不要将WAF作为通过合规检测的产品项目。
"我见过很多错误的做法,"Young补充说,"很多人认为,只要买了防火墙就可以打发审计员,但是事实并非如此,必须定制适合自身环境的应用程序防御配置才行。"
宜:看看超越传统WAF功能的增强功能
Krikken表示,虽然传统的WAF客户都是安全团队,不过现在很多WAF产品开始引起了更多普通客户的关注,这要归功于WAF新增加的的分析功能、单点登陆支持和Web服务安全的集成功能。这也是为什么他建议WAF评价应该包括企业架构、应用实施和软件开发的负责人的原因。"这将改善解决方案安全方面的信心,以及减轻可用性和性能问题。 "他说。
事实上,一家全球性能源公司决定应用WAF的目的是满足该公司服务导向架构(SOA)部署安全服务的需要。该公司的总设计师决定采用Reactivity XML加速器安全装置,在该业务被思科收购后,思科将其转变为ACE WAF。当能源公司决定购买一个面向因特网的WAF时,思科向其保证可以利用ACE将两种功能整合在一起,既满足其内部的SOA需求,又保护其Web应用程序的安全。
宜:关注WAF的性能监测功能
应用监测作为WAF的非传统用法,正日益流行和普及。WAF能够检测性能问题,或者是检测应用程序是否因为无效链接而造成错误网页等问题。
忌:不要认为有了WAF就一劳永逸
Krikken表示,虽然可以使用黑名单规则来保证基本的安全,但是还是需要准备好为最简单的web应用程序投入持续的时间和精力。"即使有规则模板和学习引擎,为了提高有效性和降低报错,还是需要经常对系统进行初步调整和持续定制。"他说。
在全球能源公司,总设计师称用思科的WAF可以在两小时内配置一个应用实例。不过,他希望有更多的像特点过滤等配置方面的最佳操作指南,而不是客户自己摸索着操作。 "
宜:关注学习引擎功能
有了学习引擎,WAF可以学习和了解应用程序,进而创建甚至执行规则。Krikken表示,在动态环境中,最好让WAF对异常行为作出提醒而不是直接阻止。
Patel用了几个月Breach的学习引擎,他称其为简化的网络应用程序。Patel的团队回顾那段时间的工作时发现,Breach的学习引擎可以标记不规则行为。Patel表示:"你需要一定程度的舒适性,它会作出正确的决定 "然而,随着时间的推移,Patel希望实现自动拦截功能。"随着我们网站流量的增大,WAF判断违规操作并第一时间关闭那些企图是非常必要的。 "他说。
举例来说,WAF阻止其竞争对手处理网站上的产品数据,其中包括数以百万计的库存(SKUs)和价格信息。 "如果我们看到有人按周或按月检查数据,这表示我们的竞争情报蒙受了重大损失。 "Patel说。
宜:关注企业级应用
Jarden公司的Nelson选择Check Point安全产品的部分原因就是为了满足企业级应用,其控制台功能可以实现对全公司所有防火墙的集中管理。他特别喜欢的功能就是将所有的防火墙集中到所谓的"容器"中,并在这些容器内应用不同的策略。
与此同时,一家营养品制造商的安全通讯工程师表示,其使用的梭子鱼系统(Barracuda system)的最大优势在于它的可扩展性。该公司使用WAF的主要动机是为那些需要接收来自世界各地邮件的用户提供安全的web电子邮件界面。同时WAF也被用来阻止应用层攻击。
安全工程师希望,不管用户在什么地方,只要向用户提供一个单一的URL,他们就可以接收电子邮件,他还希望在不中断的情况下能够扩大系统范围。因为他可以在不需要新IP地址的情况下添加额外的WAF设备。"如果开始被重载,我们必须做的事情就是使用另外一个设备,将两个设备整合在一起,获得双倍能力。"他说。