3.2 工业防火墙技术
目前,工业控制系统防火墙技术虽然比较成熟,但也存在一些问题,如规则粒度问题(以Modbus规则设置为例),防火墙的规则设置应该能够支持具体数据字段的匹配,但规则深度越深越可能带来防火墙的效率问题,因此,工业控制系统防火墙技术仍在发展中。
下面将详细介绍防火墙的概念、种类和工业防火墙技术。
3.2.1 防火墙的定义
防火墙是由位于两个信任程度不同的网络之间的软件和硬件设备组合而成的一种装置,集多种安全机制为一体,是网络之间信息的唯一出入口,能够对两个网络之间的通信进行控制,通过强制实施统一的安全策略,限制外界用户对内部网络的访问,以及管理内部用户访问外界网络得到权限,防止对重要信息资源的非法存取和访问,以达到保护系统安全的目的,是提供信息安全服务,实现网络和信息安全的基础设施。
防火墙也是一种机制,用于控制和监视网络上来往的信息流,其目的在于保护网络上的设备。流过的信息要与预定义的安全标准或政策进行比较,丢弃不符合政策要求的信息。实际上,它是一个过滤器,阻止了不必要的网络流量,限制了受保护网络与其他网络(如互联网或站点网络的另一部分)之间通信的数量和类型。防火墙的示意图如图3-1所示。
图3-1 防火墙的示意图
3.2.2 工业防火墙技术
工业防火墙在种类方面与一般IT防火墙类似,总体上分为数据包过滤、状态包检测和代理服务器等几大类型。为便于理解工业防火墙技术,参照OSI模型图,如图3-2所示,对数据包过滤技术、状态包检测技术和代理服务技术进行详细分析。
图3-2 OSI模型图
1.数据包过滤(Packet Filtering)技术
数据包过滤技术在OSI的第3层,即在网络层对数据包进行选择,选择的依据是系统内设置的过滤逻辑,称为访问控制表(Access Control Table)。通过检查数据流中每个数据包的源地址、目的地址、所用的端口号、协议状态等因素,或者它们的组合来确定是否允许该数据包通过。数据包过滤防火墙逻辑简单,价格便宜,易于安装和使用,网络性能和透明性好。
工业防火墙是基于访问控制技术的包过滤防火墙,它可以保障不同安全区域之间进行安全通信,通过设置访问控制规则,管理和控制出入不同安全区域的信息流,保障资源在合法范围内得以有效使用和管理。
目前传统的IT防火墙都是按照“白名单”或“黑名单”的方式进行规则设置的,而工业防火墙大多依据“白名单”设置规则。对于“白名单”,可以设置允许规则,也就是说只有符合该规则的数据流才能通过,其他任何数据流都可以被视作攻击而过滤掉,这样就保障了资源的合法使用;而对于“黑名单”,可以设置禁止规则,禁止不合法客户端对资源的访问。
数据包过滤防火墙可以用于禁止外部不合法用户对内部网络进行访问,也可以用来禁止某些服务类型,具有过滤效率高、成本低、易于使用等优点。但是,数据包过滤防火墙还存在诸多不足,主要包括以下几个方面:
(1)数据包过滤防火墙是一种基于IP地址的认证,不能识别相同IP地址的不同用户,不具备身份认证的功能。数据包过滤判别的条件为数据包包头的部分信息,由于IPv4的不安全性,导致各种条件极有可能被伪装。
(2)数据包过滤防火墙是基于网络层的安全技术,不具备检测通过应用层协议而实施的攻击。
(3)数据包过滤防火墙的过滤规则表相当复杂,没有很好的测试工具检验其正确性、冲突性,容易导致漏洞。
(4)对于采用动态或随机分配端口的服务,数据包过滤防火墙很难进行有效认证,如远程过程调用服务(RPC)。
因此,数据包过滤防火墙适用于工业控制,早期市场中已普遍使用,但其缺陷也慢慢显现出来。
2.状态包检测(Stateful Packet Inspection)技术
随着网络应用的增多,用户对包过滤技术提出了更高的要求,主要体现在策略规则的查找速度及系统的安全性方面,随之出现了状态包检测技术。状态包检测监视每一个有效连接的状态,并根据这些信息决定网络数据包是否能够通过防火墙。它在协议栈底层截取数据包,然后分析这些数据包,并且用当前数据包及其状态信息与其前一时刻的数据包及其状态信息进行比较,得到该数据包的控制信息,从而达到保护网络安全的目的。
状态包检测防火墙采用基于会话连接的状态检测机制,将属于同一连接的所有数据包作为一个整体的数据流看待,构成动态连接状态表,通过访问控制列表与连接状态表的共同作用,不仅可以对数据包进行简单的包过滤(也就是对源地址、目标地址和端口号进行控制),而且可以对状态表中的各个连接状态因素加以识别,检测此次会话连接的每个数据包是否符合此次会话的状态,能够根据此次会话前面的数据包进行基于历史相关的访问控制,因此,不需要对此次会话的每个数据包进行规则匹配,只需进行数据包的轨迹状态检查,从而加快了数据包的处理速度。动态连接状态表中的记录可以是以前的通信信息,也可以是其他相关应用程序的信息,因此,与传统包过滤防火墙的访问控制列表相比,它具有更好的性能和安全性。
状态包检测防火墙虽然成本高一点,对管理员的要求复杂一点,但它能提供比数据包过滤防火墙更高的安全性和更好的性能,因而在工业控制中应用得越来越多。
状态包检测防火墙适用于工业控制,在目前市场中正在推广应用,其优越性也开始显现。
3.代理服务(Proxy Service)技术
代理服务(Proxy Service)又称为链路级网关或TCP通道(Circuit Level Gateways or TCP Tunnels),也有人将其归于应用级网关一类。它是针对数据包过滤和应用网关技术存在的缺点而引入的防火墙技术,其特点是将所有跨越防火墙的网络通信链路分为两段。防火墙内外计算机系统间应用层的“链接”由两个终止代理服务器上的“链接”实现,外部计算机的网络链路只能到达代理服务器,起到隔离防火墙内外计算机系统的作用。此外,代理服务也对过往的数据包进行分析、注册登记,形成报告,当发现被攻击迹象时会向网络管理员发出警报,并保留攻击痕迹,其具有更好的性能和安全性,但有一定的附加部分和延时,影响性能。
因此,代理服务网关防火墙不太适用于工业控制,但也有不计较延时情况的应用。
3.2.3 工业防火墙技术的发展方向
网络安全技术的深入发展使防火墙技术也在不断发展,透明接入技术、分布式防火墙技术和智能型防火墙技术是目前防火墙技术发展的新方向。
1.透明接入技术
随着防火墙技术的快速发展,安全性高、操作简便、界面友好的防火墙逐渐成为市场热点,简化防火墙设置、提高安全性能的透明模式和透明代理成为衡量产品性能的重要指标。
透明模式最主要的特点就是对用户是透明的(Transparent),用户意识不到防火墙的存在。如果想实现透明模式,防火墙必须在没有IP地址的情况下工作,不需要对其设置IP地址,用户也不知道防火墙的IP地址。防火墙采用了透明模式,用户就不必重新设定和修改路由,防火墙可以直接安装和放置到网络中使用,如交换机一样,不需要设置IP地址。
透明模式防火墙类似于一台网桥(非透明防火墙好比是一台路由器),网络设备(包括主机、路由器、工作站等)和所有计算机的设备(包括IP地址和网关)无须改变,同时解析所有通过它的数据包,既增加了网络的安全性,又降低了用户管理的复杂程度。
透明模式的原理可以理解为假设A为内部网络客户机,B为外部网络服务器,C为防火墙。当A对B有连接请求时,TCP连接请求被防火墙截取并加以监控,截取后当发现连接需要使用代理服务器时,A和C之间首先建立连接,然后防火墙建立相应的代理服务通道与目标B建立连接,由此通过代理服务器建立A和目标地址B的数据传输途径。从用户的角度看,A和B的连接是直接的,而实际上A是通过代理服务器C和B建立连接的;反之,当B对A有连接请求时,原理相同。由于这些连接过程是自动的,不需要客户端手工配置代理服务器,用户甚至根本不知道代理服务器的存在,因此,对用户来说是透明的。
2.分布式防火墙技术
由于传统防火墙被部署在网络边界,因而称为边界防火墙。边界防火墙在企业内部网和外部网之间构成一道屏障,负责进行网络存取控制。随着网络安全技术的深入发展,边界防火墙逐渐暴露出一些弱点,具体表现在以下几个方面。
(1)网络应用受到结构性限制。边界防火墙依赖于物理上的拓扑结构,它从物理上将网络划分为内部网络和外部网络,从而影响了防火墙在虚拟专用网络(VPN)技术上的广泛应用,因为今天的企业电子商务要求员工、远程办公人员、设备供应商、临时雇员及商业合作伙伴都能够自由访问企业网络。VPN技术的应用和普及,使企业网络边界逐渐成为一个逻辑边界,物理边界变得模糊。
(2)内部安全隐患依然存在。边界防火墙只对企业网络的周边提供保护。这些边界防火墙会对从外部网络进入企业内部局域网的流量进行过滤和审查,但是它们并不能确保企业内部网络用户之间的安全访问。
(3)边界防火墙把检查机制集中在网络边界处的单点上,造成网络瓶颈和单点故障隐患。
基于上述边界防火墙的不足,一种全新的防火墙概念—分布式防火墙出现,它不仅能保留边界防火墙的优点,而且能克服前面提到的边界防火墙的不足。
分布式防火墙负责对网络边界、各子网和网络内部各节点之间的安全防护,因此,分布式防火墙是一个完整的系统,不是单一的产品。根据所需完成的功能,分布式防火墙体系结构包含如下3个部分:
(1)网络防火墙。这部分既可以采用纯软件方式,也可以采用相应的硬件支持,用于内部网和外部网之间,以及内部网各子网之间的防护,比边界防火墙多了一种用于内部子网之间的安全防护层。
(2)主机防火墙。主机防火墙同样有软件和硬件两种产品,用于对网络中的服务器和桌面机进行防护。这点比边界防火墙的安全防护更完善,确保内部网络服务器的安全。
(3)中心管理。这是一个服务器软件,负责总体安全策略的策划、管理、分布及日志的汇总。这种新防火墙的管理功能是边界防火墙所不具有的,应用这种防火墙进行智能管理,提高了防火墙的安全防护灵活性,具备可管理性。
分布式防火墙的工作流程如下:首先,由制定防火墙接入控制策略的中心通过编译器将策略语言描述转换成内部格式,形成策略文件;然后,中心采用系统管理工具把策略文件分发给各自内部主机,内部主机根据IP安全协议和服务器端的策略文件两个方面来判定是否接受所收到的包。
3.智能型防火墙技术
传统的包过滤型防火墙与应用代理服务防火墙形式单一,一旦被外来黑客突破,整个Intranet就会完全暴露给黑客。因此,一种组合式结构的智能防火墙是比较好的解决方案,其结构由内、外部路由器,智能认证服务器,智能主机和堡垒主机组成。内、外部路由器在Intranet和Internet之间构筑一个安全子网,称为非军事区(DMZ)。信息服务器、堡垒主机、Modem组,以及其他公用服务器布置在DMZ网络中,智能认证服务器安放在Intranet里。
通常,外部路由器用于防范外部攻击,内部路由器则用于DMZ与Intranet之间的IP包过滤等,保护Intranet不受DMZ和Internet的侵害,防止在Intranet上广播的数据包流入DMZ。
智能型防火墙的工作原理可以理解为按照智能型防火墙中内、外路由器的工作过程,Intranet主机向Internet主机连接时,使用同一个IP地址。而Internet主机向Intranet主机连接时,必须通过网关映射到Intranet主机上。它使Internet看不到Intranet。无论何时,DMZ上堡垒主机中的应用过滤管理程序均可通过安全隧道与Intranet中的智能认证服务器进行双向保密通信,智能认证服务器可以通过保密通信修改内、外部路由器的路由表和过滤规则。整个防火墙系统的协调工作主要由专门设计的应用过滤管理程序和智能认证服务程序来控制执行,并且分别运行在堡垒主机和智能服务器上。
3.2.4 工业防火墙与一般IT防火墙的区别
传统包过滤防火墙与一般IT防火墙的区别主要表现在以下几点:
(1)支持基于白名单策略的访问控制,包括网络层和应用层。
(2)工业控制协议过滤,应具备深度包检测功能,支持主流工控协议的格式检查机制、功能码与寄存器检查机制。
(3)支持动态开放OPC协议端口。
(4)防火墙应支持多种工作模式,保证防火墙的区分部署和工作过程,以实现对被防护系统的最小影响。例如,学习模式:防火墙记录运行过程中经过它的所有策略、资产等信息,形成白名单策略集;验证模式或测试模式:该模式下防火墙对白名单策略外的行为做告警,但不拦截;工作模式:该模式为防火墙的正常工作模式,严格按照防护策略进行过滤等动作保护。
(5)防火墙应具有高可靠性,包括故障自恢复、在一定负荷下72小时正常运行、无风扇、支持导轨式或机架式安装等。
为进一步理解工业防火墙与一般IT防火墙的区别,以多芬诺(Tofino)工业防火墙的应用为例,与一般IT防火墙做比较,如表3-1所示。
表3-1 多芬诺(Tofino)工业防火墙与一般IT防火墙的比较
续表
3.2.5 工业防火墙具体服务规则
1.域名解析系统(DNS)
DNS主要用于域名和IP地址之间的翻译。例如,一个DNS能够映射一个域名,如control.com和一个IP地址。大多数互联网服务依赖DNS,但是控制网络很少使用DNS。多数情况不允许从控制网发DNS请求到公司网,也不允许发DNS请求到控制网。从控制网发DNS请求到DMZ必须逐项标出地址,推荐使用本地DNS或主机文件。
2.超文本传输协议(HTTP)
HTTP是在互联网进行Web浏览的协议。由于HTTP没有固有的安全策略,并且很多HTTP应用有漏洞,因此,HTTP不允许从公司网过渡到控制网。HTTP代理应在防火墙配置,阻止所有入站脚本和Java应用。因为HTTP有安全风险,所以HTTP不允许连接至控制网。若HTTP服务确实需要进入控制网,则推荐采用较安全的HTTP而不是仅对某个具体设备。
3.文件传输协议(FTP)和一般的文件传输协议(TFTP)
FTP和TFTP用于设备之间的文件传输。由于无须费力,所以几乎每个平台都会使用,包括在SCADA、DCS、PLC和RTU中。只是没有一个协议会在开发时考虑安全。对于FTP,登录密码没有编码;对于TFTP,不需要登录。另外,一些FTP有缓冲区溢出漏洞。因此所有TFTP通信必须禁止,而FTP通信仅用于在安全验证和编码通道配置的情形下进行一段时间的出站。任何时候,只要有可能,均采用较安全的协议,如SFTP和SCP。
4.用于远程连接服务的标准协议(Telnet)
Telnet在用户端和主机端之间定义一个互动的、以文本为基础的通信,它主要用于远程登录和简单的访问有限资源系统的服务,以及对系统安全不限制的访问服务。由于所有Telnet程序,包括密码,都没有编码,并且允许远程控制某个设备,因此这种协议存在很严重的安全风险。从公司网进入控制网的入站Telnet必须禁止。出站Telnet仅在编码通道(如VPN)允许访问某些设备。
5.简单邮件传输协议(SMTP)
SMTP是互联网上主要的邮件传输协议。邮件信息经常带有恶意软件,因此,入站邮件不允许送至任何控制设备。允许出站SMTP从控制网到公司网发送警告信息。
6.简单网络管理协议(SNMP)
SNMP用于中央管理控制台与网络设备之间的网络管理服务。尽管SNMP对维护网络特别有用,但它的安全性很差。
7.分布式组件对象模型(DCOM)
DCOM是OPC和Profinet的基本传输协议,其采用远程过程调用(RPC),而RPC有很多漏洞,基于DCOM的OPC动态开放很宽的端口(1024~65535),以至于防火墙很难过滤。这种协议只允许在控制网和DMZ之间使用,而在公司网和DMZ之间被阻止。
8.SCADA与工业网络协议
SCADA和一些工业网络协议,如Modbus/TCP、EtherNet/IP等,对于多数控制设备之间的通信是很关键的。只是这些协议设计时没有考虑安全性,并且不需要任何验证就可对控制设备远程发出执行命令,因此,这些协议只允许用于控制网,而不允许过渡到公司网。
3.2.6 关于工业防火墙的问题
本章3.5节讲述的网络隔离中有工业防火墙争论点,主要是数据历史服务器问题。采用工业防火墙,还将带来远程支持访问问题和多点广播数据流问题。
1.数据历史服务器
控制网和公司网共享的服务器,如数据历史服务器和资产管理服务器,会对防火墙的设计和配置产生影响。如果数据历史服务器放在公司网,那么一些不安全的协议,如Modbus/TCP或DCOM,则必须穿过防火墙向数据历史服务器汇报而出现在公司网。同样,如果数据历史服务器放在控制网,那么一些有问题的协议,如HTTP或SQL,则必须穿过防火墙向数据历史服务器汇报而出现在控制网。
因此,最好的办法是不用两区系统,采用三区系统,即控制网区、DMZ和公司网区。在控制网区收集数据,数据历史服务器放在DMZ。然而,若很多公司网用户访问数据历史服务器,则会加重防火墙的负担。这个问题可以采用安装两台服务器来解决: 第一台放置在控制网收集数据,第二台放置在公司网,镜像第一台服务器,同时支持用户询问,并做好两台服务器的时间同步。
2.远程支持访问
用户或供应商通过远程访问进入控制网,需通过验证。
控制组可以在DMZ建立远程访问系统,也可以由IT部门用已有的系统,即从IT远程访问服务器通过防火墙建立连接。
远程支持人员必须采用VPN技术访问控制设备。VPN技术可以是IPsec VPN中的安全套接字层(SSL)VPN或传输层安全协议(TLS)VPN。
3.多点广播数据流
多点广播数据流提高了网络的效率,却带来了防火墙的复杂问题。
与多点广播数据流有关的防火墙问题还有网络地址转移技术(NAT)的使用。由于防火墙没有反向映射功能,当收到一个多点广播数据包时,不知该发给哪位用户,安全的做法是丢弃这个数据包,于是出现多点广播数据流网络地址转移不友好的情况。