虽然近年来兴起了统一威胁管理等一体化的安全设备,但防火墙仍是许多单位的基本安全设备之一,那么,你的防火墙是否固若金汤呢?本文笔者将介绍审计或测试防火墙的概念。
首先,我们需要定义防火墙。防火墙是一个能够根据一套规则来控制两个网络之间的通信流的应用程序、设备、系统,也可能是具备这种功能的一组系统,它可以保护系统免受外部的及内部的威胁,将私有网络的敏感部分与不太敏感的区域分离开来,可以对传输敏感数据的内部网络或外部网络实施加密(在用作一个VPN端点时),或者将内部网络地址从外部网络中隐藏开来(网络地址转换)。防火墙获得边界路由器放行的通信,并进行彻底地通信过滤。防火墙有不同的类型,包括静态的数据包过滤器(例如,北电的Accelar路由器),正式防火墙(例如,思科的PIX)及代理防火墙等。
与路由器类似,防火墙使用多种过滤技术或方法来确保安全。这些方法包括数据包过滤、状态检测、代理或应用程序网关、深度数据检测。防火墙能够使用其中的一种方法,或者它可以将不同的方法组合起来形成恰当的强健配置。
测试防火墙的一种很好的方法是从防火墙的责任人那里收集信息。这些人可以是审计团队、系统管理员、网络管理员、策略团队、信息安全人员中的成员。其中的要点是要收集、比较每一个人关于防火墙应当具有的功能的理解,以及防火墙应当怎样配置才能满足网络和系统的要求。要获取任何现存的防火墙文档资料和网络图表,用以验证从被采访人那里获得的信息。理想情况下,防火墙是一种被设置来反映策略的控制机制。这就意味着在配置防火墙之前,必须首先建立相关的策略。可悲的是,很少有单位这样做。
在收集了上述的信息之后,审计人员可以进一步理解防火墙的架构,并决定防火墙是否正确地进行了配置,能够正确地对网络进行分段并实施信息保护。下一步是评估操作系统的配置。这就是防火墙自身的配置,所有的防火墙都拥有一个操作系统。有的厂商宣称防火墙只不过一个设备。其实,防火墙典型情况下只不过是一个被强化的操作系统。事实上,此设备可运行在一个精简的Unix系统上,或者是运行在一个被厂方定制的操作系统上,如思科的ASA。防火墙和路由器都是软件驱动的,其所做的工作就是使得代码更难于被看到。
下一步,务必保障系统管理员遵循最佳的方法:用户管理、补丁更新、改变控制、配置备份等。如果防火墙不打补丁,它最终会被损害。原因就在于它是一个安全设备,它并不会自动实现安全性。
最后一点,要验证防火墙的规则库与单位的规则和策略相匹配。
测试防火墙应当与测试单位的深度防御方法的其它组件协调起来,单位不应当仅依靠单独一种防御。防火墙并不是可以防治所有安全疾病的万能药。其主要目的是延缓攻击和记录活动。
测试或审计防火墙的总体结果包括:任何安全漏洞的确认、防火墙是否根据公司的安全策略完成其功能。还要评估防火墙的安装、配置、操作是否足够安全,是否可以保护防火墙需要保护的信息或服务。要考虑被确认的风险及其发生的可能性。
操作系统的配置
在审计防火墙时,审计人员必须看一看防火墙赖以运行的平台或操作系统。
审计人员需要检查支持防火墙运行的操作系统是否仅包含了可让防火墙发挥功能的最少功能或服务。防火墙应当是一个专注于一种目的的隔离系统,根据所定义的规则过滤通信。安装得越简单,其管理也就越简单。功能越少,也就等于需要更少的补丁和更少的漏洞。
许多操作系统都有大量的工具可用于决定系统开放了哪些端口。这里列示了一个例子,针对于Windows操作系统:
Netstat -a
而在类Unix操作系统中,可运行下面的命令:
lsof –I或netstat –a或 ps –aef
在决定开放的端口和服务时,应当关闭防火墙(禁用或运行准许所有通信的策略)。这样做的目的是为了测试那些针对特定操作系统的端口和服务。在这一点上,在一个安全网络上执行此操作并且不要将防火墙连接到互联网是很重要的。记住,在种模式中,防火墙是一个路由器。
此外,还应当分析安全设置和操作系统的漏洞。每一种操作系统都包括了一套安全特性和漏洞,不同的厂商互有不同。例如,在安装期间,操作系统的默认安全设置可能没有修改,而这种安全设置有可能无法满足安全策略所要求的安全水平。可以评估的最常见的安全设置包括访问规则、口令规则、登录规则等。还应当确认其它操作系统的设置和参数。
防火墙配置
在讨论了防火墙平台的操作系统后,下一步就是要验证防火墙的配置。所有的防火墙都有配置及策略,二者不应当混淆。配置是与防火墙软件及其安装相关的基本设置的集合。对防火墙配置的改变将会改变防火墙的行为。
审计人员必须检查防火墙是否位于一个专用的隔离系统上,过滤数据包并要记录。例如,DNS、电子邮件、服务器负载均衡不应当安装在同一台主机上或由防火墙平台处理。这里,唯一的例外是防火墙的负载均衡是高可能性防火墙的一个功能,并应当准许之。
因为防火墙的基本目的是为了管理两个网络之间的信息流,审计人员必须通过查看防火墙的配置来观察其实现这种功能的方法。我们需要验证防火墙准许通过的通信是否与安全策略保持一致。后文将讨论测试规则库的问题,不过需要考虑以下的关键问题:
防火墙的访问规则(身份验证、授权等)与安全策略和最佳方法保持一致。
为了管理和维护,使用一个加密通道访问防火墙系统。
对设备的物理访问受到限制。
对防火墙进行配置,向外部网络隐藏内部的受限DNS信息。
外部防火墙限制进入的SNMP请求。
防火墙向外部源隐藏内部信息。
配置防火墙拒绝所有的服务,除非明确准许。
安全相关的补丁被运用到防火墙系统。
正确地备份配置设置,并仅给被授权的人员访问。
下图1描述了一个防火墙标准规则库的一个实例。在此例中,标准的策略详细地描述了默认的设置。
图1
与Firewall Builder协同工作
Firewall Builder是一个通用公共许可证软件包,其设置目的是为了帮助管理员配置防火墙。当前的版本支持许多防火墙平台,如FireWall Services Module (FWSM),ipfi lter,ipfw,iptables,PF,Cisco Private Internet Exchange (PIX)等,还有大量的其它平台,如FreeBSD,Cisco FWSM,Linksys/Sveasoft,GNU/Linux (kernel 2.4 and 2.6),Mac OS X,OpenBSD,Solaris等。
在设置的标准的策略之后,管理员们需要作出的下一个决定是定义防火墙的接口,然后是每一个接口的配置。一个防火墙通常拥有的接口包括外部接口(不可信任的)和内部接口(可信任的)。因此,测试防火墙包括测试防火墙每一个接口的配置,以验证其与单位的防火墙策略的一致性。