APP下载

基于协议解析的工控网络安全仿真平台设计

2021-03-12方捷睿曹卫民白建涛熊智华

自动化仪表 2021年2期
关键词:报头工控应用层

方捷睿,曹卫民,白建涛,熊智华,杨 帆

(1.清华大学自动化系,北京 100084;2.中国石化安庆分公司,安徽 安庆 246002)

0 引言

随着石化企业信息集成度的提高,工业控制系统由“封闭走向开放”已成为主流趋势。但是“震网”、“超级工厂”等病毒的出现,已经造成了有些企业的工业控制系统安全事故。因此,工业控制网络的安全问题凸显[1-2]。目前,工业互联网的安全问题也在国际、国内引起了高度的重视[3-4]。未来,随着工业互联网的发展和推进,工业控制网络安全措施的实施范围也将从局域网上升到全网的高度。

工业控制系统的安全防护主要采用系统隔离、网络分区分域管理。这些传统的安全防御方法无法抵御各种病毒的靶向攻击[5]。工业控制系统信息安全问题非常复杂,依赖于单一的安全防护方案难以实现系统整体安全。因此,可行的方案是将工业控制网络划分为不同的安全区,分层或分区域部署防火墙、入侵检测等多种安全防护措施,形成整体防护能力[6]。石化企业网络安全的解决方案通常采用网闸和防火墙技术,对企业管理网络与工业控制网络进行“区域和渠道”的连接控制[7]。对每个分层或分域采用特定的网络安全控制策略,深度解析和检查每个区域的通信连接和协议,保障工业控制系统的安全运行。

本文在工控网络安全防护方案的基础上,结合工控网络报文定制性的特点,详细分析了基于应用层协议解析的安全防护策略。该方案在传统工业防火墙的基础上,通过对应用于过程控制的对象连接和嵌入(OLE for process control,OPC)等工业网络传输协议的报文深入解析,拦截与功能实现无关的报文。由于该方案方直接在报文层面解析过滤,所以能够更有效地发现隐藏较深的威胁。本文以OPC协议为例,搭建了基于应用层协议深度解析的工控网络安全仿真测试平台,并利用石化企业现场设备的通信数据对该平台进行了验证。

1 工控网络安全策略分析

1.1 企业生产专网的网络结构与安全

石化企业管控一体化的信息化集成经历了多年的发展,网络结构逐步从企业管理网/控制网络的两层结构发展成了企业管理网/生产专网/控制网络的三层结构[8-9]。

在企业管理网/控制网络的两层结构中,工业控制网络与管理网的连接给企业带来了诸多便利,但是也削弱了工业控制系统与外界的隔离。因此,当面临安全威胁时,工业控制系统缺乏有效的防御能力,受到任何一点攻击都有可能导致整个系统的瘫痪[8]。

企业管理网/生产专网/控制网络三层结构中[9]:企业的各种网络按功能区进行分层、分区设计;将实时数据库系统的网络环境从企业管理网中分离出来,构成生产专网;生产专网与管理网只有一个接口并通过防火墙进行隔离。工业控制网络中的各个控制系统只与生产专网相连接,与管理网络没有直接通道。由于每套控制系统与生产专网只有一个点对点的物理接口,因此阻断了来自管理网络上普遍存在的病毒、木马、特定攻击等直接威胁。同时,将网络安全内嵌到基础架构中并进行虚拟化,建立安全服务管理中心对生产专网的安全进行管控和预警,从而改变了传统的安全模式。通过采用虚拟防火墙,结合OPC服务器分配的动态端口限定方法进行安全的数据采集与传输,可提升与控制系统接口的安全[9]。

企业生产专网的网络安全防护结构如图1所示。

图1 企业生产专网的网络安全防护结构示意图 Fig.1 Network security protection structure of enterprise production network

随着工业互联网的研究与应用,工控网络安全防护措施的实施范围也将从以往的局域网上升到全网的高度。因此,采用更加安全、有效的方式保障工控网络的安全已成为重中之重。在企业三层网络结构下,对工业控制系统的安全威胁,除了对控制系统的直接攻击和经由企业管理网入侵的攻击外,还有来自生产专网的攻击。工业控制系统的安全可以通过管理手段来实现。经由管理网的入侵可以通过代理服务器实现。所以在工业现场,安全防护的重点在于保障好生产专网与控制系统之间的接口安全。

本文研究的工控网络安全防护问题,主要集中于生产专网与工业控制系统之间的数据访问安全,如图1所示的OPC客户端与OPC服务器之间的数据访问安全。通过在OPC服务器和Client之间设立一个基于协议解析的网络安全防护(例如工业防火墙)来提高数据传输的安全性是一个可行方案。工业防火墙通过获取OPC客户端/服务器端(client/server,C/S)之间传输的数据包并解析,判断所传输的数据是否存在安全问题。如果存在安全问题,则执行预设的安全措施。

1.2 工控网络信息安全策略

工业控制网络是基于传统网络发展起来的一种定制化、专业化、标准化的定向网络,采取的交互模式基本为C/S通信模式,大体分为面向连接和无连接两大类。其均在应用层进行顶层的包装和接口定义,以实现特定的工业控制网络数据传输与行为控制功能[9]。目前,工业防火墙被广泛应用于工控网络的数据传输安全防护。

防火墙技术主要包括包过滤防火墙、状态检测防火墙、应用级网关防火墙和深度包检测防火墙等[10]。传统工业防火墙通过对抓取到的数据包中的MAC地址、IP源地址、目的地址、端口号、协议类型、数据流向、协议字段和网络接口等信息进行过滤,根据预设的规则决定保留还是丢弃该数据包。深度包检测防火墙对传输控制协议(transmission control protocol,TCP)或用户数据报协议(user datagram protocol,UDP)数据包内容进行深入分析,从而抵御复杂网络中应用程序受到的攻击,提高了防火墙的性能和内部网络的安全、稳定[10]。

工业防火墙通过对工控网络协议数据包进行探测和解析,识别出数据包中的各种关键信息及其所承载的内容,并对这些数据进行解析;然后根据解析得到的原始通信信息,判断是否包含威胁或者敏感的内容。例如对协议中的操作码、设备地址、寄存器范围和读写属性等进行检查,以判断是否为非法操作或者外部攻击[10]。

和传统网络一样,工控网络协议数据包也包含了物理层、数据链路层、网络层、传输层、应用层开放式系统互联通信(open system interconnection,OSI)参考模型ISO五层架构。对于数据包的分析,工业防火墙主要集中在链路层、网络层、传输层和应用层。其中,前三层采用传统的网络报文方法进行分析,在应用层的层面针对各主流工控协议标准进行定制化的解析。

工控网络安全隔离策略如图2所示。

图2 工控网络安全隔离策略 Fig.2 Security isolation strategy of industrial control network

应用层安全隔离主要通过对应用层报文的解析实现。其核心是通过对应用层协议报头解析和判断实现应用层报文类型的过滤。应用层协议(例如OPC协议)深度隔离则通过深度解析特定的OPC协议的应用层报文,能够最大程度地保证系统的安全性。因此,该方案在传统工业防火墙策略的基础上,对协议类型进行解析,从而隔离与通信无关的报文。同时,对应用层协议进行深度解析,还能有效保障工控系统的实时性、私密性和安全性。

在实际应用中,还需要考虑工控网络报文定制性的特点,采用基于应用层协议(例如OPC)解析的安全隔离策略。在实现传统工业防火墙功能的基础上,对工业网络传输协议进行解析。其核心是根据Modbus、DNP3和OPC等工控网络的协议格式分析并深入理解报文,拦截与功能实现无关的报文;引入黑白名单机制,在实现功能的同时对设备进行限制。由于该安全防护策略在报文层面解析过滤,所以能够更有效地发现隐藏较深的威胁。相较于前文提到的应用级网关防火墙,本文方法在过滤速度上要快得多。

2 工控网络报文的深度解析

2.1 工控网络报文

在讨论工控网络报文结构的语境下,主要针对应用层报文进行分析。对于更底层的报文,大多数成熟的工控协议都利用了传统网络报文的接口和底层通信组件,因此可以按照传统报文的分析方式进行。应用层协议为网络上不同端之间的设备和系统上的进程进行数据交互提供了规范。在工控系统的语境下,应用层协议包括了工控协议本身以及对工控协议的第一步封装,并为工控协议的网络传输选择通信链路。在完成对链路层、网络层和传输层的解析后,可以得到初步的应用层报文。然后,根据不同工控协议的特点,判断应用层是否搭载了外部应用层协议并解析该应用层协议,从而得到纯粹的工控协议报文,进而根据工控协议的报头和数据包,分析报文实现的功能。

工控协议的报头通常包含认证信息、校验信息、身份信息等基于全局的连接信息,通过该部分解析出连接信息并存入缓存区,用于辨别后续的连接。数据包主要包括对底层设备的定位信息、操作指令、数据信息及响应报文等直接面向过程的报文。该部分的解析需要结合缓存区中的连接信息,解析出每条报文或多条报文对应的具体操作,从而实现过滤。

随着工业互联网的推广,以TCP/IP为基础的工控协议,以其标准化、开放性而更加广泛地应用在各类工控系统中。目前,国内广泛应用的Modbus协议、DNP3协议、IEC协议和OPC协议大多基于TCP/IP协议进行封装传输。其中,石化企业大多采用OPC协议来进行数据访问[8]。

2.2 应用层的数据包深度解析

OPC协议并非严格的工业类协议,但由于其与传统互联网具备更好的兼容效果,逐渐受到各大自动化公司的青睐,并逐渐形成一套比较完善的标准。其为目前应用较为广泛的信息交换的互操作标准,具备安全性、可靠性和平台独立性[8,11]。

OPC协议基于远程过程调用(remote procedure call,RPC)/分布式组件对象模型(distributed component object model,DCOM)协议进行通信,是基于DCOM协议扩展的工控协议。而DCOM协议又是基于RPC协议开发的远程接口调用协议[11]。所以在进行应用层协议的解析时,需要先解析RPC协议和DCOM协议,再解析OPC协议。虽然三者之间存在层层递进的关系,但实际上DCOM协议在实现协议内部功能的时候,会借用一部分RPC协议报头信息;OPC协议的结构中,也将DCOM协议的报头作为自身协议报头的一部分[11]。

①RPC协议及DCOM协议解析。

由于目前大多数OPC协议采用的是面向连接的模式,所以主要解析面向连接的RPC协议。面向连接的RPC包含11种协议数据单元(protocol data unit,PDU)。其中,Association PDU用于建立连接和维护通信,包含bind等绑定请求及应答报文;Call PDU用于在连接中实现请求操作,包含request、response等数据及操作请求与应答报文[11]。

RPC协议的PDU可以看作是OPC协议报头的一部分。它为OPC协议提供了一个建立连接的方式,协助OPC协议维护连接信息。

DCOM协议的报头只有一小部分被保留下来融入OPC协议。这一小部分报头提供了报文的身份信息,在多个客户端同时向服务器发起请求时,可以分辨出报文的源头客户端。所以RPC协议和DCOM协议的解析,本质上还是对OPC协议报头信息的解析。

②OPC协议报头解析。

OPC协议报头包含了丰富的连接信息。通过对报头的解析,能够维护连接的身份信息、认证信息、缓存信息、指令类别及其具体操作等[11]。

通过接口定义语言(interface definition language,IDL)语义对OPC协议报头进行解析,能够解析出是哪个客户端向底层设备发送了指令,以及指令所对应的操作。

③OPC协议数据包解析。

在IDL语义下,每条指令对应一个函数,数据包里的内容则是该函数的参数。对于数据读取报文而言,该参数主要是所读取的位号,即该条读取指令的对象。服务器在收到合法指令后也会返回一个报文。其中的数据包是以具体数值作为返回函数的参数[11]。

数据包的解析是根据前面解析出的指令函数,得到参数的格式,将数据包中对应的数据段整理成函数的参数。对于单个参数的解析比较简单,但OPC协议经常涉及到数据的批量处理以及分片、重传等情况,因此需要解析包含多种情况的数据包。

3 工控网络安全仿真测试平台

本文以OPC协议为例,搭建了工控网络安全仿真测试平台,对OPC C/S间传输的数据包进行解析。本文的验证数据采用了石化企业现场设备的通信数据,格式为.pcapng,可以通过抓包软件直接进行抓取。仿真测试平台由QT软件开发完成。其主要功能是对抓取的OPC协议数据包进行深度解析,将报文内容逐条逐字段存入数据库,将解析结果从数据库取出并呈现在界面上,并提供各种规则配置进行测试。

3.1 仿真测试平台架构

仿真测试平台由报文处理、OPC解析、数据库、监控显示界面等多个模块组成。

仿真测试平台整体架构如图3所示。

图3 仿真测试平台整体架构 Fig.3 Overall architecture of simulation and test platform

报文处理模块读取抓取的数据包文件,将其转换为程序规定的数据格式。传统解析模块完成链路层、网络层和传输层数据的初步解析,与未解析的数据一并传入下一模块。OPC解析模块是软件的核心,实现对OPC协议的应用层解析,并根据配置信息为该条数据贴上标签。配置模块提供黑白名单的模拟配置功能,并利用该信息验证OPC解析模块的解析结果。解析结果将被存储到数据库中。数据综合模块根据OPC解析模块和数据库中的数据,对解析结果进行综合分析和判断,并将结果传递给监控显示界面模块。显示界面模块输出报文详细信息等各种解析结果。

3.2 仿真测试平台结果展示

仿真平台软件在打开数据包文件之后弹出交互界面。界面的上部分详细显示报文概要信息,包括IP地址、端口号、PDU类型、报文长度、序列号、确认号等内容;界面的下部分则显示所选中报文的详细信息。

报文解析的部分结果也展示在界面上,在通信连接建立并由仿真测试平台维护通信后,客户端向服务器发送类型为request的报文。然后测试平台进行分析,可以解析得到相关操作指令面向的位号。每条Request报文经应用层展开后,会将报文详细信息显示在界面上。

实际通信过程中,往往由于报文长度较长而出现分片报文的情况,因此在解析过程中还需要考虑分片报文的问题。当测试平台检测到多片报文时,界面上会显示相关信息,并且测试平台进行报文的重组。

当传输过程中出现数据包中途丢包或确认字符(acknowledge character,ACK)丢失等问题时,会产生报文重传。因此,报文解析时还需要考虑重传报文的情况。当测试平台发现重传报文时,将把检测结果显示在界面上,表明测试平台能够正确检测到重传的报文。

在上述基于应用层协议解析的工控网络安全仿真平台进行试验测试后,还对该平台与石化企业实际生产装置的数据访问环境进行了连接和测试。测试结果表明,该平台能够根据报文解析结果,拦截报文中与功能实现无关的部分以及潜在的安全威胁,从而验证了基于应用层协议解析的工控网络安全防护策略的有效性。

4 结论

本文分析了基于应用层协议深度解析的工控网络安全防护策略,以OPC协议为例开发了一个仿真测试平台,并进行了实际通信数据的测试与验证。该安全防护策略针对工业网络传输协议的特点,对应用层协议进行解析;根据工业网络较为单一的功能需求,拦截掉与功能实现无关的报文,并能够发现隐藏较深的威胁,从而为工控网络安全提供保障。实际通信的数据测试结果验证了该方案的有效性。

猜你喜欢

报头工控应用层
城市党报报头:政治与艺术的平衡
工控速派 一个工控技术服务的江湖
工控速浱 一个工控技术服务的江湖
基于分级保护的OA系统应用层访问控制研究
热点追踪 工控安全低调而不失重要
基于攻击图的工控系统脆弱性量化方法
新一代双向互动电力线通信技术的应用层协议研究
物联网技术在信息机房制冷系统中的应用
淡妆浓抹总相宜
——对中国晚报报头变化的研究与欣赏
IP语音报头压缩设计与实现