随着互联网技术与应用的不断发展,新的互联网业务增长点与商业模式不断产生,已深入到社会经济、政治等各个层面。因此,各类组织所面临的Web 应用越来越复杂(如图1所示),安全问题以及衍生出的维护、管理问题也日益突出。
图1 web应用层环境
目前针对Web的攻击,主要包括黑客攻击、蠕虫病毒等,以及各种混合攻击,其对信息网络和核心业务造成严重破坏。常见的web攻击手段如表1所示。
表1 web应用层常见攻击
攻击名称 |
攻击方式 |
缓冲区溢出 |
攻击者利用超出缓冲区大小的请求和构造的二进制代码让服务器执行溢出堆栈中的恶意指令 |
Cookie假冒 |
精心修改Cookie数据进行用户假冒 |
认证逃避 |
攻击者利用不安全的证书和身份管理 |
非法输入 |
在动态网页的输入中使用各种非法数据,获取服务器敏感数据 |
强制访问 |
访问未授权的网页 |
隐藏变量篡改 |
对网页中的隐藏变量进行修改,欺骗服务器程序 |
跨站脚本攻击 |
提交非法脚本,其他用户浏览时盗取用户帐号等信息 |
SQL注入 |
构造SQL代码让服务器执行,获取敏感数据 |
Web应用安全问题本质上源于软件质量问题。Web应用安全,理想情况下应该在软件开发生命周期遵循安全编码原则,并在各阶段采取相应的安全措施。但Web应用较传统的软件,具有其独特性。主要体现在:
1 Web应用往往是某个机构所独有的应用,对其存在的漏洞,已知的通用漏洞签名缺乏有效性;
2 代码频繁地变更以满足业务目标,从而使得很难维持有序的开发周期;需要全面考虑客户端与服务端的复杂交互场景,而往往很多开发者没有很好地理解业务流程;
3 人们通常认为Web 开发比较简单,缺乏经验的开发者也可以胜任。
此外,内部维护人员疲于应付Web应用安全漏洞的补救,但是由于Web安全问题的解决步伐往往明显滞后于发现问题,这将导致Web安全漏洞在一定时间处于真空期,危害有可能被放大,主要原因在于:
1 低效的安全防御策略;
2 应用层代码的补丁往往需要严格的流程测试、审查,需要一定的周期;
3 漏洞往往会衍生变种;
4 难以抵抗零日攻击。
所有这些均严重挑战了Web应用安全。
传统的防火墙工作在网络层,这种方式对于Web应用没有任何的防护。
IDS/IPS作为防火墙的有利补充,加强了web的安全防御能力。但是,IDS/IPS需要预先构造攻击特征库来匹配网络数据,技术本身存在一定的局限性。
与传统防火墙及IDS/IPS不同,新起的安全设备Web应用防火墙(Web Application Firwall,WAF)工作在应用层,对Web应用防护具有先天的技术优势。
本文详细介绍了Web应用防火墙技术及其特点,并调查了市场中相关产品。
WAF旨在保护Web应用程序免受常见攻击的威胁。Gartner的分析师表示,“这是一种非常不同的技术,它不是基于签名,而是从行为来分析,它能够帮助减少你自己无意中可能制造的漏洞问题”。Web应用防火墙的最大好处是,帮助分析应用层的流量以发现任何违法安全政策的安全问题。
WAF在网络中一般位于Web应用服务器前,用于保护防火墙之后的应用服务器。它提供的功能可能包括服务器之间的流量负载均衡、压缩、加密、HTTP和HTTPS流量的反向代理、检查应用程序的一致性和汇聚TCP会话等。
WAF一般均采用反向代理技术和虚拟主机技术原理,其工作流程大体如下(参考图2):将受保护的Web服务器建立虚拟主机,对于每一个虚拟主机提供相应的安全策略来进行保护。同时把Web应用防火墙配置为反向代理服务器,用于代理Web服务器对外部网络的连接请求。当Web应用防火墙能够代理外部网络上的主机访问内部Web服务器的时候,Web应用防火墙对外就表现为一个Web服务器。它负责把外部网络上的请求转发给内部的应用服务器,然后再把内部响应的数据返回给外部网络。Web应用防火墙没有保存任何内部服务器的真实数据,所有的静态网页或者CGI程序,都保存在内部的Web服务器上。因此对Web应用防火墙的攻击并不会使得网页信息遭到破坏,这样就增强了Web服务器的安全性。
图2 web应用防火墙原理图
WAF的Web安全防护引擎对外部网络的攻击起到屏障作用,因此内部的服务器不会受到攻击。这些攻击包括利用特殊字符或通配符修改数据的数据攻击,设法得到命令串或逻辑语句的逻辑内容攻击,以及以账户、文件或主机为主要目标的目标攻击。同时该实体可采取强认证技术,能对数据内容进行过滤,保证信息数据内容的安全,防止病毒以及恶意的Java Applet或ActiveX代码,具有较高的安全性。
与传统防火墙及IDS/IPS设备相比较,WAF最显著的技术差异性体现在:
1 对HTTP 有本质的理解:能完整地解析HTTP,包括报文头部、参数及载荷。支持各种HTTP 编码(如压缩);提供严格的HTTP协议验证;提供HTML 限制;支持各类字符集编码;具备response过滤能力;
2 提供应用层规则:Web 应用通常是定制化的,传统的针对已知漏洞的规则往往不够有效。WAF 提供专用的应用层规则,且具备检测变形攻击的能力,如检测SSL 加密流量中混杂的攻击;
3 提供正向安全模型(白名单):仅允许已知有效的输入通过,为Web 应用提供了一个外部的输入验证机制,安全性更为可靠;
4 提供会话防护机制:HTTP 协议最大的弊端在于缺乏一个可靠的会话管理机制。WAF为此进行有效补充,防护基于会话的攻击类型,如cookie 篡改及会话劫持攻击;
5 允许细粒度政策管理。应该对很少部分的应用程序执行例外处理,否则,可能造成安全漏洞。
此外,在选择WAF产品时,可参考以下步骤:
1 结合业务需求明确安全策略目标,从而定义清楚WAF产品必须具备的控制能力;
2 评估每一家厂商WAF产品可以覆盖的风险类型;
3 测试产品功能、性能及可伸缩性;对产品评测时,可参考开放式Web应用程序安全项目(OWASP)的标准:
a) 很少出现误报(例如,不应该拒绝授权请求等);
b) 默认防御的强度;
c) 容易操作模式;
d) 可以预防的漏洞类型;
e) 能够限制个人用户只能在当前对话中所看到的内容;
f) 配置预防特定问题的能力,如紧急补丁等;
g) WAF提供形式:软件与硬件(一般偏好硬件)。
4 评估厂商的技术支持能力;
5 评估内部维护团队是否具备维护、管理WAF产品的必需技能;
6 权衡安全、产出以及总成本。“成本”不仅仅意味着购买安全产品/服务产生的直接支出,还需要考虑是否影响组织的正常业务、是否给维护人员带来较大的管理开销。
以下是国内市场中几款主流的应用防火墙:
1 梭子鱼
梭子鱼应用防火墙的前身是行业领先的NetContinuum,具有优秀的应用层防护和应用优化功能。
2 Citrix
Citrix的Netscaler的特点是在其原本的应用交付的基础上加入了应用层防护功能。
3 Imperva
Imperva的特点是在应用防护的基础上,加入了数据库安全。其不足之处在于应用优化的功能不如其他厂家优秀。
4 绿盟
绿盟是国内较为优秀的安全厂家,其冰之眼产品在IPS的基础上加入了主动防护功能,实现了应用防护的目的。
作为一种新技术,WAF在市场仍然还不是很明确。目前使用WAF的主要驱动力来自于支付卡行业数据安全标准(PCI-DSS),该标准主要通过两个办法来审查是否合规:WAF和代码审查。另外一个驱动力就是,越来越多的组织意识到攻击已经开始由网络转移到应用程序。WhiteHat Security在2006月到2008年12月间对877个网站进行了评估,结果发现82%至少存在某种重要的紧急的系统严重性。
总的来说,WAF能够实时保护应用程序,避免Web应用程序免受由于开发人员的疏漏造成的常见攻击的威胁,但这并非修复漏洞。只有通过正确的部署,WAF才可以作为多层安全模型中重要的组成部分,WAF才可以在修复应用程序漏洞的时候提供保护。如前文中所述,Web漏洞的解决往往具有滞后性,若将发现的漏洞作为自定义规则嵌入WAF中,能够减轻目前的状况并能过后再修复问题,这也是WAF发挥的作用的重要一环。