
| 出版日期:2002-11-25 总期号:1171 本年期号:88 |
|
防火墙“易控”更“易用”
应用流过滤技术 王虎 从简单包过滤型到应用代理型,防火墙经历了两个极端,功能上却总是顾此失彼。 东软集团的NetEye防火墙在其3.0的版本中实现了一种称之为“流过滤”的结构,它以状态包过滤的形态实现应用层的保护能力—— 用户在选择防火墙产品的时候,大多数的IT主管都有过被不同的防火墙厂商围追堵截的经历,那么面对一群群销售人员滔滔不绝的讲解和办公桌上一摞摞的技术白皮书,如何才能把防火墙市场看清呢? 首先,注意自己鉴别能力的提升是最重要的和最根本的,只有用户自己具有“一双慧眼”,才能真正做到“去粗存精,择优录用”。在选择防火墙产品的时候,笔者认为首先需要考虑的是防火墙厂商的技术实力和产品的核心体系架构。这些因素是一个产品最本质的东西,是产品能否具有良好品质的保证。防火墙最重要的作用就是在网络边界实现保护作用,保护能力与防火墙体系结构和运行机制有直接的关系,历史上每一次体系结构上的演变都会带来防火墙功能的质的飞跃。 在防火墙产品的核心体系架构方面,不同厂商的防火墙产品的确存在不同,而且有时差异性还很大,正是这些差异导致了防火墙产品在健壮性、可靠性以及性能上的大幅差异,但是由于产品的核心技术架构是一个比较抽象的概念,并不直观,因此很多用户并不是十分重视。 防火墙的核心体系架构发展历经了简单包过滤、应用代理和状态检测等技术。这些技术各有优缺点。目前对于这些技术的描述的文章随处可见,在此就不进行详细阐述,而是根据笔者的经验进行一个总结。 包过滤技术关注的是网络层和传输层的保护,而应用代理则更关心应用层的保护。 简单包过滤型(Packet Filter)的防火墙具有如下优点:性能比较好和对应用的透明性。但是它同时具有安全性较差的缺点。
图一 混合性防火墙核心模块示意图 简单包过滤是对单个包的检查,目前绝大多数路由器产品都提供这样的功能。由于这类技术不能跟踪TCP的状态,所以对TCP层的控制是有漏洞的,比如当你在这样的产品上配置了仅允许从内到外的TCP访问时,一些以TCP应答包的形式进行的攻击仍然可以从外部透过防火墙对内部的系统进行攻击。简单包过滤的产品由于其保护的不完善,1999年开始已经很少在主流产品中出现了。 基于以上分析,简单包过滤的防火墙是迄今为止防火墙中安全性极差的防火墙产品,在一些重要领域和行业,应该坚决抵制使用这种体系架构的防火墙产品。据说美国国防部已经明令禁止在国防网内使用这种体系架构的防火墙产品。遗憾的是国内还有大量的防火墙采用了这种技术,同时,国内对防火墙的使用还没有类似的限制措施。 经历了简单包过滤防火墙后,防火墙的发展又走到了另一个极端:应用网关型(Application Gateway)的防火墙,也可称之为应用代理型。这种防火墙具有极高的安全性,但是,这种高安全性是以牺牲产品的性能和对应用的透明性为代价来得到的。
图二 流过滤内部结构示意图 应用代理防火墙可以说就是为防范应用层攻击而设计的。应用代理也算是一个历史比较长的技术,通常的表现形式是一组代理的集合。代理的原理是彻底隔断两端的直接通信,所有通信都必须经应用层的代理转发,访问者任何时候都不能与服务器建立直接的TCP连接,应用层的协议会话过程必须符合代理的安全策略的要求。针对各种应用协议的代理防火墙提供了丰富的应用层的控制能力。断掉所有的连接,由防火墙重新建立连接,使应用代理型防火墙具有了极高的安全性,但是先天的不足——利用操作系统本身的socket接口——直接导致代理型防火墙性能比较差,不能支持大规模的并发连接;另外对于代理型防火墙要求防火墙核心预先内置一些已知应用程序的代理后防火墙才能正常工作,这样的后果是一些新出现的应用在代理型防火墙上被无情的阻断,出现了防火墙不支持很多新型应用的局面。在IT领域中,新的应用和新的技术不断出现,甚至每一天都有新的应用方式和新的协议出现,代理型防火墙很难适应这种局面,导致在一些重要的领域和行业的核心业务应用中,代理型防火墙被渐渐地抛弃了。 但是代理型防火墙对于那些应用比较单一(比如仅仅访问WWW站点等),同时又对性能不是很苛刻的中小企业内部网中,还是有一定的市场的。同时代理型防火墙一般还具有Cache的功能。 在业界优秀防火墙厂商Check Point公司推动下,产生了新型的一代防火墙核心架构——状态检测型(Stateful Inspection)防火墙。这种防火墙基本是在简单包过滤型防火墙的架构之上的一种改进,究其根本,还是属于包过滤型的防火墙。 状态检测的包过滤利用状态表跟踪每一个网络会话的状态,对每一个包的检查不仅根据规则表,更考虑了数据包是否符合会话所处的状态。因而提供了更完整的对传输层的控制能力。同时由于一系列优化技术的采用,状态检测包过滤的性能也明显优于简单包过滤产品,尤其是在一些规则复杂的大型网络上。 状态检测型防火墙基本保持了简单包过滤防火墙的优点,性能比较好,同时对应用是透明的,在此基础上,对于安全性有了大幅提升。这种防火墙摒弃了简单包过滤防火墙仅仅考察进出网络的数据包,不关心数据包状态的缺点,在防火墙的核心部分建立状态连接表,维护了连接,将进出网络的数据当成一个个的Session来处理。可以这样说,状态检测包过滤防火墙规范了网络层和传输层行为,而应用代理型防火墙则是规范了特定的应用协议上的行为。
目前业界很多优秀的防火墙产品采用了状态检测型的体系结构,比如Check Point的Firewall-1,Cisco的PIX防火墙,NetScreen防火墙等等。在2000年2月份,以东软集团研制生产的NetEye2.0防火墙发布为标志,国内开始出现采用这种体系结构的商用防火墙产品。 状态检测包过滤和应用代理这两种技术目前仍然是防火墙市场中普遍采用的主流技术,但两种技术正在形成一种融合的趋势。现在,又出现了一些防火墙厂商,声称是实现了一种混合性的防火墙,其防火墙的核心是集成了应用代理的模块和状态检测的模块。这种防火墙的核心模块如图1所示。 混合型防火墙具有很多的优点,但也具有一些缺点: 1.应用代理模块和状态检测模块罗列,导致规则并行,一个数据包要么走应用代理的模块,要么走状态检测的模块; 2.只要提供应用代理,那么必然要向外界提供一个IP和端口,这样防火墙是无法工作在透明模式下的; 3.只要提供了应用代理,那么防火墙的性能就一定下降非常大。 发展到现在,防火墙的核心技术似乎没有再发展下去的空间了。然而用户的需求永远是推动技术前进的源动力。随着新的攻击手段的不断出现,以及防火墙在用户的核心业务系统中占据的越来越重要的地位,用户对防火墙的要求越来越高。 用户要求防火墙提供更细粒度的访问控制手段;对新出现的漏洞和攻击方式能够迅速提供有效的防御办法;要求防火墙的管理更加容易和方便,减少配置所产生的安全误区;要求在紧急情况下可以做到迅速响应;要求具有很好的性能和稳定性。 为了更好地满足用户不断增长的对防火墙的功能和性能的要求,东软集团研制的NetEye防火墙在其3.0的版本中以状态检测包过滤为基础实现了一种称之为“流过滤”的结构,其基本的原理是以状态包过滤的形态实现应用层的保护能力。通过内嵌的专门实现的TCP协议栈,在状态检测包过滤的基础上实现了透明的应用信息过滤机制。在这种机制下,从防火墙外部看,仍然是包过滤的形态,工作在链路层或IP层,在规则允许下,两端可以直接的访问,但是对于任何一个被规则允许的访问在防火墙内部都存在两个完全独立的TCP会话,数据是以“流”的方式从一个会话流向另一个会话,由于防火墙的应用层策略位于流的中间,因此可以在任何时候代替服务器或客户端参与应用层的会话,从而起到了与应用代理防火墙相同的控制能力。比如在NetEye防火墙对SMTP协议的处理中,系统可以在透明网桥的模式下实现完全的对邮件的存储转发,并实现丰富的对SMTP协议的各种攻击的防范功能。 流过滤的结构继承了包过滤防火墙的应用透明的特点,因而非常容易部署,而其安全保护能力则达到甚至超过了代理结构的产品。并且由于应用层安全策略与网络层安全策略是紧密衔接的,所以在任何一种部署方式下,都能够起到相同的保护作用。 流过滤的另一个优势在于性能,完全为过滤和转发目的而重新实现的TCP协议栈相对于以自身服务为目的的操作系统中的TCP协议栈来说,消耗资源更少而且更加高效,如果你需要一个能够支持几千个,甚至数万个并发访问,同时又有相当于代理的应用层防护能力的防火墙系统,流过滤结构几乎是唯一的选择。 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||