基于OPC协议的安全网关防护系统访问控制方法与流程

文档序号:18850810发布日期:2019-10-13 00:51阅读:587来源:国知局
基于OPC协议的安全网关防护系统访问控制方法与流程

本发明涉及一种网络安全技术领域,特别涉及一种基于OPC协议的安全网关防护系统访问控制方法。



背景技术:

随着信息技术的发展,特别是在德国“工业4.0”、美国“G3.0”以及我国“两化”深度融合等战略的推动下,工业控制系统与企业管理网甚至互联网进行直接互联的迫切需求,导致一系列信息安全问题不断涌现。如今,世界范围内出现越来越多针对工业控制系统网络协议漏洞的攻击。继“震网”病毒事件后,国内外又陆续揭露许多重大工业控制系统安全事件,如2014年工业界备受瞩目的“Havex”病毒,专门针对典型工控协议OPC进行攻击。工业控制系统的安全问题不断被推向一个个新的高度。



技术实现要素:

本发明的目的在于提供一种基于OPC协议的工业控制系统访问控制方法,用以解决上述现有技术的问题。

本发明一种基于OPC协议的工业控制系统访问控制方法,其中,包括:S1、建立一端口号白名单,该端口号白名单包含一默认通信端口号;S2、获取OPC报文数据,并判断OPC报文数据是否为服务器请求报文或响应报文,如果是,在白名单中记录服务器的分配给客户端的端口号,如果否,说明为客服端的报文数据,则转步骤S3;S3、获取发送报文数据的客户端端口号,并与白名单中的客户端端口号匹配,如果是,则允许OPC报文数据的传输,如果否,则拒绝通信,并丢弃该OPC报文数据;S4、对客户端的OPC的报文字段进行检测,通过{对象,接口,例程编号、操作参数、数据长度}五元组,来构建OPC协议长度字段的白名单匹配表,根据对象,接口,例程编号、操作参数唯一确定数据长度是否合法;通过{寄存器地址、数值上限、数值下限}三元组,来构建OPC协议数据项白名单表,当获取寄存器地址后,查找OPC协议数据项白名单表,对比该寄存器地址对应的数值上限与数值下限,若符合则通过,若不符合,则进行过滤;S5、结束。

根据本发明的基于OPC协议的工业控制系统访问控制方法的一实施例,其中,该默认通信端口号为通信135端口号。

综上,本发明一种基于OPC协议的安全网关防护系统访问控制方法,能够满足工业控制系统自身安全防护及其与企业网互联的整体安全防护需求。具有如下优点:接入控制:对OPC客户端和服务器进行身份认证,用户通过认证后,建立安全隧道,从而使得攻击者无法通过网络进行信息窃取或进行恶意攻击;动态端口的访问控制:对OPC客户端的通信端口进行控制,保证用户在默认情况下只能通过服务器授权的合法端口进行通信;OPC协议数据的访问控制:对OPC客户端的读写行为进行访问控制,从而保证用户在默认情况下只能写入合法范围内的数据项,攻击者无法通过篡改工业参数破坏工控设备。

附图说明

图1所示为OPC协议安全防护网关系统框架图;

图2所示为基于白名单匹配技术的访问控制机制模块图;

图3所示为基于OPC协议层的多层次访问控制基本流程图;

图4所示RPC端口白名单生成及控制过程示意图;

图5所示为动态端口追踪模块流程图;

图6所示为OPC协议头字段示意图;

图7所示为OPC协议数据字段示意图;

图8所示为基于通信内容的访问控制流程图。

具体实施方式

为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。

本发明一种基于OPC协议的工业控制系统访问控制方法,包括:

S1、建立一端口号白名单,该端口号白名单包含一默认通信端口号;

S2、获取OPC报文数据,并判断OPC报文数据是否为服务器请求报文或响应报文,如果是,在白名单中记录服务器的分配给客户端的端口号,如果否,说明为客服端的报文数据,则转步骤S3;

S3、获取发送报文数据的客户端端口号,并与白名单中的客户端端口号匹配,如果是,则允许OPC报文数据的传输,如果否,则拒绝通信,并丢弃该OPC报文数据;

S4、对客户端的OPC的报文字段进行检测,通过{对象,接口,例程编号、操作参数、数据长度}五元组,来构建OPC协议长度字段的白名单匹配表,根据对象,接口,例程编号、操作参数唯一确定数据长度是否合法;通过{寄存器地址、数值上限、数值下限}三元组,来构建OPC协议数据项白名单表,当获取寄存器地址后,查找OPC协议数据项白名单表,对比该寄存器地址对应的数值上限与数值下限,若符合则通过,若不符合,则进行过滤;

S5、结束。

图1所示为OPC协议安全防护网关系统框架图,如图1所示,针对工业控制系统与企业管理网互联边界的安全防护需求,本发明构建了OPC协议安全防护网关,通过OPC协议层和OPC协议支撑层两层安全防护机制,实现了工业控制系统与企业网络安全互联。

通过在网关协议支撑层实现身份认证、加密技术从而在OPC协议安全防护网关与OPC客户端及服务器之间实现安全隧道;通过在OPC协议层实现端口白名单和协议关键字白名单的多层网络访问控制机制,实现协议数据的深度解析与过滤,防御来自企业管理网的病毒或恶意操作破坏现场控制设备、窃取现场数据,保障现场控制网络关键设施及数据信息的安全;两层防护机制相辅相成,共同构筑一个较为完备的OPC边界安全防护体系。

OPC协议层安全机制是指针对OPC协议特有安全威胁进行防护的安全机制。本发明基于OPC协议动态端口的通信行为以及基于协议关键字的通信内容两个层次来设计多层访问控制模型。

图2所示为基于白名单匹配技术的访问控制机制模块图,如图2所示,基于OPC协议的多层次访问控制模型的基本思想在于OPC协议正常通信模型的建立,采用白名单匹配方法,通过检测是否违反正常通信模式,过滤潜在攻击(所谓白名单匹配技术,是指根据“白名单”设置允许规则,只有符合该规则的数据项才能通过,任何不在白名单中的数据都被看作攻击过滤掉,从而保障资源的合法使用)。本发明一方面基于动态端口产生的原理,构建端口预测模型,生成动态跟踪表的白名单,实施白名单匹配技术完成针对端口通信行为的访问控制;另一方面基于OPC协议报文规范,构建协议数据白名单,实施白名单匹配技术,完成基于协议关键字的通信内容访问控制。

本发明所设计的访问控制模块主要包括两个层次的访问控制规则,即根据源IP-目的IP匹配合法端口,另一方面通过查找目的对象和接口组合来匹配合法的长度域以及寄存器数据值域。管理和控制出入不同安全区域的OPC协议数据,保障资源在合法范围内得以有效使用和管理。

图3所示为基于OPC协议层的多层次访问控制基本流程图,如图3所示,OPC协议安全防护网关根据多层次访问控制规则对来自OPC客户端的请求及响应数据进行处理。其中,通信行为访问控制模块在跟踪学习阶段建立通信行为白名单规则库(即端口白名单),当通过身份认证的客户端发送请求时,提取端口等信息,根据通信行为白名单规则库进行通信行为访问控制;通信内容访问控制模块在访问控制阶段,当客户端发送请求时,提取协议长度以及寄存器地址等关键字段,并对协议长度根据工控协议通信规约进行审查,对寄存器值域根据协议数据白名单库进行匹配,从而实现通信内容的访问控制。

第一阶段,通信行为访问控制。客户端完成身份认证后,向网关发送连接请求,OPC协议安全防护网关提取OPC客户端与服务器间会话数据的端口信息,并基于端口信息建立白名单,为之后的通信行为实施访问控制。

第二阶段,通信内容访问控制。OPC协议安全防护网关提取协议数据长度及寄存器地址等关键字段,对协议数据进行深度分析,根据通信内容白名单库实施通信内容访问控制。具体而言,依据OPC数据数据长度、调用号等进行格式审查实现通信内容访问控制。

根据OPC协议通信机制的分析可知,RPC协议版本号、RPC程序号以及传输地址共同组成RPC服务。RPC程序号和版本号由客户程序确定;传输地址包括IP地址、TCP或UDP端口号,服务器IP地址由客户程序确定;动态端口号则是服务器创建客户端请求实例时所动态指定的,伴随着服务器端程序的每次激活而改变。每当服务器接受客户端请求时,为客户端创建服务程序对象实例,并向系统申请注册。系统即为服务程序动态地分配一个端口号,并且将该端口号登记在端口映射表中。服务器中端口映射表对应135端口,客户端在调用服务器程序所提供的过程前,需要查找端口映射器的相应表项从而得到服务器程序所在的端口号。整个过程即客户端RPC程序向服务器的端口映射器发出RPC调用请求,端口映射器将服务器程序所在端口返回给客户端,客户端程序随即与服务器在该端口建立TCP/UDP连接,并调用远程过程取回调用结果。

图4所示RPC端口白名单生成及控制过程示意图,如图4所示,如OPC服务器与OPC客户端之间的会话端口动态分配,OPC协议安全防护网关则对OPC会话进行跟踪。通过记录OPC服务器与OPC客户端交互的端口号生成端口白名单。其中,分为两种情况,一是OPC客户端与OPC服务器交互创建实例的过程中,OPC服务器对于OPC客户端请求所返回的端口号。另一种情况则为OPC服务器作为请求端,与客户端进行交互时,使用的端口号,OPC协议安全防护网关分别将其记录下来,构建连接跟踪表。

图5所示为动态端口追踪模块流程图,如图5所示,访问控制模块的动态端口过滤功能由请求报文处理线程、响应报文处理线程以及连接两模块的连接跟踪表实现。

本发明基于对系统整体性能的考虑,通过建立Hash结点来保存OPC客户端与OPC服务器之间的连接信息,所有目的端口号为135的客户端连接都保存在一个Hash表中,通过记录用户的握手连接,存入到连接跟踪表中来加快相关信息查找,提高系统效率,具体工作流程描述如下。

请求报文还原包括:

首先,OPC协议安全防护网关对OPC客户端与OPC服务器之间的三次握手连接报文进行还原,获取首次连接信息(包括源IP、目的IP、源端口号、目的端口号、调用号),根据获得的信息在Hash表中构造相应的节点(建立字段源IP、目标IP、源端口号、目的端口号、用户请求的目标IID及其调用号六元组),用于OPC会话的跟踪。OPC协议安全防护网关对请求报文的处理过程如下:

OPC协议安全防护网关拦截发送RemoteCreateInstance请求的OPC请求报文,根据客户端报文中的源IP、目的IP、源端口号、目的端口号的四元组定位Hash节点,并将请求的IID填入连接跟踪表项,等待OPC服务器响应返回的端口号。

经过上述处理过程,连接跟踪表中即存放一条此次连接的相关信息。

响应报文还原包括:

OPC协议安全防护网关完成响应报文的还原后,判断源端口是否为135,若是,根据目标IP、源IP、源端口号、目的端口号定位Hash表,填写调用号,并通过调用号判断此响应为RemoteCreateInstance请求的响应,最后将OPC服务器返回的目标端口号存入白名单链表中,建立了源IP、目标IP、目标端口号三元组的白名单项。

白名单匹配包括:

当客户端请求报文目标端口不为135时,网关首先查找端口白名单,若查找成功,则直接提交到实现通信内容检测的访问控制模块,以提高处理效率。如果三元组匹配失败,则截获,并生成报警信息。

基于通信内容的访问控制包括:

从协议报文规范的层面分析,本发明重点针对功能组件接口进行分类研究,结合组件对象-接口与协议数据长度的对应关系,以及组件对象-接口与协议数据中寄存器数值的上、下限的对应关系进行深入分析,分别对长度数据和寄存器数值限值建立相应的白名单库。

图6所示为OPC协议头字段示意图,如图6所示,本发明将功能组件接口作为OPC分析的最重要的报文特征。OPC协议规范中,报文对象-功能组件接口与报文长度以及操作的目标寄存器地址之间存在相互关联。部分攻击者通过对OPC报文的篡改、增删等方式,使其不符合正常报文规范来达到攻击目的,如RPC DCOM报文长度域的堆缓冲区溢出攻击以及震网病毒攻击。因此,本发明针对功能组件接口与报文长度之间的关联性以及功能组件接口与寄存器地址和范围的关联性进行分析,设计了基于报文规范层面分析通信内容访问控制方法。对于OPC协议,报文主要包括RPC头、OPC协议数据单元。RPC头占用24个字节。协议数据单元包括了功能组件接口和寄存器地址等数据。功能组件接口占用16个字节,数据部分最大可以占用1420字节,最小可以没有。且OPC寄存器地址及其值域与对象-组件接口,以及Context ID(RPC例程编号)、OptNumber等字段有关。

图7所示为OPC协议数据字段示意图,如图6以及图7所示,对于不同对象的组件接口,PDU的长度是有着不一样的限制,对于同一组件接口,其例程编号不同,操作参数不同,其数据长度也不同。但对于同一对象的同一组件接口的相同例程编号,且操作参数相同时,其长度是固定的。因此本发明通过{对象,接口,例程编号、操作参数、数据长度}五元组,来构建OPC协议长度字段的白名单匹配表,同时对象-组件接口是与动态端口的白名单表一致,因此可以简化为{端口号、例程编号、操作参数、数据长度},根据前三者唯一确定数据长度是否合法。

OPCServer中不同客户端操作的寄存器地址与数量不一样,本发明对每个OPC客户端建立寄存器数值的上下限白名单表。本发明通过{寄存器地址、数值上限、数值下限}三元组,来构建OPC协议数据项白名单表。

图8所示为基于通信内容的访问控制流程图,如图8所示,通信内容的访问控制是指对数据包载荷特征进行分析,包括载荷长度、组件接口寄存器地址等协议关键字。

如图8所示,对于长度字段的过滤流程如下,当访问控制模块获取协议关键字段后,根据{端口号、例程编号、操作参数、数据长度}五元组中的前四项定位到白名单数据库,当数据长度与接受数据包中的Data length一致,表示数据正常,若不一致则进行过滤。对于寄存器值域的过滤流程如下,当访问控制模块获取寄存器地址后,查找白名单库,对比该寄存器地址对应的值域,若符合则通过,若不符合,则进行过滤。

本发明针对基于OPC协议的工业控制系统与企业网互联的安全防护需求,设计了一种基于OPC协议的安全网关防护系统访问控制方法,能够满足工业控制系统自身安全防护及其与企业网互联的整体安全防护需求。具有如下优点:

接入控制:对OPC客户端和服务器进行身份认证,用户通过认证后,建立安全隧道,从而使得攻击者无法通过网络进行信息窃取或进行恶意攻击;

动态端口的访问控制:对OPC客户端的通信端口进行控制,保证用户在默认情况下只能通过服务器授权的合法端口进行通信;

OPC协议数据的访问控制:对OPC客户端的读写行为进行访问控制,从而保证用户在默认情况下只能写入合法范围内的数据项,攻击者无法通过篡改工业参数破坏工控设备。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1