WAF(Web application firewall,Web应用防火墙)主要用来保护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对于那些不容易改变的应用程序是非常有用的。虽然一小部分风险承受力低的公司需要采用上述两种方法进行安全防护,但是对于大多数公司而言,采用其中任意一种方法就足够了。
WAF的基础介绍就到这里,希望大家已经掌握,在下一节里我们会为大家介绍:Web应用防火墙安全大揭秘之“十诫” 下篇
【编辑推荐】