应该怎么去做?
“建立一个测试计划”
你需要在做一个计划,让系统本身去测试防火墙系统与策略的执行情况,然后测试系统的执行情况。
1建立一个所有可替代的系统组件的列表,用来记录一些会导致防火墙系统出错的敏感故障。
2为每一个组件建立一个简短的特征说明列表列表,用语阐述其对防火墙系统运作的影响。不必理会这些影响对防火墙系统的损害类型与程度和其可能发生的系数高低。
3为每一个关联的故障类型
-设计一个特定的情况或某个指标去模拟它
-设计一个缓冲方案去削弱它对系统的冲击性破坏
打比方一个测试的特定情况是运行防火墙软件的主机系统出现不可替换的硬件问题时,且这个硬件将会影响到信息通信的枢纽问题,例如网络适配器损坏,模仿这类型的故障可以简单地拔出该网络接口。至于防御/恢复策略的例子可以是做好一整套的后备防火墙系统。当信息包出现延误等问题时在最短的时间内将机器替换。
测试一个策略在系统中的运作情况是很困难的。用尽方法去测试IP包过滤设置是不可行的;这样可能出现很多种情况。我们推崇你使用分界测试(分部测试)来取代总体测试。在这些测试上,你必须确定你实施的包过滤规则与每个分块之间的分界线。这样你需要做到:
·为每个规则定义一个边界规则。通常,每个规则的必要参数都会有一个或两个边界点的。在这个区域里将会被划分为一个多面型的包特征区。通常划分的特征包括:通信协议、源地址、目标地址、源端口、目标端口等。基本上,每种包特征都可以独立地去配对包过滤规则在区域里所定义的数值尺度。例如,其中一个规则允许TCP包从任何主机发送到你的WEB服务器的80端口,这个例子使用了三个配对特征(协议、目标地址、目标端口),在这个实例中也将一个特征区划分成三个区域:TCP包到WEB服务器低于80端口、等于80端口、大于80端口。
·你必须为每一个已经设置好的区域做一些信息交换的测试。确认一下这些特定的区域能否正常地通过与拒绝所有的信息交换。做一个单独的区域,在区域中拒绝或者通过所有的信息交换;这样做的目的是为了划分包特征通信的区域问题。作为一个综合性的规则群,它可以是一种比较单一的处理机制,并且有可能是没有被应用过的。若是没有被应用过的规则群,这要求一群人去反复审核它们的存在性并要求有人能够说出每一个规则所需要实施的意义。整个测试计划包括案例测试、配置测试、与期待目标:
·测试路由配置、包过滤规则(包括特殊服务的测试)、日志功能与警报
·测试防火墙系统整体性能(例如硬/软件故障恢复、足够的日志存储容量、日志档案的容错性、监视追踪器的性能问题)
·尝试在正常或不正常这两种情况下进行的测试同样你也需要记录你在测试中打算使用的工具(扫描器、监测器、还有漏洞/攻击探测工具),并且相应地测试一下它们的性能。
“获取测试工具”
逐步使用你的各种防火墙测试工具能够知道你的防火墙产品在各类性能指标上是否存在着不足各种类型的防火墙测试工具包括①:
·网络通信包生成器(如SPAK[Send PAcKets]、ipsend、Ballista)
·网络监视器(如tcpdump与Network Monitor)
·端口扫描器(如strobe与nmap)
·漏洞探测器(可以扫描到一定的有效范围、能针对多种漏洞的)
·入侵测试系统[IDS]如NFR②[Network Flight Recorder]与Shadow③
查阅相关信息可以看Detecting Signs of Intrusion[Allen 00],特定的实践可以参阅"Identifydatathatcharacterize systems and aid in detecting signs of suspicious behavior"、建议书在"Identify tools that aid in detecting signs of intrusion"。