【推荐】防火墙安全及效能分析
网络防火墙早已是一般企业用来保护企业网络安全的主要机制。然而,企业网络的整体安全涉及的层面相当广,防火墙不仅无法解决所有的安全问题,防火墙所使用的控制技术、自身的安全保护能力、网络结构、安全策略等因素都会影响企业网络的安全性。
在众多影响防火墙安全性能的因素中,有些是管理人员可以控制的,但是有些却是在选择了防火墙之后便无法改变的特性,其中一个很关键的就是防火墙所使用的存取控制技术。目前防火墙的控制技术大概可分为:封包过滤型(Packet Filter)、封包检验型(Stateful Inspection Packet Filter)以及应用层闸通道型(Application Gateway)。这三种技术分别在安全性或效能上有其特点,不过一般人往往只注意防火墙的效能而忽略了安全性与效率之间的冲突。本文针对防火墙这三种技术进行说明,并比较各种方式的特色以及可能带来的安全风险或效能损失。
封包过滤型:封包过滤型的控制方式会检查所有进出防火墙的封包标头内容,如对来源及目地IP、使用协定、TCP或UDP的Port 等信息进行控制管理。现在的路由器、Switch Router以及某些操作系统已经具有用Packet Filter控制的能力。封包过滤型控制方式最大的好处是效率高,但却有几个严重缺点:管理复杂,无法对连线作完全的控制,规则设置的先后顺序会严重影响结果,不易维护以及记录功能少。
封包检验型:封包检验型的控制机制是通过一个检验模组对封包中的各个层次做检验。封包检验型可谓是封包过滤型的加强版,目的是增加封包过滤型的安全性,增加控制“连线”的能力。但由于封包检验的主要检查对象仍是个别的封包,不同的封包检验方式可能会产生极大的差异。其检查的层面越广将会越安全,但其相对效能也越低。
封包检验型防火墙在检查不完全的情况下,可能会造成问题。去年被公布的有关Firewall-1的Fast Mode TCP Fragment的安全弱点就是其中一例。这个为了增加效能的设计反而成了安全弱点。
应用层闸通道型:应用层闸通道型的防火墙采用将连线动作拦截,由一个特殊的代理程序来处理两端间的连线的方式,并分析其连线内容是否符合应用协定的标准。这种方式的控制机制可以从头到尾有效地控制整个连线的动作,而不会被client端或server端欺骗,在管理上也不会像封包过滤型那么复杂。但必须针对每一种应用写一个专属的代理程序,或用一个一般用途的代理程序来处理大部分连线。这种运作方式是最安全的方式,但也是效能最低的一种方式。
防火墙是为保护安全性而设计的,安全应是其主要考虑。因此,与其一味地要求效能,不如去思考如何在不影响效能的情况下提供最大的安全保护。
上述三种运作方式虽然在效能上有所区别,但我们在评估效能的同时,必须考虑这种效能的差异是否会对实际运作造成影响。事实上,对大部份仍在使用T1以下或未来的xDSL等数Mbps的“宽带”网而言,即便是使用Application Gateway也不会真正影响网络的使用效能。在这种应用环境下,防火墙的效能不应该是考虑的重点。但是,当防火墙是架在企业网络的不同部门之间时,企业就必须考虑这种效能上的牺牲是否可以接受。