即使从最专业安全咨询的角度来讲,大家都在强调安全策略的重要性。单纯网络安全设备的部署,仅仅是安全的一个开端,只是添加了安全大厦的砖瓦,构筑了骨架而已。因为对于硬件设备的一味依赖和迷信,反而会造成安全审计上的松懈,甚至有人讲“一个具有部分安全的网络甚至还不如一个完全没有安全措施的网络”。安全审计如果不能说是网络策略中最重要的一部分的话,至少是必不可少的。
对于网络安全的核心设备——防火墙,目前的形式已经要求它提供更为强大和完善的审计功能,不能满足于以往那种单纯的日志记录了。现在要求防火墙系统,不仅提供对于正常业务的审计,比如数据流的审计,而且需要对于负载的审计,就是说需要对于应用层数据的审计提供更全面的解决方案;同时防火墙系统应该提供对于自身系统的审计,支持必要的审计分析软件或者自带审计分析软件,绝大多数的防火墙只是提供干巴巴的日志记录而没有任何分析的余地,这样的审计系统更像是“鸡肋”,对于用户而言,他并不关心防火墙让什么样的数据流经过,而只关心有什么样的不符合安全策略的数据在试图进/出网络。
说了半天的安全审计,那么究竟什么是审计呢?这是一个非常大的概念,很难下一个具体的定义,这样讲吧,凡是对于网络的脆弱性进行测试、评估和分析,以找到极佳途径在最大限度保障安全的基础上使得业务正常运行的一切行为和手段,都可以叫做安全审计。
对于安全审计,有许多现成的模式,更有林林总总的标准和模型, 什么比如ISO7498-2,BS7799,CC和P2DR模型等,但是结合防火墙来讲,我们并不想把事情弄得如此复杂。作为一个网络边界设备和通信的中介,我们试图从一个黑客攻击网络的角度来考虑,在这整个过程中防火墙的审计功能应当如何发挥作用。
(至于防火墙对自身系统的审计,我们在这里不做过多的赘述,因为作为一个完善的体系,对于自身业务处理进行日志,我们认为是必不可少却理所当然的功能。)
对于来自外部攻击的审计
黑客通过防火墙攻击内部服务器的一般步骤:
1.黑客选定受害者目标阶段的防火墙审计
大部分的黑客是在网络中盲目寻求目标的,因此任何系统都不能心存侥幸。防火墙系统应该能够记录所有外来的访问,并且能够安全地将时间、协议、访问源和访问目标以及流量等进行分类。
同时,防火墙的审计系统能够按照安全策略,对于特定的访问请求进行详细的记录。(如图)
2,黑客隐蔽真实地址阶段的防火墙审计
为了隐藏自己的真实IP,高级的黑客会找一个跳板,比如代理服务器。对此防火墙是无能为力的,一般的情况下,就是防火墙系统对于已知的代理服务器IP采用“黑名单”的方式进行阻断。
3, 黑客探测阶段的防火墙审计
内网对外提供公开的服务,因此不可避免地会受到黑客对于目标端口和系统漏洞的扫描。目前有许多优秀的扫描工具,比如Windows平台的ISS Internet Scanner,Retina和SSS,以及国内的Fluxay等,而Unix平台的Nmap和Satan也是功能强大的扫描工具。对于防火墙而言,可以进行严格的策略设置,从而有效避免大部分的扫描。但是对于特定模式的扫描,比如fin扫描(如nmap -sF)等隐蔽方式的扫描,许多防火墙是无法识别的。
防火墙的审计系统目前还不能做到像IDS那样的模式识别,但是应该具备起码的诊断功能,能够从频率来判断扫描事件。对于ping scan, tcp scan和udp scan等,防火墙需要内置识别模块并且采取有效措施。
优秀的防火墙审计系统,应该能够自动识别或者通过策略设置来判断扫描事件,并且采取相应的措施,比如报警、阻断或者日志记录等。
即使这样,对于开放的端口,黑客还是可以根据其特定的服务进行漏洞扫描,一般情况下,对于漏洞扫描防火墙也是无法判断的,只能在日志里面如实地记录,而无法进行进一步的分析。
不过,一般的端口扫描,会伴随着对于端口的洪水攻击,比如syn flooding,udp flooding等,对于这些DOS攻击,虽然无法从根本上防备,但是防火墙的审计系统是有足够能力进行自动识别并丢弃攻击包的。
4, 黑客渗透阶段的防火墙审计
黑客一旦锁定攻击目标,那么就会尝试使用各种攻击手段进行渗透。非法入侵的方法多不胜数,我们只就常见的方式来介绍防火墙的安全审计策略。
最常见的服务器攻击是针对web和ftp的,因此,针对这两项服务,防火墙的审计系统都应该有应用层数据的审计能力。
Web服务器的安全漏洞基本上集中于服务器自身的安全漏洞,无论是java,activeX控件,还是CGI脚本都是容易被攻击的对象。虽然目前大部分的防火墙都能通过应用层的内容过滤规则来设置一些对策,但是我们建议防火墙审计系统应该是自动识别一些知名的攻击的。举个例子,许多脚本小子喜欢利用IIS的Unicode漏洞,那么防火墙的审计系统就应该自动识别类似于/scripts/..%c1%1c../winnt/system32/cmd.exe?/这种格式的非法http请求,而自动将之丢弃。
另外一种可行的审计方式是,防火墙支持和IDS的联动,这样就可以对于更多的攻击类型进行有效的分析和判断。
对于ftp服务器的攻击,一个重要的部分就是密码的嗅探和暴力破解,而且ftp采用了双端口的服务模式,更为攻击提供了方便。防火墙的审计系统对于各个ftp命令能够进行有效审计,并且能够按照策略做到命令级的控制。
就攻击类型来讲,防火墙审计系统应该具备至少判断如下类型攻击的能力:欺骗攻击,会话劫持,DOS攻击。
DOS攻击的审计我们前面提过,对于欺骗攻击和会话劫持攻击而言,基于连接的状态包过滤防火墙容易审计,简单包过滤的防火墙在处理起来就有相当的难度。因为基于连接的话,就可以在一定程度上保证完整性和信任关系。
对于黑客渗透阶段的防火墙审计工作,情况是最为复杂的,一般防火墙可辨识的攻击类型很少,而对于那些针对系统漏洞进行的攻击,防火墙基本无法识别。此时防火墙审计所带来的安全性,更多地依赖于整体安全策略的设定。
5, 黑客控制阶段的防火墙审计
一旦黑客的攻击得逞,那么防火墙的审计工作就显得尤为重要。因为只有通过有效的审计,才能知道黑客是通过什么途径来入侵并成功的。这时候防火墙的日志分析就是最关键的工作,高级的黑客一般都会从入侵系统中将自己的入侵记录删除,所以应用系统的日志一旦破坏,那么就只有依赖防火墙的记录了。
通过日志分析,获取时间、地址、协议和流量等信息,就可以有效判断网络是否开放了不必要的服务和端口,黑客是否可能利用了系统漏洞等等。
这样就有助于增强整个网络的安全性,并且有助于制定更为严格的安全策略。
对于来自内部攻击的审计
对于来自内部的攻击防火墙能作的工作很少,特别是内部那些不经过防火墙的攻击。不过防火墙可以有效阻止从内部发出的攻击,这样起码可以保证自己的服务器不会成为DDOS攻击的傀儡机。
然而,遗憾的是,大部分的安全策略设定是对于内部的数据不进行审计,而大部分的防火墙的审计系统是与访问的方向相联系的。因此目前的情况是,对于来自内部的攻击许多防火墙都无法审计,如果我们把类似Nimda、Melissa的病毒或蠕虫也当作一种攻击的话,基本上所有单独的防火墙系统最多能做的也就是按照策略进行日志记录。
防火墙的审计系统,日志是其重要组件,随着访问量的不断增大,审计数据库的管理也成为一个突出的问题。一些硬件防火墙采用Flash memory的形式,那么就会产生空间问题,因此网络日志已经成为一个趋势。
另外,由于大部分的防火墙自身不带有日志分析系统,因此是否能和专业的日志分析软件支持也将会是未来防火墙审计系统需要解决的一个问题。
因为国内的大部分的防火墙是基于linux系统的,我们建议防火墙审计系统对于Syslog的支持,这样也更有利于防火墙审计系统对于类似于WebTrends Log Analyzer这样的日志分析软件协同工作。
网络安全是一个庞大而复杂的体系,防火墙提供了基本的安全保障,但是一个不断完善的系统却需要借助于审计系统,这样才能找到一种动态的平衡。