CN104734903B - 基于动态跟踪技术的opc协议的安全防护方法 - Google Patents
基于动态跟踪技术的opc协议的安全防护方法 Download PDFInfo
- Publication number
- CN104734903B CN104734903B CN201310719266.7A CN201310719266A CN104734903B CN 104734903 B CN104734903 B CN 104734903B CN 201310719266 A CN201310719266 A CN 201310719266A CN 104734903 B CN104734903 B CN 104734903B
- Authority
- CN
- China
- Prior art keywords
- opc
- port
- server
- protecting method
- safety protecting
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明公开了一种基于动态跟踪技术的OPC协议的安全防护方法,该方法一端连接一个或多个OPC客户端、另一端连接一个或多个OPC服务器,通过设计的数据捕获、数据包解析分析的OPC包,之后进行动态跟踪与端口的授权管理,跟踪OPC数据包端口内容,在建立连接之后对流经的数据包基于端口及协议进行监控,阻止不合法的数据包通过。该方法的设备只需简单接入OPC客户端与OPC服务器端之间即可,无需其他配置操作,即可以保证OPC通信网络的安全性。
Description
技术领域
本发明涉及一种基于动态跟踪技术的OPC协议的安全防护方法,属于工业控制网络安全领域。
背景技术
随着过程自动化的发展,自动化系统厂商希望能够集成不同厂家的不同硬件设备和软件产品,各家设备之间实现互操作,工业现场的数据能从车间级汇入到整个企业信息系统中。OPC是一种能够有效地进行数据访问和管理的开放标准,能在工业控制环境中各个数据源之间灵活地进行通信。
OPC在电力行业、石化行业、楼宇控制等很多领域都有应用,能对PLC、DCS、Historian数据库等很多设备进行有效的访问与整合,它的出现为基于Windows的应用程序和现场过程控制应用建立了桥梁。
但OPC协议(OPC DA,OPC HAD和OPC A&E)基于微软的DCOM协议,DCOM协议是在网络安全问题被广泛认识之前设计的。因此,这些协议给控制系统的安全性和可靠性提出了极大的挑战。
大多数TCP和UDP通讯协议都使用单一的标准化端口号,例如Modbus TCP通常使用502端口。客户端设备建立对服务器设备502端口的连接,然后发送数据到服务器设备,或者接受来自服务器设备的数据。使用防火墙来保护这些客户端和服务器设备相对而言比较简单,只需设置防火墙,仅允许指定端口号的上的通讯,阻止其他所有的网络通讯即可。
OPC Classic协议就不是如此简单了,建立OPC连接需要以下两步:
(1)客户端通过135端口查询服务器以获取通讯所需的TCP端口号;
(2)客户端使用第一步获取到的端口号连接到服务器,访问目标数据。
实际数据连接(步骤2)使用的端口号是由OPC服务器以一个虚拟随机序列动态分配的,因此没有办法提前知道服务器返回给客户端的端口号。
正因如此,传统的防火墙在保护OPC服务器时,不得不允许OPC客户端和OPC服务器之间如此大范围内的任何端口号的TCP连接。在这种情况下,防火墙提供的安全保障被降至最低。因此,目前绝大多数的OPC服务器都在没有任何防火墙保护的情况下运行,从而很容易受到恶意软件和其他安全威胁的攻击。
发明内容
有鉴于此,本发明的目的是提供一种保证OPC通信安全的方法,基于动态跟踪技术,解决OPC协议因为DCOM技术的安全脆弱点所产生的安全威胁,保证应用OPC技术的工业控制网络通信的安全性。
本发明为实现上述目的所采用的技术方案是:一种基于动态跟踪技术的OPC协议的安全防护方法,包括以下步骤:
数据捕获与协议解析:利用Linux内核的Netfilter机制采集工业控制系统中OPC通讯流量,按照数据包信息进行协议判断,只解析OPC协议的数据信息,解析出源IP地址、目的IP地址、源端口号、目的端口号、服务器分配的端口号;
端口跟踪:跟踪客户端OPC请求信息,在服务器返回OPC应答信息中包括服务器端通过一个虚拟随机序列动态分配的TCP端口号,在协议解析过程中对解析出来的动态分配TCP端口进行记录;
端口授权管理:对合法的TCP端口分配交互过程进行授权,即打开安全防护设备正常通讯所需最小权力的端口,并对交互过程维护;
访问控制:对经过TCP端口授权的交互通信信息的放行,并对该交互通信信息的传输过程进行访问控制防护,阻止未经TCP端口授权的数据传输及控制命令传送;阻止不符合DCE/RPC协议标准的请求及响应。
所述OPC协议解析出的数据信息被存储下来。
所述端口授权管理还包括:定期检测TCP端口授权是否有效,关闭达到时间限制的打开端口。
所述关闭达到时间限制的打开端口根据源IP地址、目的IP地址、所需端口号,关闭这个端口号的端口。
所述访问控制允许域名解析通讯通过,允许通过其计算机名访问OPC服务器,允许OPC客户端和OPC服务器之间的NetBIOS名字服务和NetBIOS数据报服务。
本发明在深入理解OPC协议及DCOM基础上设计,有很好的稳定扩展性及实用性,只需简单接入OPC客户端与OPC服务器端之间即可,无需其他配置操作,即可以保证OPC通信网络的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图,均应落入本发明的保护范围。
图1为本发明的整体功能示意图;
图2为本发明的基本模型流程图;
图3为本发明中基于白明单方式进行访问控制的功能示意图;
图4为本发明中动态跟踪与端口管理功能流程图。
具体实施方式
下面结合附图及实施例对本发明做进一步的详细说明。
为了防护OPC通信的安全,并且在不改变工业控制系统拓扑结构的情况下,本发明用于下述情形:一端连接一个或多个OPC客户端、另一端连接一个或多个OPC服务器,通过对两端流经的数据流进行处理来保证安全性。
参见图1,示出了本发明基于动态跟踪技术的OPC协议安全防护方法的基本思想及实现原理,参见图2,示出了本方法的基本模型流程图及结构,本发明的方法在具体实施时,工作主要流程如下:
步骤一:利用Netfilter机制捕获流量数据包,注册钩子函数,截获网络接口数据流量sk_buff,包括OPC协议的数据流,而不是通过拷贝网卡数据包进行安全防护。
步骤二:对于客户端捕获的数据,设计协议解析功能OPC_check,它支持OPC DA、OPC XML-DA、OPC HDA和OPC A&E协议,判断数据包流量是否是135端口,如果是135端口数据,认为客户端发起OPC连接请求,解析数据包内容源IP地址、目的IP地址、源端口号、目的端口号;对于服务器端捕获的数据,经过协议解析OPC_check,判断是否是端口135回应请求信息的数据包,如果是解析数据包内容源IP地址、目的IP地址、源端口号、目的端口号、及其中包含返回的OPC服务器端通过一个虚拟随机序列动态分配的一个端口号;如果为其它信息,转到访问控制模块信息进行处理。
步骤三:将服务器端捕获的内容源IP地址、目的IP地址、源端口号、目的端口号、及服务器端分配的端口号,根据客户端捕获的源IP地址、目的IP地址、源端口号、目的端口号进行相关性判断,如果存在,并且分配的端口号不同,则在相同的双向链表存储位置之后建立一个新链表,如果存在,但分配的端口号相同,但这种情况基本不会发生,则关闭已打开的端口号,让OPC客户端从新与服务器端进行连接;如果不存在,则基于服务器端解析的信息新建存储空间;
其中存储空间是一个双向链表结构,链表内容也是个双向链表结构。
步骤四:基于存储内容,参见图3设计了端口授权管理模块,它先判断端口是否已打开,如果没有打开,则授权打开存储内容中服务器端分配的端口号,如果已打开,则关闭端口连接,让OPC客户端与服务器端重新建立连接。并且基于访问时间先后改变双向链表次序,用于在新进程中定时检查是否有长时间不活动,但还打开的端口,其中对放在前面的端口信息,检测、关闭达到限制的端口。
其中授权管理模块每条命令在打开与关闭端口时都要向访问控制模块中的规则信息添加或删除规则。
步骤五:设计基于白名单的访问控制模块,参见图4,其中规则信息主要包含源IP地址、目的IP地址、端口号信息、及匹配规则动作,默认策略为阻止一些流量信息,即能阻止非法端口数据的数据传输及控制命令传送,阻止不否符合DCE/RPC协议标准的请求及响应;端口授权管理不仅能添加访问控制规则,同时具有删除规则的能力。
其中例外规则为添加了允许域名解析通讯通过,允许通过其计算机名访问OPC服务器,允许OPC客户端和OPC服务器之间的NetBIOS名字服务和NetBIOS数据包服务。
Claims (5)
1.一种基于动态跟踪技术的OPC协议的安全防护方法,其特征在于,包括以下步骤:
数据捕获与协议解析:利用Linux内核的Netfilter机制采集工业控制系统中OPC通讯流量,按照数据包信息进行协议判断,只解析工业标准OPC协议的数据信息,解析出源IP地址、目的IP地址、源端口号、目的端口号、服务器分配的端口号;
端口跟踪:跟踪客户端OPC请求信息,在服务器返回OPC应答信息中包括服务器端通过一个虚拟随机序列动态分配的TCP端口号,在协议解析过程中对解析出来的动态分配TCP端口进行记录;所述动态分配TCP端口为服务器分配的端口号;
端口授权管理:对合法的TCP端口分配交互过程进行授权,即打开安全防护设备正常通讯所需最小权力的端口,并对交互过程维护;
访问控制:对经过TCP端口授权的交互通信信息的放行,并对该交互通信信息的传输过程进行访问控制防护,阻止未经TCP端口授权的数据传输及控制命令传送;阻止不符合DCE/RPC协议标准的请求及响应。
2.根据权利要求1所述的基于动态跟踪技术的OPC协议的安全防护方法,其特征在于,所述工业标准OPC协议解析出的数据信息被存储下来。
3.根据权利要求1所述的基于动态跟踪技术的OPC协议的安全防护方法,其特征在于,所述端口授权管理还包括:定期检测TCP端口授权是否有效,关闭达到时间限制的打开端口。
4.根据权利要求3所述的基于动态跟踪技术的OPC协议的安全防护方法,其特征在于,所述关闭达到时间限制的打开端口是根据源IP地址、目的IP地址、所需端口号,关闭这个端口号的端口。
5.根据权利要求1所述的基于动态跟踪技术的OPC协议的安全防护方法,其特征在于,所述访问控制允许域名解析通讯通过,允许以计算机名方式访问OPC服务器的数据通过,允许OPC客户端和OPC服务器之间的NetBIOS名字服务和NetBIOS数据报服务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310719266.7A CN104734903B (zh) | 2013-12-23 | 2013-12-23 | 基于动态跟踪技术的opc协议的安全防护方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310719266.7A CN104734903B (zh) | 2013-12-23 | 2013-12-23 | 基于动态跟踪技术的opc协议的安全防护方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104734903A CN104734903A (zh) | 2015-06-24 |
CN104734903B true CN104734903B (zh) | 2018-02-06 |
Family
ID=53458358
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310719266.7A Active CN104734903B (zh) | 2013-12-23 | 2013-12-23 | 基于动态跟踪技术的opc协议的安全防护方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104734903B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105959289A (zh) * | 2016-06-06 | 2016-09-21 | 中国东方电气集团有限公司 | 一种基于自学习的OPC Classic协议的安全检测方法 |
CN106789281B (zh) * | 2016-12-28 | 2019-12-31 | 青岛海天炜业过程控制技术股份有限公司 | 一种opc协议通信过程中实现断线重连的方法 |
CN108259478B (zh) * | 2017-12-29 | 2021-10-01 | 中国电力科学研究院有限公司 | 基于工控终端设备接口hook的安全防护方法 |
CN108848067B (zh) * | 2018-05-28 | 2021-05-25 | 北京威努特技术有限公司 | 智能学习并预置只读白名单规则的opc协议安全防护方法 |
CN109474540B (zh) * | 2018-09-12 | 2022-06-10 | 奇安信科技集团股份有限公司 | 一种识别opc流量的方法及装置 |
CN111142480B (zh) * | 2019-12-09 | 2023-04-25 | 南京国电南自维美德自动化有限公司 | 一种过程控制站安全通讯方法、系统及分散控制系统 |
CN111131310B (zh) * | 2019-12-31 | 2022-10-18 | 奇安信科技集团股份有限公司 | 访问控制方法、装置、系统、计算机设备和存储介质 |
CN112003861B (zh) * | 2020-08-24 | 2022-11-08 | 宝牧科技(天津)有限公司 | 一种用于opc da数据包低时延穿透安全设备的方法 |
CN112383445A (zh) * | 2020-10-27 | 2021-02-19 | 上海市共进通信技术有限公司 | 基于netfilter和netlink实现家庭网关数据访问监控的方法及系统 |
CN114006809B (zh) * | 2021-10-09 | 2023-11-28 | 北京天融信网络安全技术有限公司 | 调整工控防火墙数据传输的方法、装置、设备和存储介质 |
CN115221490B (zh) * | 2022-09-20 | 2024-02-23 | 陕西天视致远航空技术有限公司 | 一种端口信息加固计算机及其端口信息加固方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1713584A (zh) * | 2004-06-25 | 2005-12-28 | 上海宝信软件股份有限公司 | 内网ip地址发现与阻断系统及方法 |
US8215417B2 (en) * | 2007-01-23 | 2012-07-10 | Canrig Drilling Technology Ltd. | Method, device and system for drilling rig modification |
CN102694815B (zh) * | 2012-06-04 | 2016-05-11 | 浙江中控技术股份有限公司 | 一种安全防护方法、控制单元及工业控制系统 |
CN103036870A (zh) * | 2012-10-26 | 2013-04-10 | 青岛海天炜业自动化控制系统有限公司 | 基于工业协议OPC Classic的无IP分布式工业防火墙深度检查算法 |
CN102984170B (zh) * | 2012-12-11 | 2016-08-03 | 清华大学 | 一种工业控制网络安全过滤系统及方法 |
CN103457948A (zh) * | 2013-08-29 | 2013-12-18 | 网神信息技术(北京)股份有限公司 | 工业控制系统及其安全装置 |
-
2013
- 2013-12-23 CN CN201310719266.7A patent/CN104734903B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN104734903A (zh) | 2015-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104734903B (zh) | 基于动态跟踪技术的opc协议的安全防护方法 | |
Zhou et al. | A fog computing based approach to DDoS mitigation in IIoT systems | |
US9954873B2 (en) | Mobile device-based intrusion prevention system | |
CN101802837B (zh) | 通过对设备的动态地址隔离来提供网络和计算机防火墙保护的系统和方法 | |
Kelbert et al. | Data usage control enforcement in distributed systems | |
US9817969B2 (en) | Device for detecting cyber attack based on event analysis and method thereof | |
CN105430011B (zh) | 一种检测分布式拒绝服务攻击的方法和装置 | |
CN108259425A (zh) | 攻击请求的确定方法、装置及服务器 | |
CN104917776A (zh) | 一种工控网络安全防护设备与方法 | |
CN106161453B (zh) | 一种基于历史信息的SSLstrip防御方法 | |
CN104394122A (zh) | 一种基于自适应代理机制的http业务防火墙 | |
US20090119745A1 (en) | System and method for preventing private information from leaking out through access context analysis in personal mobile terminal | |
CN104767748A (zh) | Opc服务器安全防护系统 | |
EP3376740B1 (en) | Method and apparatus for acquiring ip address | |
CN109309684A (zh) | 一种业务访问方法、装置、终端、服务器及存储介质 | |
CN116055254A (zh) | 一种安全可信网关系统、控制方法、介质、设备及终端 | |
CN105162763B (zh) | 通讯数据的处理方法和装置 | |
US7401353B2 (en) | Detecting and blocking malicious connections | |
KR20070079781A (ko) | 하이퍼 텍스터 전송규약 요청 정보 추출을 이용한침입방지시스템 및 그를 이용한 유알엘 차단방법 | |
CN102045310B (zh) | 一种工业互联网入侵检测和防御方法及其装置 | |
CN110022319A (zh) | 攻击数据的安全隔离方法、装置、计算机设备及存储设备 | |
Chen et al. | Effective allied network security system based on designed scheme with conditional legitimate probability against distributed network attacks and intrusions | |
US20160205135A1 (en) | Method and system to actively defend network infrastructure | |
Sharma et al. | Firewalls: A Study and Its Classification. | |
CN110581843B (zh) | 一种拟态Web网关多应用流量定向分配方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |