当黑客攻击Web应用时,网络防火墙和入侵检测产品发挥的作用有限,而应用防火墙却让黑客无功而返。
在6月份的时候有这样一则新闻:美国科学家表示,许多网站目前都面临一种新形式网络攻击——“HTTP请求走私”的威胁,这种攻击将有害的数据包隐藏在看似合法的数据包中,通过HTTP请求破坏网站。
专家发现,“HTTP请求走私”最简单的一种攻击形式是添加多余的“内容长度的头信息标签”。通常,当浏览器发出网页请求时,它会发送包含详细请求内容的数据包。一般情况下,数据包中只包含一个“内容长度的头信息标签”,以保证需要处理的数据大小。而在“HTTP请求走私”中,可能会出现两个以上“内容长度的头信息标签”。科学家发现,不同的网站在遭到这种攻击时会作出不同的反应,很可能会造成处理错误。另外,“HTTP请求走私”能够突破安全过滤器,可以将新网站非法上载到网站缓冲区中。
专家认为,黑客可能很快就会利用“HTTP请求走私”,对网站进行大规模攻击。最好的防范措施,就是严格遵循超文本数据传输协议的各项要求。同时,专家也认为,之所以出现“HTTP请求走私”,说明超文本传输协议存在漏洞,应对其进行修改。
这条新闻所提到的攻击只是网站所面对的众多攻击中的比较新的一个。随着互联网的飞速发展,Web应用也日益增多。今天,商业交易的各个部分都正在向Web 上转移,但每增加一个新的基于Web的应用系统,都会导致之前处于保护状态下的后端系统直接连接到互联网上,最后的结果就是将公司的关键数据置于外界攻击之下。
据Gartner调查显示,现在有75%的攻击都是针对Web应用层发起的。尤其是金融服务业成为了众矢之的,而攻击者的主要目的就是直接获取个人数据。
据美国计算机安全协会(CSI)/美国联邦调查局(FBI)的研究表明,在接受调查的公司中,2004年有52%的公司的系统遭受过外部攻击(包括系统入侵、滥用Web应用系统、网页置换、盗取私人信息及拒绝服务等等),这些攻击给269家受访公司带来的经济损失超过1.41亿美元,但事实上他们中有 98%的公司都装有防火墙。
为什么防火墙没有防住攻击?因为他们安装的是网络防火墙,而真正能防御这些攻击的是应用防火墙。早在2002年,IDC就曾在报告中认为,“网络防火墙对应用层的安全已起不到什么作用了,因为为了确保通信,网络防火墙内的端口都必须处于开放状态。”
从概念走向实用
应用防火墙其实是个安全“老兵”了。在十几年前,就已经出现了应用防火墙的概念。但是为什么迟迟没有产品出现呢?华城技术有限公司负责人杨磊说:“因为系统的硬件平台跟不上。以前,网络层数据的转发处理就占用了CPU大量的资源,CPU根本无法再做应用层的处理;而可以进行高速网络数据处理的ASIC技术又处理不了应用层数据的复杂性,所以应用防火墙没有诞生的条件。”随着NP(网络处理器)性能的迅速提升,特别是基于通用CPU的多核NP 体系(例如Broadcom的双核NP 1250,将2个64位MIPS芯片集成在一块处理器芯片里面,而且后续推出了集成4个CPU的处理器;而Cavium公司也推出了集成16个MIPS CPU和硬件加速处理单元的网络服务处理器OCTEON)产生之后,利用多CPU的并行处理能力和软件的灵活性,应用防火墙可以实现对复杂应用的安全处理,并且能够达到千兆线速的性能。
在2004年,应用防火墙终于冲破概念的围城,真正实现了产品化。国外有Teros、Sanctum、Netcontinuum和Kavado等厂商推出了Web应用防火墙,目前在国内记者看到的产品仅仅有华城技术(secnumen)的AppRock和F5网络公司的TrafficShield。
现在我们所说的应用防火墙,一般是指Web应用防火墙和数据库防火墙(也叫SQL防火墙),而现在我们所能见到的产品基本都是Web应用防火墙。
应用前面的铜墙铁壁
安装了网络防火墙和IDS,就能抵挡应用层攻击吗?不能。因为在保护应用方面,网络防火墙和IDS各有不足。
网络防火墙有洞
网络防火墙技术的发展已经非常成熟,也是目前网络安全技术中最实用和作用最大的技术。
但是,作为目前应用最为广泛的HTTP服务器等应用服务器,通常是部署在防火墙的DMZ区域,防火墙完全向外部网络开放HTTP应用端口,这种方式对于 HTTP应用没有任何的保护作用。即使使用HTTP代理型的防火墙,防火墙也只是验证HTTP协议本身的合法性,完全不能理解HTTP协议所承载的数据,也无从判断对HTTP服务器的访问行为是否合法。攻击者知道正面攻破网络防火墙十分困难,于是从简单的端口扫描攻击转向通过应用层协议进入企业内部,目前,利用网上随处可见的攻击软件,攻击者不需要对网络协议有深厚的理解,即可完成诸如更换Web网站主页、盗取管理员密码、破坏整个网站数据等攻击。而这些攻击过程中产生的网络层数据,和正常数据没有什么区别。一个最简单的例子就是在请求中包含SQL注入代码,或者提交可以完成获取其他用户认证信息的跨站脚本,这些数据不管是在传统防火墙所处理的网络层和传输层,还是在代理型防火墙所处理的协议会话层,都会认为是合法的。
明白了防火墙的工作原理,我们就知道,对于应用层攻击,网络防火墙是无能为力的。
入侵检测有限
目前最成熟的入侵检测技术就是攻击特征检测。入侵检测系统首先建立一个包含目前大多已知攻击特征的数据库,然后检测网络数据中的每一个报文,判断是否含有 数据库中的任何一个攻击特征,如果有,则认为发生相应的攻击,否则认为是合法的数据。
入侵检测系统作为防火墙的有力补充,加强了网络的安全防御能力。但是,入侵检测技术的作用存在一定的局限性。由于需要预先构造攻击特征库来匹配网络数据, 对于未知攻击和不能有效提取攻击特征的攻击,入侵检测系统不能检测和防御。另外就是其技术实现的矛盾,如果需要防御更多的攻击,那么就需要很多的规则,但 是随着规则的增多,系统出现的虚假报告(对于入侵防御系统来说,会产生中断正常连接的问题)率就会上升,同时,系统的效率会降低。
对于应用攻击,入侵检测系统可以有效的防御部分攻击,但不是全部。
应用防火墙有效
网络面临的许多安全问题单靠网络防火墙是无法解决的,必须通过一种全新设计的高性能安全代理专用设备来配合网络防火墙。具体来说,利用网络防火墙阻挡外面的端口扫描攻击,利用应用安全防护技术,深层管理和控制由用户访问外部资源而引起的应用层攻击,解决针对应用的、具有破坏性的复杂攻击。
应用防火墙真正实现了对网络应用的保护,是传统安全技术的有效补充。应用防火墙可以阻止针对Web应用的攻击,而不仅仅是验证HTTP协议。这些攻击包括利用特殊字符或通配符修改数据的数据攻击、设法得到命令串或逻辑语句的逻辑内容攻击,以及以账户、文件或主机为主要目标的目标攻击。2004年所出现的 Web应用10大漏洞,应用防火墙均可以防御,未知攻击也无法越过应用防火墙。
业界标准的应用防火墙一般采用主动安全技术实现对应用的保护。主动安全技术是指建立正面规则集,也就是说明哪些行为和访问是合法的规则描述。对于接收到的应用数据(从网络协议还原出来的应用数据,不是数据报文头),判断是否符合合法规则。因为只允许通过已知的正常数据,这种方式可以防御所有的未知攻击。
应用防火墙技术是现有网络安全架构的一个重要补充,而不是取代传统防火墙和入侵检测等安全设备。传统安全设备阻挡攻击者从正面入侵,着重进行网络层的攻击防护;而应用防火墙着重进行应用层的内容检查和安全防御,与传统安全设备共同构成全面、有效的安全防护体系。
表1 3种安全产品防御能力比较 攻击类型 网络防火墙 入侵检测 应用防火墙 未经验证的输入 不能防御 部分防御 全部防御 不完整的访问控制 不能防御 不能防御 全部防御 不完整的认证和会话管理 不能防御 不能防御 全部防御 跨站脚本(XSS)漏洞 不能防御 部分防御 全部防御 缓冲区溢出 不能防御 部分防御 全部防御 注入的漏洞 不能防御 部分防御 全部防御 不恰当的错误处理 不能防御 不能防御 全部防御 不安全的存储 不能防御 不能防御 全部防御 拒绝服务 部分防御 部分防御 全部防御 不安全的配置管理 部分防御 部分防御 全部防御 未知攻击 不能防御 不能防御 全部防御 |
严格把关
应用防火墙安装在传统网络防火墙与应用服务器之间,在ISO模型的第七层上运行。所有的会话信息,包括上行和下行的会话信息,都要流经应用防火墙。下行请求经过应用防火墙,并且在积极模型的情况下,进行政策的解析处理。这就要求应用防火墙安装在缓存服务器的前端,以保证请求的有效性。上行请求经过只允许有效请求通过的应用防火墙,因此避免了有害请求进入服务器。应用防火墙了解解析和输出的会话请求,提供与已有应用的联机集成,并与Web应用技术相兼容。应用防火墙监听80和443 TCP端口,并从客户机接收输入的HTTP/HTTPS请求,然后解析这些请求,将这些请求与会话建立关系或者创建一次会话,然后将请求与会话的政策相匹配。如果这个请求符合安全策略,它就被转发给Web服务器,否则请求就被拒绝。
像华城技术有限公司的AppRock应用防火墙的用户行为检测技术,就是从网络数据中还原出应用数据流,并在应用数据的基础上归纳用户行为,然后进行用户行为的合法性判断,从而精确的判断出攻击行为。通过和积极安全模型结合,用户行为检测可以实现只允许发生符合正常用户行为的访问数据通过,任何异常数据都会被阻止。
实行安全策略的最佳方法就是为用户与应用系统间的交互设定一个详细模型或策略。一旦定义了合法活动,则其他活动就会被视为非法活动而被禁止访问。拥有一个可精确识别用户活动的模型对执行安全策略是至关重要的。F5网络公司的TrafficShield的应用流量模型是对合法用户与Web应用间交互的逻辑表述。应用流量模型可自动“搜寻”整个应用系统,映射用户与网站间的互动流程或全部模式。除追踪流量模式外,可映射应用系统的能力远比之前为用户互动制定模型的方法更为精确。
积极和消极
为什么应用防火墙可以阻止未知的攻击呢?这和应用防火墙的工作原理有关。从安全产品对各种攻击的应对方法来说,安全产品的工作原理有两种:积极安全防御模型和消极安全防御模型。
积极安全防御
积极安全防御的原理是:对正常的网络行为建立模型,把所有通过安全设备的网络数据拿来和保存在模型内的正常模式相匹配,如果不是这个正常范围以内,那么就认为是攻击行为,对其作出处理。这样做的最大好处是可以阻挡未知攻击。对这种方式来说,建立一个安全的、有效的模型就可以对各种攻击作出反应了。具有代表性的产品有网络防火墙、应用防火墙。
一个简单的例子就是网路防火墙中的状态检测技术,管理员可以配置基于网络地址、端口和协议的允许访问的规则,只要不是这些允许的访问,都禁止访问。在防火墙运行过程中,根据允许访问的规则建立动态状态表项,只有符合这些合法状态表项的访问数据才允许通过防火墙,其他的所有访问都禁止通行。网络防火墙在网络层做到了积极安全防御。但是对于应用层数据,由于网络防火墙不理解,所以对于应用层的攻击,网络防火墙也是无能为力的。
应用防火墙也和网络防火墙一样,通过积极安全防御模型来防范攻击,但是最大的不同是应用防火墙建立的允许访问的规则是描述应用的,而不是描述网络地址、端口和协议号等网络层的信息。应用防火墙建立对应用描述的允许规则以后,对所有的应用层数据进行检查,判断是否是允许通过的应用层数据,如果不是,就禁止通行。这样的原理可以防护未知攻击,因为各种针对应用的攻击和未知的攻击都不包括在允许访问的应用层描述规则集中。