网络防火墙在安全防护中,起到及其重要的作用,但是我们,也应该看到它的不足之处。如今,知识渊博的黑客,均能利用网络防火墙开放的端口,巧妙躲过网络防火墙的监测,直接针对目标应用程序。他们想出复杂的攻击方法,能够绕过传统网络防火墙。据专家统计,目前70%的攻击是发生在应用层,而不是网络层。对于这类攻击,传统网络防火墙的防护效果,并不太理想。
如果你正在部署一个关键的门户网站,希望所有的网络层和应用层的漏洞都被屏蔽在应用程序之外。这个需求,对于传统的网络防火墙而言,是个大问题。
由于网络防火墙对于加密的SSL流中的数据是不可见的,防火墙无法迅速截获SSL数据流并对其解密,因此没办法阻止应用程序的攻击,甚至有些网络防火墙,根本就不提供数据解密的功能。
网络防火墙无法看到的,不单单是SSL加密的数据。对于应用程序加密的数据,同样也不可见。在如今大多数网络防火墙中,依赖的是静态的特征库,与入侵监测系统(IDS,Intrusion Detect System)的原理类似。只有当应用层攻击行为的特征与防火墙中的数据库中已有的特征完全匹配时,防火墙才能识别和截获攻击数据。
但如今,采用常见的编码技术,就能够地将恶意代码和其他攻击命令隐藏起来,转换成某种形式,既能欺骗前端的网络安全系统,又能够在后台服务器中执行。这种加密后的攻击代码,只要与防火墙规则库中的规则不一样,就能够躲过网络防火墙,成功避开特征匹配。
网络防火墙于1990年发明,而商用的Web服务器,则在一年以后才面世。基于状态检测的防火墙,其设计原理,是基于网络层TCP和IP地址,来设置与加强状态访问控制列表(ACLs,Access Control Lists)。在这一方面,网络防火墙表现确实十分出色。
近年来,实际应用过程中,HTTP是主要的传输协议。主流的平台供应商与大的应用程序供应商,均已转移到基于Web的体系结构,安全防护的目标,不再只是重要的业务数据。网络防火墙的防护范围,发生了变化。
对于常规的企业局域网的防范,通用的网络防火墙仍占有很高的市场占有率,继续发挥及其重要的作用,但对于新近出现的上层协议,如XML和SOAP等应用的防范,网络防火墙就显得有些力不从心。
由于体系结构的原因,即使是最先进的网络防火墙,在防范Web应用程序时,由于无法全面控制网络、应用程序和数据流,也无法截获应用层的攻击。由于对于整体的应用数据流,缺乏完整的、基于会话(Session)级别的监控能力,因此很难预防新的未知的攻击。
在这样动态复杂的环境中,安全专家们需要采用灵活的、粗粒度的方法,实施有效的防护策略。
虽然一些先进的网络防火墙供应商,提出了应用防护的特性,但只适用于简单的环境中。细看就会发现,对于实际的企业应用来说,这些特征存在着局限性。在多数情况下,弹性概念(proof-of-concept)的特征无法应用于真实的生活中的数据中心上。
比如,有些防火墙供应商,曾经声称能够阻止缓存溢出:当黑客在浏览器的URL中输入太长数据,试图使后台服务崩溃或使试图非法访问的时候,网络防火墙能够检测并制止这种情况。
细看就会发现,这些供应商采用对80端口数据流中,针对URL长度来控制的方法,来实现这个功能的。
如果使用这个规则,将对所有的应用程序生效。如果一个程序或者是一个简单的Web网页,确实需要涉及到很长的URL时,就要屏蔽该规则。
网络防火墙的体系结构,决定了网络防火墙是针对网络端口和网络层做相关操作的,因此很难对应用层进行防护,除非是一些很简单的应用程序。
基于状态检测的网络防火墙,如果希望只扩展深度检验测试(deep inspection)功能,而没有相应增加网络性能,这是不行的。
真正的针对所有网络和应用程序流量的深度检测功能,需要空前的解决能力,来完成大量的计算任务,包括以下几个方面:
这些任务,在基于标准PC硬件上,是无法高效运行的,虽然一些网络防火墙供应商采用的是基于ASIC的平台,但进一步研究,就能发现:旧的基于网络的ASIC平台对于新的深度检验测试功能是无法支持的。
应用层受到攻击的概率慢慢的变大,而传统网络防火墙在这方面有存在着不足之处。对此,少数防火墙供应商也开始意识到应用层的威胁,在防火墙产品上增加了一些弹性概念(Proof-Of-Concept)的特征,试图防范这些威胁。传统的网络防火墙对于应用安全的防范上效果不佳,对于上述列出的五大不足之处,将来需要在网络层和应用层加强防范。