基于Web的应用程序带来的是,要求安全增值厂商和系统集成商为了web应用防火墙一系列的服务增加对防火墙设备的安装、配置和支持。防火墙产品因其协助遵从支付卡行业数据安全标准(PCI DSS)而获得了关注(PCI法规 6.6要求机构自身检查web应用程序的所有代码,或者安装一个Web应用防火墙来防范已知的攻击方式),对为其应用程序提供web访问的组织而言,它们已成为一种必须。
什么是Web应用防火墙?
Web应用防火墙是专门为保护基于web的应用程序而设计的,它不像传统的防火墙,基于互联网地址和端口号来监控和阻止数据包。一个标准的端口号对应一种网络应用程序类型。例如,telnet接收发送到端口23的数据包,邮件服务器接收发送到端口25的数据包。
传统的防火墙允许向邮件服务器相对应的互联网地址发送数据,让数据包通过25端口送达目的地。发送数据包给一个不是邮件服务器系统的互联网地址和25端口,就是一个攻击。防火墙会阻止这些数据包。
Web服务器理应通过80端口传送数据包。所以所有发给支撑web服务器系统80端口的数据包必须被允许通过防火墙。传统的防火墙没有办法测定一个地址指向正确的数据包是否包含威胁,但Web应用防火墙可以仔细检查数据包的内容来检测并阻止威胁。
Web应用程序如何遭受攻击
黑客们不断开发新的方法获得未经授权的Web应用程序访问,但是也有一些通用的技术。
* SQL注入:一些应用程序通过复制Web客户端输入来创建数据库查询。黑客通过构造一些应用程序没有仔细检查和会被拒绝的字符串,来获取返回的机密数据。
* 跨站点脚本:黑客插入脚本代码(如JavaScript或ActiveX)到一个输入字符串,导致Web服务器泄漏用户名和密码等信息。
* 操作系统命令注入:一些应用程序从web输入来创建操作系统命令,就像访问一个文件和显示文件内容。如果输入的字符串没有仔细检查机制,黑客就可以创建输入来显示未经授权的数据、修改文件或系统参数。
* 会话劫持:黑客通过猜测基于令牌格式知识的会话令牌的内容来获得登录会话的权利。这使得黑客能接管会话并可以得到原来的用户帐户信息。
* 篡改参数或URL:web应用程序通常在返回的的web页面中嵌入参数和URL,或者用授权的参数更新缓存。黑客可以修改这些参数、URL或缓存,使Web服务器返回不应泄漏的信息。
* 缓冲区溢出:应用程序代码应该检查输入数据的长度,以确保输入数据不会超出剩余的缓冲区和修改相邻的存储。黑客很快就会发现应用程序不检查溢出,并创建输入来导致溢出。#p#分页标题#e#
如何阻止web应用攻击
Web应用防火墙检查每一个传入的数据包的内容来检测上述类型的攻击。例如,web应用防火墙会扫描SQL查询字符串,来检测和删除那些导致返回的数据多余应用程序要求的字符串。增值厂商应仔细监测新发展的攻击类型并跟踪检测他们的最新产品。
Web应用防火墙不仅检测上述已知类型的攻击,而且还监测异常的使用模式来检测目前未知的攻击方法。例如,通常Web应用程序与web客户端的信息交流数量是有限的。如果Web应用防火墙检测到Web服务器正在返回一个比预期大很多的数据量,它就会及时切断传输,以防止更多的数据泄露。
目前有基于软件和基于应用程序的web应用防火墙。基于软件的产品布置在Web服务器上,而基于应用程序的产品放置在Web服务器和互联网接口之间。两种类型的防火墙都会在数据传入和传出web服务器之前检查数据。
一般基于软件的产品成本低于基于应用程序的产品成本,基于软件的产品供应商声称这类防火墙具有更低的延迟和更高的吞吐量。但是在web服务器上安装额外的软件势必会增加额外的处理负荷和系统上软件的复杂性。
基于应用程序的防火墙厂商声称,这类防火墙安装和使用简单,因为没有额外的软件安装在Web服务器系统上。 Web服务器的性能不受Web应用程序防火墙处理的影响。
除了商业产品外,也有许多开放源码的Web应用防火墙可用。这些产品成本低于商业产品(就开放的源代码工具来说,他们是免费的,或者就基于开放源代码的商业产品来说,极有可能降低成本)。过去开源代码关注的是,黑客们将检查代码并设法逃避保护措施。有了应用Linux这类开源代码软件的丰富经验,这些都不是什么问题。 所有的产品,不论是购买的还是开源代码,无论是基于软件的还是基于应用程序的,都应该得到支持。商业产品得到了供应商的支持。开放源代码为增值厂商和系统集成商提供了一个整合安全知识的机会。为 Web应用程序防火墙提供持续的支持,确保合作伙伴与客户保持密切的关系,给供应商在未来为客户提供更多产品和服务提供了机会。