全面解析Web应用防火墙
有趣的是,还没有人能真正知道web应用防火墙究竟是什么,或者确切的说,还没有一个大家认可的精确定义。从广义上来说,Web应用防火墙就是一些增强 Web应用安全性的工具。然而,如果我们要深究它精确的定义,就可能会得到更多的疑问。因为一些Web应用防火墙是硬件设备,一些则是应用软件;一些是基于网络的,另一些则是嵌入WEB服务器的。
国外市场上具有WEB应用防火墙功能的产品名称就有不同的几十种,更不用说是产品的形式和描述了。它难以界定的原因是这个名称包含的东西太多了。较低的网络层(Web应用防火墙被安置在第七层)被许多设备所覆盖,每一种设备都有它们独特的功能,比如路由器,交换机,防火墙,入侵检测系统,入侵防御系统等等。然而,在HTTP的世界里,所有这些功能都被融入在一个设备里:Web应用防火墙。
总体来说,Web应用防火墙的具有以下四个方面的功能:
1. 审计设备:用来截获所有HTTP数据或者仅仅满足某些规则的会话
2. 访问控制设备:用来控制对Web应用的访问,既包括主动安全模式也包括被动安全模式
3. 架构/网络设计工具:当运行在反向代理模式,他们被用来分配职能,集中控制,虚拟基础结构等。
4. WEB应用加固工具:这些功能增强被保护Web应用的安全性,它不仅能够屏蔽WEB应用固有弱点,而且能够保护WEB应用编程错误导致的安全隐患。
但是,需要指出的是,并非每种被称为Web应用防火墙的设备都同时具有以上四种功能。
由于WEB应用防火墙的多面性,拥有不同知识背景的人往往会关注它不同方面的特点。比如具有网络入侵检测背景的人更倾向于把它看作是运行在HTTP层上的 IDS设备;具有防火墙自身背景的人更趋向与把它看作一种防火墙的功能模块。还有一种理解来自于“深度检测防火墙”这个术语。他们认为深度检测防火墙是一种和Web应用防火墙功能相当的设备。然而,尽管两种设备有些相似之处,但是差异还是很大的。深度检测防火墙通常工作在的网络的第三层以及更高的层次,而 Web应用防火墙则在第七层处理HTTP服务并且很好地支持它。
直接更改WEB代码解决安全问题是否更好?这是毋庸置疑的,但也没那么容易(实现)。
因为,通过更改WEB应用代码是否一定就能增强系统安全性能,这本身就存在争论。而且现实也更加复杂:
◆不可能确保100%的安全。人的能力有限,会不可避免地犯错误。
◆绝大多数情况下,很少有人力求100%的安全。如今的现实生活中那些引领应用发展的人更多注重功能而不是安全。这种观念正在改变,只是有点缓慢。
◆一个复杂的系统通常包含第三方产品(组件,函数库),它们的安全性能是不为人知的。如果这个产品的源代码是保密的,那么你必须依赖商品的厂商提供补丁。即使有些情况下源代码是公开的,你也不可能有精力去修正它们。
◆我们不得不使用存在安全隐患的业务系统,尽管这些旧系统根本无法改进。
因此,为了获得最好的效果,我们需要双管齐下:一方面,必须提高管理者和开发者的安全意识;另一方面,尽可能提高应用系统的安全性。