供发电厂的天然气无人站工控安全防护应用研究
2019-12-06杨哲明沈国良
徐 军,杨哲明,沈国良
(浙江浙能天然气运行有限公司,杭州 310052)
0 引言
天然气因其燃烧热值高、燃烧后有害物质少、供应可靠等特点,已逐渐受到市场青睐。为响应国家煤改气号召,浙江省目前亦在逐步取消小型燃煤机组发电,转而使用天然气进行发电。天然气发电机组因用气量大,对天然气供气压力的稳定性有较高要求,而天然气分输站一般离发电厂较远,管存气量的存在使得远距离调压效果并不明显。为此,一般在发电厂附近建设天然气调压站点,以实时调节供气压力。
据国家工业信息安全发展研究中心监测,第二季度仅针对中国境内工业互联网平台及来源于境外的网络攻击事件就有656起;新增工业控制系统漏洞115个,涉及罗克韦尔、西门子、施耐德电气等品牌的多款控制器[1]。
1 天然气站控制系统安全威胁分析
在研究分析站控系统面临的风险和威胁之前,先对Modbus/TCP协议做简要介绍。
1.1 Modbus/TCP协议介绍
Modbus/TCP封装于TCP/IP协议的应用层,在TCP数据包中包含Modbus应用数据,采用传统的客户端/服务端通讯模式,其中Modbus从站为服务端,Modbus主站为客户端。在初始通讯时,Modbus主站主动发起通讯请求,Modbus从站根据Modbus数据协议规则,做出相应的响应。完整的Modbus/TCP应用数据单元由下面3部分组成[2]:
图1 Modbus/TCP协议数据单元格式Fig.1 MODBUS/TCP Protocol data unit format
其中,Modbus/TCP协议头又被简称为MBAP,它由以下4个部分组成[2]:
表1 Modbus/TCP协议头组成Table 1 MODBUS/TCP Protocol header composition
Modbus/TCP功能码根据其作用可分为读操作、写操作、其他操作。Modbus主站使用读功能码和写功能码对Modbus从站进行数据读写操作。
1.2 协议主要风险
Modbus/TCP由Modbus协议改造而来,形成时间较早,缺乏安全考虑,在天然气现有控制系统网络环境下,主要存在以下几方面问题:
首先,Modbus/TCP协议使用TCP进行数据通讯,需要进行3次握手操作,而PLC设备结构简单,使得其在传统的SYN-Flood等DDOS攻击问题上基本没有防御能力。
其次,Modbus/TCP协议缺乏认证以及授权机制[3],在控制网络中的任一设备,只要网络可达,即可通过Modscan等工具连接Modbus从站,进行数据读写操作,甚至是PLC设备启/停操作,而Modbus从站根本无法区分合法用户以及非法用户。
③增效扩容项目在促进节能减排、保护河流生态环境、消除公共安全隐患、解决农村无电缺电问题、推动农村经济社会发展方面具有十分重要的意义。
还有,Modbus/TCP协议是公开协议,所有数据格式开放且未加密,数据容易被窃听、篡改以及伪造,攻击人员甚至可以构造畸形数据包,导致PLC设备以及上位机设备的崩溃。
1.3 业务风险
天然气站场的安全防范由人防、物防和技防组成:人防通过配置人员进行巡逻、站岗等方式进行安全防范;物防通过围墙、刺网等方式防止未授权人员通过攀爬等方式进入站场;技防由红外对射系统、激光对射、视频监控系统等组成,对站场周界进行技术性防护。
天然气无人调压站因其设计原因仅使用物防和技防,并且距离有人值守的站场距离较长,一旦人员入侵,攻击人员有充分时间发起对通信网络中其他站点的攻击。同时,天然气无人调压站因其技术需要在自动化调节的情况下,不定期进行人为干预调整,而该调整由值班人员远程控制操作完成。
2 天然气无人值守站安全防护措施
根据浙江省天然气无人值守站实际运行情况以及面临的风险,对站控系统提出如下安全防护措施。
2.1 基本的防护策略
在天然气无人值守站(也称调压站)通讯中,面临的风险不仅来自于Modbus主站非法链接,更有来自于Modbus从站的非法接入风险。
实施严格的访问策略可以很大程度上杜绝未经授权的访问[4],以确保Modbus从站不受到其他Modbus主站的恶意控制。万一当Modbus从站被非法控制或者替换时,不能攻击其他Modbus从站。
主要通过安全网关,实现对Modbus/TCP数据包进行深度检测[5]、分析、拆解、重组。利用拆解、重组操作可以有效减少畸形数据包对Modbus主站与Modbus从站的攻击。利用数据包的分析功能,可以有效分类功能码以及读写地址。在确认数据来源可信的情况下,限制Modbus从站和Modbus主站的操作权限。同时分析后的Modbus/TCP数据包提供了细粒度的检测,增强了访问策略的功能。
由于天然气控制系统远距离传输采用光传输系统,沿天然气管道敷设自有光缆,故不在此做数据加密讨论。
2.2 主要的防护规则
天然气无人调压站可由所属有人值守站场以及调度中心双方控制,可建立如下主要的防护规则:
1)启用SYN、Pingof Death的传统TCP攻击防御。
2)允许来自所属有人值守站场以及调度中心的Modbus主站访问无人调压站的Modbus从站。
3)拒绝无人调压站侧的Modbus主站访问网络中其余Modbus从站。
4)使用Modbus/TCP协议深度检测,对来自所属有人值守站场以及调度中心的Modbus/TCP协议中功能码进行筛选,仅允许读写操作,同时限制有效数据段。
3 试验过程及其结果分析
为测试Modbus/TCP协议深度检测在实际生产中的使用效果,本次实验使用两台安装Windows的PC电脑和一台工控专用防火墙进行测试。工控防火墙在两台PC间采用串联模式,PC配置、安装软件以及模拟角色信息见表2。
在无策略情况下,所有TCP通讯均被拦截,ICMP数据包也无法通过。添加Modbus规则放行后,见图3、图4。
将Modbus规则设置为拦截模式,即白名单模式,因为没有设置允许通过的规则,默认所有的Modbus/TCP读取都被认为是非法访问,从而进行拦截,见图5、图6。
图2 防火墙侧地址配置情况Fig.2 Firewall side address configuration
表2 地址配置以及软件使用情况Table 2 Address configuration and software usage
图3 Modbus放行规则Fig.3 Modbus release rules
图4 Modbus放行规则记录日志Fig.4 Modbus release rules logging
图5 启用Modbus拦截规则Fig.5 Enabling Modbus intercept rules
在拦截模式中添加允许读线圈功能,允许地址设置为1~50,设备地址设置为1。当通过ModScan读取1~5地址时,通讯被放行;当读取地址超过1~50范围后,ModScan通讯被中断,在日志中可以查阅到访问了不合法的地址。
在深度检测规则中修改规则见表3。
图6 Modbus读取被拦截Fig.6 Modbus Read is intercepted
图7 Modbus读取放行规则Fig.7 Modbus Read release rules
图8 Modbus读取拦截情况Fig.8 Modbus Read interception situation
图9 Modbus写入放行规则Fig.9 Modbus Write release rules
图10 Modbus写放行及拦截情况Fig.10 Modbus write release and interception situation
表3 白名单规则清单Table 3 List of white list rules
使用Modscan操作后,可以在日志中看到过滤效果:对于地址2的数据为开或者关均被放行;修改地址3的数据为关被放行,修改地址3的数据为开被拦截。
根据实验可以看到基于Modbus协议深度检测的安全设备能有效管控Modbus/TCP数据的通信,并确保系统安全。
4 结束语
由于Modbus/TCP通讯协议存在的先天缺陷,以及当前天然气无人调压站所面临的工控网络安全风险。应用基于Modbus深度协议解析的工控安全网关,并配置适当的安全策略,通过实验验证,可以有效防范多种安全威胁,提高系统安全性。该安全策略简单实用、稳定可靠,对类似无人值守站控系统也有较好的参考意义。