工业控制网络中的防火墙
2014-05-29罗克韦尔自动化中国有限公司华镕
罗克韦尔自动化(中国)有限公司 华镕
什么是防火墙?
防火墙是一种机制,用于控制和监视网络上来往的信息流,目的是保护网络上的设备。流过的信息要与预定义的安全标准或政策进行比较,丢弃不符合政策要求的信息。实际上,它是一个过滤器,阻止了不必要的网络流量,限制了受保护网络与其它网络(如因特网,或站点网络的另一部分)之间通信的数量和类型。下图显示了一个简单的防火墙,禁止来自因特网对个人计算机(PC)和可编程逻辑控制器(PLC)的访问,但允许对企业Web服务器的访问。
图1 一个简化的防火墙举例
防火墙类型
防火墙具有很多不同的设计和配置。它可以是一个连接到网络的单独物理硬件设备(如思科的PIX®或赛门铁克的安全网关防火墙),可以是一个带有操作系统和防火墙功能(如运行在Linux®服务器上的“iptables”)的硬件/软件单元,甚至可以是一个完全基于主机的软件解决方案,即直接在工作站上安装防火墙软件(如诺顿的个人防火墙®或Sygate的个人防火墙)。
独立的硬件或硬件/软件单元通常被称为网络防火墙,通常是最安全的解决方案,把企业网络与工业自动化控制网络(IACN)分开。它们是专用的功能单元,除了个别例外,加固后可以抵挡一切攻击。此外,网络防火墙通常提供最佳的管理选项,因此通常允许对它们进行远程管理。
基于主机的防火墙通常能够接受某些妥协,因为主机的主要功能不是安保,通常要完成一些工作站或服务器的任务,例如数据库访问或Web服务。
同时,基于主机的防火墙解决方案目前仅适用于Windows或基于Unix的平台,只能为网络上的嵌入式控制设备(如PLC)做一定的流量管理。基于主机的防火墙可以放置在IACN / 监控与数采(SCADA)网络上,但它们通常在我们今天要考虑的范围之外。因此,除少数情况外,本文假定IACN / SCADA防火墙是一个专用的硬件或硬件/软件解决方案,通过一系列规则,对传送到控制网络信息流实施允许或拒绝。
防火墙分类
网络使用离散的位组发送数据,通常把一定数量的位组称为数据包。每个数据包通常包含若干个独立的信息,包括(但不限于)的项目有:
• 发件人的身份(源地址);
• 收件人的身份(目的地址);
• 包涉及的服务(端口号);
• 网络操作和状态标志;
• 把数据的有效载荷传递到该服务。
接收一个数据包时,防火墙对包的这些特征进行分析,并决定对这个包采取什么行动。可以选择丢弃该包、允许立即通过、因带宽限制而暂时缓存,或转发给不同的收件人–应按照网络安全策略采取适当的行动。
这些决定都基于一系列的规则,该规则通常被称为访问控制列表(ACL)。防火墙具有不同的类型,每种类型都具有复杂的分析和行动能力。下面给予分别介绍。
(1)包过滤防火墙
最简单一类的防火墙被称为包过滤防火墙。它具有一系列的静态规则,对收到的报文按规则采取行动。下面的示例表明了包过滤防火墙是如何按规则处理数据包的:
• 在用户数据报协议(UDP)端口53上接受域名服务(DNS)响应数据包;
• 阻止因特网协议(IP)地址为24.116.25.21的任何数据;
• 通过阻断传输访问控制协议(TCP)端口80、443、3128、8000和8080传出的数据包以阻止网上冲浪,除非他们指向企业内部网Web服务器的IP地址;
• 丢弃源路由包;
• 接受来自特定IP地址范围的工程操作站,通过TCP端口23远程登录(telnet)到一个特定的分布式控制系统(DCS)IP地址的数据。
不幸的是,包过滤防火墙缺乏理解一系列数据包之间关系的能力。例如,广泛适用的规则“接受UDP端口53上的DNS响应数据包”包含一个严重的缺陷。如果DNS没有发过查询,而用一个伪造的DNS“响应”包来代替呢?这个简单的防火墙会接受这个数据包,并提供给“请求”主机,这可能会带来麻烦。比较狡猾的黑客会利用防火墙的这些弱点潜入内部系统。
包过滤防火墙的优点具有:成本低廉且对网络性能影响较小,因为只检查数据包中的IP地址和端口号。这种方法有时也称为静态过滤。它往往是直接部署在交换机或路由器的第3层,而不是专用的“防火墙”。
(2)状态防火墙
这是一种更复杂的防火墙,具有智能跟踪流经的数据包,以及了解他们之间的相互关系。因为具有接收包的历史和当前连接的状态,它只能接收“预期”的数据包。由于防火墙是智能的,所以有条件制定状态防火墙的规则集。例如:
• 只有当发出的DNS查询与相同的DNS请求标识相匹配时,才接收UDP端口53上的DNS响应数据包。
• 仅在控制通道协商成功后,才允许文件传输协议(FTP)通道传输数据。
• 阻止所有源自TCP端口80传入的网络数据,除非他是专门针对先前传出的超文本传输协议(HTTP)的请求。
这种类型的防火墙提供了一种高层次的安保和性能,以及对最终用户的透明度,但价格比较昂贵。由于它的复杂性,如果没有相关资质的人员管理,这类防火墙可以比简单类型的防火墙更不安保。这种方法有时也称为动态包过滤。
(3)应用代理防火墙
应用代理防火墙在应用层打开数据包,按照特定的应用规则来处理他们,然后重新组装,转发到所需的目标设备。通常,它们被设计成针对于各种应用协议(如Telnet、FTP、HTTP等)的单一机器,随后转发到各个主机计算机完成各项服务。客户端不直接连接外部服务器,而是连接代理防火墙,需要时由代理防火墙发起连接外部服务器的请求。有些代理防火墙,支持配置内部客户端自动执行这种重定向,且不用用户知道。有些人可能会要求用户直接连接代理服务器,然后通过指定的格式发起连接。
代理防火墙提供了一些重要的安保特性,例如防火墙可以识别和控制有些应用协议。它可以对应用协议使用访问控制列表,在要求用户或系统授权访问之前提供额外的验证。此外,可以创建规则集,用于理解特定的协议,可以仅为阻止协议子集进行配置。例如,可以创建这样的HTTP防火墙规则:阻止所有含脚本的HTTP数据包入站。相比之下,过滤路由器要么阻止所有的HTTP数据,要么不阻止,而不是阻止一个子集。
这种类型的防火墙可以提供一个高水平的安保,但也明显影响了网络性能。此外,大部分应用代理防火墙产品只支持几种常见的因特网协议,如HTTP、FTP或简单邮件传输协议(SMTP)。其结果是,对含有工业应用层协议的报文,如公共工业协议®(CIP)或Modbus / TCP®,需要在防火墙状态或包过滤模式中增加对工业应用层协议的数据处理。
在过去的几年中,市场上出现了很多利用状态与应用代理技术组合的防火墙,他们通常被称为混合型防火墙。
(4)深度包检测防火墙
防火墙市场目前已经迁移到了第四代技术,被称为“深度包检测”(DPI)或“应用防火墙”。比起传统的应用代理,它通常提供更深入的应用层过滤,但不执行完整的TCP连接代理。例如,DPI防火墙能够用可扩展标记语言(XML)在Web连接上检查简单对象访问协议(SOAP)的对象,实施允许/禁止什么对象进入网络的政策。
其他防火墙服务
除了数据包过滤的核心服务,现代的防火墙还提供其他基于网络的安保服务。这些服务可能包括:
(1)执行像入侵检测系统(IDS)的功能,可以记录被拒绝访问的数据包,识别专门导致网络问题的数据包,或报告异常的信息流。
(2)在防火墙上部署“一线”的防病毒软件。如果发现有感染数据的特征,这种数据在进入网络前就被阻止。
(3)身份验证服务,要求用户连接到防火墙另一侧的设备使用密码或强大的验证方法(如公共密钥加密)通过防火墙验证。
(4)虚拟专用网(VPN)网关服务,在防火墙和远程主机设备之间建立一个加密的隧道。
(5)网络地址转换(NAT),在防火墙一侧的一组IP地址映射到另一侧不同的一组地址。
这些额外的服务将依赖于购买的防火墙的品牌和型号。显然,这些附加功能可能意味着额外的成本,增加了配置的复杂性并降低了网络的性能。然而,利用了这些功能,往往能显着提高IACN / SCADA网络的整体安保性能。