CN112650077A - 基于工控业务仿真的plc蜜罐***、实现方法及仿真设备 - Google Patents
基于工控业务仿真的plc蜜罐***、实现方法及仿真设备 Download PDFInfo
- Publication number
- CN112650077A CN112650077A CN202011460770.6A CN202011460770A CN112650077A CN 112650077 A CN112650077 A CN 112650077A CN 202011460770 A CN202011460770 A CN 202011460770A CN 112650077 A CN112650077 A CN 112650077A
- Authority
- CN
- China
- Prior art keywords
- simulation
- module
- real
- data
- service
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B17/00—Systems involving the use of models or simulators of said systems
- G05B17/02—Systems involving the use of models or simulators of said systems electric
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Testing And Monitoring For Control Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供一种基于工控业务仿真的PLC蜜罐***、实现方法及仿真设备,属于工业控制***安全技术领域,所述***包括信息服务仿真模块、过程控制仿真模块以及数据转存模块,信息服务仿真模块用于通过部署蜜罐***来仿真预设设备,并使用蜜罐内置的预设协议服务器与客户端进行交互;过程控制仿真模块用于提供实时更新的动态生产数据,并在蜜罐***内构建模拟真实生产现场PLC的工作过程;数据转存模块为所述信息服务仿真模块和所述过程控制仿真模块的交互中转站。本发明通过对工控设备业务逻辑进行仿真,实现了信息服务仿真和控制过程仿真的有效协同,增强了蜜罐***的业务真实度和可靠性,并且有效提升了PLC蜜罐***的仿真度和欺骗性。
Description
技术领域
本发明涉及工业控制***安全技术领域,尤其涉及一种基于工控业务仿真的PLC蜜罐***、实现方法及仿真设备。
背景技术
PLC(Programmable Logic,可编程逻辑器件)是关键基础设施中的基础控制设备,其安全性涉及整个控制***的稳定运行。近年来,随着传统工业逐步进行信息化、数字化和智能化的产业升级,工业控制***在提高了信息化水平的同时,大量工业设备不可避免地接入互联网,使得其信息安全问题也愈加突出。PLC遭受黑客攻击的途径也日趋多样化,各种木马和病毒变体数量不断攀升,威胁着工业控制***的安全稳定运行和人员生命财产安全。
蜜罐技术是一种用于网络威胁发现的主动防御技术,它通过设置诱饵性质的虚拟***来吸引攻击者入侵并对其进行威胁行为捕获与分析,蜜罐的核心在于交互能力。为保障工业控制***安全,应对互联网中潜在的威胁,仅仅依靠被动防御是不够的,应用蜜罐技术进行主动防御是工控安全防护领域的强有力手段。
按照交互程度的深浅,蜜罐分为高交互蜜罐和低交互蜜罐。低交互蜜罐只能将非常有限的信息反馈给攻击者,很多情况下容易被外界识别出来;而高交互蜜罐则是蜜罐技术的另一极,不仅要模拟协议和服务,还需要提供真实的***以备攻击者探查,从而具备足够的欺骗性以捕获复杂的威胁。而随着蜜罐识别技术的不断发展,对蜜罐的交互能力也提出了越来越高的要求。由于工控***控制过程的交互特性,现有的传统蜜罐框架难以满***互需求,同时已有的工控蜜罐也缺乏针对工控业务逻辑的仿真。
发明内容
本发明提供一种基于工控业务仿真的PLC蜜罐***、实现方法及仿真设备,用以解决现有技术中工控设备缺乏业务逻辑仿真的问题,实现信息服务仿真和控制过程仿真的有效协同,提升了PLC蜜罐***的仿真度和欺骗性。
本发明提供一种基于工控业务仿真的PLC蜜罐***,包括信息服务仿真模块、过程控制仿真模块以及数据转存模块,所述数据转存模块包括实时生产数据库和控制指令数据库,其中,
所述信息服务仿真模块,用于通过部署蜜罐***来仿真预设设备,并使用蜜罐内置的预设协议服务器与客户端进行交互;
所述过程控制仿真模块,用于提供实时更新的动态生产数据,并在蜜罐***内构建模拟真实生产现场PLC设备的工作过程;
所述数据转存模块,为所述信息服务仿真模块和所述过程控制仿真模块的交互中转站;
其中,所述信息服务仿真模块通过所述数据转存模块的实时生产数据库,读取所述过程控制仿真模块的实时生产数据;所述过程控制仿真模块通过所述数据转存模块的控制指令数据库,实时读取所述信息服务仿真模块下达的指令,并根据所述指令改变生产状态,以实现控制过程仿真运行状况的闭环逻辑。
根据本发明提供的一种基于工控业务仿真的PLC蜜罐***,所述信息服务仿真模块采用S7comm私有协议服务器与攻击者所在的客户端进行通信,所述信息服务仿真模块包括S7私有服务仿真单元,
所述S7私有服务仿真单元,用于根据攻击者的请求,读取所述数据转存模块中实时生产数据库里的数据并组入响应数据包,或者根据攻击者提供的指令,写入所述控制指令数据库,以满***互需求。
根据本发明提供的一种基于工控业务仿真的PLC蜜罐***,所述过程控制仿真模块采用Simulink仿真工具提供实时更新的动态生产数据,所述过程仿真模块包括燃气管网过程建模单元,
所述燃气管网过程建模单元,用于将仿真生成的实时生产数据写入所述转存模块的实时生产数据库中,并接收所述控制指令数据库实时发送的参数作为***的控制信号。
根据本发明提供的一种基于工控业务仿真的PLC蜜罐***,所述燃气管网过程建模单元包括模拟传感器和阀门仿真,所述模拟传感器用于将仿真传感数据实时写入所述实时生产数据库,所述阀门仿真设有阀门输入接口,用于接收所述控制指令数据库实时发来的参数作为***的控制信号。
本发明还提供一种基于工控业务仿真的PLC蜜罐***的实现方法,包括:
信息服务仿真模块根据攻击者的请求,读取数据转存模块中实时生产数据库里的数据并组入响应数据包,或者根据攻击者提供的指令,写入数据转存模块的控制指令数据库,以满足所述信息服务仿真模块与所述攻击者的交互需求;
过程控制仿真模块将仿真生成的生产数据,实时写入所述转存模块的实时生产数据库,以及所述过程控制仿真模块实时读取所述信息服务仿真模块写入所述控制指令数据库的实时指令,并根据所述实时指令改变生产状态,以实现控制过程仿真运行状况的闭环逻辑。
根据本发明所述的一种基于工控业务仿真的PLC蜜罐***的实现方法,所述信息服务仿真模块是采用S7comm私有协议服务器与攻击者所在的客户端进行通信,所述S7comm私有协议提供S7comm服务,建立S7comm服务的通信连接的步骤包括:
通过握手在客户端和服务端建立COTP连接;
对客户端和服务端进行S7comm服务的通信设置;
对客户端和服务端进行S7comm服务的应答交互;
服务端将生成基于S7comm服务的响应报文返回给客户端。
根据本发明所述的一种基于工控业务仿真的PLC蜜罐***的实现方法,对S7comm服务的交互功能进行扩充的步骤包括:
客户端向服务器发送请求数据包时,所述数据包中的报文S7Data包含功能码标识,所述功能标识用于表示客户端所请求的服务类型;
服务器根据所述功能标识调用相应的程序处理模块来生成响应数据,并将所述相应数据封装至响应报文中返回给客户端。
根据本发明所述的一种基于工控业务仿真的PLC蜜罐***的实现方法,所述过程控制仿真模块采用Simulink仿真工具提供实时更新的动态生产数据,并通过ToInstrument组件将数据实时写入所述实时生产数据库,To Instrument组件用于模拟传感器。
根据本发明所述的一种基于工控业务仿真的PLC蜜罐***的实现方法,所述数据转存模块采用SQLite引擎构建实时生产数据库和控制指令数据库,实时生产数据库存储所述过程控制仿真模块所生成的实时生产数据,控制指令数据库存储所述信息服务仿真模块所接收到的控制指令。
本发明还提供一种仿真设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述基于工控业务仿真的PLC蜜罐***的实现方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述基于工控业务仿真的PLC蜜罐***的实现方法的步骤。
本发明提供的一种基于工控业务仿真的PLC蜜罐***、实现方法及仿真设备,通过对工控设备业务逻辑进行仿真,实现了信息服务仿真和控制过程仿真的有效协同,增强了蜜罐***的业务真实度和可靠性,并且有效提升了PLC蜜罐***的仿真度和欺骗性。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的PLC蜜罐***的架构示意图;
图2是本发明提供的S7comm协议包头格式示意图;
图3是本发明提供的S7comm协议通信流程示意图;
图4是本发明提供的S7comm服务器工作流程示意图;
图5是本发明提供的燃气管网Simulink仿真***的架构示意图;
图6是本发明提供的服务仿真循环的数据流示意图;
图7是本发明提供的过程仿真循环的数据流示意图;
图8是本发明提供的工控设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
针对现有技术的工控蜜罐***缺乏业务逻辑仿真的问题,本发明以西门子S7-300PLC设备为参考,提出了一种基于工控业务仿真的PLC蜜罐***、实现方法及工控设备。
西门子(SIEMENS)公司生产的可编程序控制器在我国的应用也相当广泛,在冶金、化工、印刷生产线等领域都有应用。西门子公司的PLC产品包括LOGO、S7-200、S7-1200、S7-300、S7-400等。而西门子S7-300 PLC与外部的通信基于其企业专有的S7comm协议,面向该款S7-300 PLC设备的蜜罐***则需支持尽可能多的S7comm协议服务类型,进而提升PLC蜜罐***的仿真度,延缓攻击者的滞留时间,捕获更多的威胁行为数据。
本发明结合典型工控蜜罐软件Conpot和建模仿真工具Matlab/Simulink,拓展了S7comm多种私有协议服务,并实现了信息服务仿真和控制过程仿真的有效协同,在交互层次上贯穿了信息域和物理域,大大增强了蜜罐***的业务真实度和可靠性。实验表明,攻击者通过读写操作可实现对生产数据的获取和对生产流程的控制,有效提升了PLC蜜罐***的仿真度和欺骗性,突破了现有交互层次和方式的局限。另外,本发明所提供的基于工控业务仿真的PLC蜜罐***、实现方法同样适用于许多其它类型的工业控制设备(以下简称“工控设备”)。
其中,Conpot是一个工业控制***蜜罐,旨在收集攻击者针对工业控制***的攻击方法和动机。
其中,Matlab是一种具有强大功能的应用软件,可以应用在数值分析、数值和符号计算、工程和科学绘图、控制***的设计与仿真、数字图像处理技术、数字信号处理技术、通信***设计与仿真、财务与金融工程等。Simulink是Matlab软件下的一个附加组件,是一个用来对动态***进行建模、仿真和分析的Matlab软件包。
下面结合图1-图8描述本发明所述基于工业业务仿真的PLC蜜罐***、实现方法及工控设备。
图1是本发明提供的PLC蜜罐***的架构示意图,如图所示。一种基于工控业务仿真的PLC蜜罐***,包括信息服务仿真模块100、过程控制仿真模块102以及数据转存模块104,所述数据转存模块包括实时生产数据库1041和控制指令数据库1042,数据流动包括服务仿真循环(即图中的实线)和过程仿真循环(即图中的虚线)两条线路。
所述信息服务仿真模块100,用于通过部署蜜罐***来仿真预设设备,并使用蜜罐内置的预设协议服务器与客户端进行交互。
所述过程控制仿真模块102,用于提供实时更新的动态生产数据,并在蜜罐***内构建模拟真实生产现场PLC的工作过程;
所述数据转存模块104,为所述信息服务仿真模块100和所述过程控制仿真模块102的交互中转站,也是服务仿真循环和过程仿真循环的核心。
可选的,所述数据转存模块104通过脚本程序实现数据读取、存储和发送的功能。
其中,所述信息服务仿真模块100通过所述数据转存模块104的实时生产数据库1041,读取所述过程控制仿真模块102的实时生产数据;所述过程控制仿真模块102通过所述数据转存模块104的控制指令数据库1042,接收所述信息服务仿真模块100下达的实时指令,并根据所述实时指令改变生产状态,以实现控制过程仿真运行状况的闭环逻辑。
可选的,所述信息服务仿真模块100通过部署Conpot蜜罐来仿真西门子S7-300PLC设备,使用Conpot内置的S7comm私有协议服务器与攻击者所在的客户端进行通信,所述信息服务仿真模块100包括S7私有服务仿真单元1001。
所述S7私有服务仿真单元1001,用于根据攻击者的请求,调用相应函数,读取所述数据转存模块104中实时生产数据库1041里的数据并组入响应数据包,或者根据攻击者提供的指令,写入所述控制指令数据库1042,以满***互需求。
可选的,所述过程控制仿真模块102采用Simulink仿真工具提供实时更新的动态生产数据,所述过程仿真模块102包括燃气管网过程建模单元1021。
所述燃气管网过程建模单元1021,用于将仿真生成的实时生产数据写入所述转存模块的实时生产数据库中,并接收所述控制指令数据库实时发送的参数作为***的控制信号。
可选的,所述燃气管网过程建模单元1021包括模拟传感器和阀门仿真,所述模拟传感器用于将仿真传感数据实时写入所述实时生产数据库,所述阀门仿真设有阀门输入接口,用于接收所述控制指令数据库实时发来的参数作为***的控制信号。
由此可知,本发明所述的基于工控业务仿真的PLC蜜罐***以开源蜜罐Conpot和Simulink仿真器为基础,基于S7comm服务开发和工控业务仿真,采用信息服务仿真、数据转存和过程控制仿真三模块体系,通过模块间的信息交换,实现了具备高交互能力和高仿真度的PLC蜜罐***。
下面针对本发明所述信息服务仿真模块100的构建进行描述。
以西门子S7-300 PLC设备的S7comm协议服务为例,信息服务仿真模块100的构建需要解决两个关键问题,一是S7comm私有协议的逆向解析,二是在已有Conpot蜜罐框架基础上进行S7comm功能码的拓展。具体构建流程如下:
步骤1),主机PC与西门子S7-300 PLC设备间实现网络可达,将PC端的IP与PLC配置在同一网段内。
步骤2),使用西门子S7-300 PLC设备的典型上位机软件Step7,基于S7comm协议的握手机制向PLC发送包含待实现功能码的三段请求报文,建立通信会话连接。
S7comm协议是西门子S7系列PLC内部集成的一种私有不公开协议,属于TCP/IP协议族的一种。它运行在应用层中,经过特殊优化,用于西门子设备之间或者与外界进行通信。S7comm协议常用的通信方式是基于以太网的客户端/服务端模式:PLC设备作为服务端,接收外界访问请求数据包并执行相应服务,返回响应数据包;外部请求方作为客户端,与PLC进行通信,发送请求数据包并接收响应数据包。
图2是本发明提供的S7comm协议包头格式示意图,如图2所示。基于S7comm协议进行通信的数据包使用了多种协议进行封装,S7comm应用层数据在经COTP(ConnectionOrientedTransport Protocol,简称COTP,面向连接的传输协议)协议和TPKT(ISOTransport Service ontop of the TCP/ISO传输服务通过TCP)协议打包后,由TCP/IP层进行封装与发送。
图3是本发明提供的S7comm协议通信流程示意图,如图所示,S7comm协议服务端和客户端之间的通信流程分为三步。第一步是经过客户端和服务端的握手建立COTP连接;第二步则需进行S7comm通信设置;第三步进行S7comm服务的应答交互,最终服务端会生成基于特定S7comm服务的响应报文返回给客户端,这与真实PLC设备的交互过程一致。
步骤3),借助常用网络抓包工具(比如Wireshark)抓取相应的响应数据包。Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。
可以理解的,本发明不限于Wireshark,还可以是其他网络抓包工具。
步骤4)分析Conpot源码中对于S7comm数据包的解析过程,对响应执行程序进行修改和完善,确保其对S7comm服务主功能码的兼容性。
根据以上对S7comm协议通信原理的解析,并对Conpot所集成的S7comm服务仿真单元进行拓展,建立了S7comm服务器。图4是本发明提供的S7comm服务器工作流程示意图,如图所示,其处理信息的流程步骤主要包括:
步骤400,建立连接。
步骤401,接收握手信息前4个字节。
步骤402,判断接收到的数据包是否为空,为空则结束,不为空则执行步骤403。
步骤403,接收握手信息剩余数据。
步骤404,建立ISO_IP连接。
步骤405,建立S7comm连接。
步骤406,接收S7数据包。
步骤407,解析TPKT和COTP数据。
步骤408,判断是否为数据PDU(Protocol Data Unit,简称PDU,协议数据单元)?是则执行步骤409,否则返回步骤406。
步骤409,生成相应数据。
步骤410,发送响应数据后,循环执行步骤400。
S7comm服务器具备完整的信息交互机能,通过扮演PLC设备的角色来取信于外界攻击者。除此之外,S7comm服务器还集成了日志记录功能,研究者可通过分析攻击日志来提取入侵者的特征信息、还原攻击模式,以提升对于目标***的防护能力。
步骤5),基于先前捕获的PLC响应数据,为S7comm服务器添加对应功能码的数据生成器。所述数据生成器负责根据接收到的S7comm服务请求功能码(比如04为Read功能码,05为Write功能码),输出对应的Parament(参数)值和Data值,之后将这两个参数写入响应报文的S7 Data字段中(如图2所示),并交由下层进行封装与转发。
S7comm功能码是S7comm协议数据包中用来标明报文所代表S7comm私有服务的数字码,每个功能码代表一种S7comm私有服务。在基于Conpot的S7comm服务器进行通信的过程中,当客户端向S7comm服务器发送请求数据包时,报文中S7 Data部分包含的功能码标识着客户端所请求的是何种服务。服务端会据此调用相应的程序处理模块来生成响应数据,并封装至响应报文中,返回给客户端。
Conpot虽然搭建了S7comm服务器的交互框架,但并没有广泛地实现S7comm协议内的诸多私有服务。因此,本发明所述信息服务仿真模块在已有框架的基础上,结合逆向出的S7comm协议所专有的12种主功能码,20种次级功能码,对S7comm服务框架进行了深度开发,从协议仿真的角度为其扩展更多的S7comm私有交互功能,实现信息服务仿真模块的构建。
需要注意的是,在设置对应S7comm服务的功能码响应数据时,单纯的信息重放是不足以欺骗攻击者的,需要根据数据包字段来对响应数据包进行编辑。下表1、表2分别是针对Read功能码响应数据包和Write功能码请求数据包的解析示例,前者允许PLC蜜罐***模拟真实设备输出反馈给攻击者的信息,后者允许攻击者对蜜罐***中所模拟的参数信息进行修改。通过这种交互方式,能够在现有***框架下最大限度地仿真PLC设备的通信逻辑,大幅提升PLC蜜罐***的交互能力。
表1 Read功能码响应数据包的字段解析
表2 Write功能码请求数据包的字段解析
下面针对本发明所述过程控制仿真模块102的构建进行描述。
为了提升信息服务仿真模块中S7comm服务的真实性,在过程控制仿真模块里提供实时更新的动态生产数据,并在蜜罐***内构建模拟真实生产现场PLC的工作过程,需要使用MATLAB/Simulink来搭建实时仿真***。Simulink是MATLAB中的一种可视化仿真工具,其自带种类繁多、功能强大的模块库,被广泛应用在***建模、数据处理和业务仿真中。
仿真***使用了多个关键组件,来实现过程业务仿真模块与其他模块的数据实时交互传输。To Instrument组件用于将Simulink中的数据输出到外界设备中,在仿真***中用于模拟传感器,将工业过程产生的各项实时数据发送到数据转存模块中的实时生产数据库。表1所示,To Instrument支持对通信协议、地址、端口、数据类型、缓冲区大小、传输间隔、传输格式等进行设置以满足***需求。
表3过程控制仿真模块构建过程中To Instrument组件的参数设置
Query Instrument组件用于在Simulink中接收外界信号。在过程控制仿真模块中模拟***总阀,控制***紧急停车。如表4所示,与To Instrument组件类似,同样需要进行相应参数的预先设置。
表4过程控制仿真模块构建过程中Query Instrument组件的参数设置
Real-time sync组件用于Simulink中仿真***的实时化处理,通过引入此组件,Simulink***的仿真运行速度会与外界物理时间保持同步(而不是在短时间内运行完整个流程),从而模拟工业现场实时产生数据并接收控制指令的过程,使得整个PLC蜜罐***的数据流转更加真实。
下面以本发明所述过程控制仿真模块102使用Matlab/Simulink搭建了燃气管网过程建模单元1021进行描述。
过程控制仿真模块使用Matlab/Simulink搭建了燃气管网仿真***。燃气管网是一个由多过程组成的燃气输送控制***,其包括高压、中高压、低压三部分,通过监测并控制不同阶段的压强、流速、温度保持稳定预设值,最终输出标准状态的燃气到用户家中。
在Simulink中搭建的燃气管网仿真***如图5所示。其通过不同部分的协作,将仿真、通信、实时三种功能进行了结合,最终实现了接收实时控制信号,输出实时生产数据的功能。燃气管网过程组件内集成了燃气管网***生产过程仿真的诸多物理特性,包括高中低压三部分传递函数构建、干扰量模拟、开关选择模拟等,当仿真***运行正常时,该过程能够产生7个持续、实时输出的数据流,分别为运行过程中不同的流量、温度、压强值。ToInstrument组件采集以上燃气管网***产生的数据,并通过TCP/IP协议将其输出到数据转存模块的实时生产数据库中,实现了本模块***传感器的功能。Query Instrument组件接收数据转存模块通过TCP/IP协议发送的实时控制指令流,然后将其输入到燃气管网过程中,只要控制指令不变,运行状态就不会变;一旦外部输入的控制指令流发生变化,燃气管网过程的运行状态和输出数据也会随之变化,其实现的是本模块***总阀的功能。Real-time sync组件负责***的实时化,这使得该过程的仿真和通信行为都是实时进行的,符合PLC蜜罐***的设计要求。
以上给出了本发明所述基于工控业务仿真的PLC蜜罐***应用到燃气管网领域的示例说明。
以下针对本发明所述数据转存模块104的构建进行描述。
SQLite(轻型数据库)是一个轻量级的数据库,实现了自给自足的、无服务器的、零配置的、事务性的SQL(Structured Query Language,结构化查询语言)数据库引擎。与其它数据库一样,SQLite引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。
本发明所述数据转存模块104是基于SQLite数据库进行构建,包含实时生产数据库1041与控制指令数据库1042两部分。实时生产数据库1041负责存储由燃气管网工控业务仿真模型所生成的实时生产数据,并支持信息服务仿真模块的实时读取,用于响应数据包的构造;控制指令数据库1042负责存储信息服务仿真模块100所接收到的控制指令,并支持过程控制仿真模块102的实时读取,用于调整燃气管网模型的运行状态,进一步生成可变的生产数据。
可选的,本发明实施例中,所述数据转存模块104的脚本使用Python3(一种计算机程序设计语言)编写,调用的核心库是Socket和MySQL,通过搭建、操作数据库并与其他模块进行通信,实现了接收、存储生产数据和调用、发送控制指令流的功能。
实时生产数据库1041存储着***的实时生产数据,程序脚本会通过Socket(套接字)库与过程控制仿真模块的To Instrument组件相连接,并接收其输出的生产数据;然后经过一定的格式化处理,通过SQL语句将其存入数据库内。由于数据的产生和传输是实时的,因此实时生产数据库中的数据是实时变化的最新数据。
控制指令数据库1042存储***的实时控制指令。与实时生产数据库1041不同,控制指令数据库1042的数据并非实时输入,而是实时输出。控制指令数据库1042通过使用Socket脚本,向过程控制仿真模块102中的Query Instrument组件实时发送其内部存储的数据作为控制指令,从而为工业过程提供了持续的阀门信号。
图6是本发明提供的服务仿真循环的数据流示意图;如图所示。本发明所述信息服务仿真模块与攻击者之间的服务仿真循环的数据流,包括如下步骤:
步骤600,信息服务仿真模块判断接收到攻击者发来信息。如果是读请求,则执行步骤601,如果是写指令,则执行步骤602。
步骤601,信息服务仿真模块根据所述攻击者的读请求,读取数据转存模块中实时生产数据库里的数据并组入响应数据包,返回给所述攻击者。
步骤602,信息服务仿真模块根据攻击者提供的写指令,写入数据转存模块的控制指令数据库。
通过上述步骤601、602,本发明满足所述信息服务仿真模块与所述攻击者的交互需求。
图7是本发明提供的过程仿真循环的数据流示意图,如图所示。本发明所述过程控制仿真模块的过程仿真循环的数据流,包括如下步骤:
步骤700,所述过程控制仿真模块将仿真生成的生产数据,实时写入所述转存模块的实时生产数据库。
步骤701,所述过程控制仿真模块实时读取所述信息服务仿真模块写入所述控制指令数据库的实时指令,并根据所述实时指令改变生产状态,以实现控制过程仿真运行状况的闭环逻辑。
图8示例了一种仿真工控设备的实体结构示意图,如图8所示,该工控设备可以包括:处理器(processor)810、通信接口(Communications Interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行所述基于工控业务仿真的PLC蜜罐***的实现方法的步骤。
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的所述基于工控业务仿真的PLC蜜罐***的实现方法的步骤。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的所述基于工控业务仿真的PLC蜜罐***的实现方法的步骤。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种基于工控业务仿真的PLC蜜罐***,其特征在于,包括信息服务仿真模块、过程控制仿真模块以及数据转存模块,所述数据转存模块包括实时生产数据库和控制指令数据库,其中,
所述信息服务仿真模块,用于通过部署蜜罐***来仿真预设设备,并使用蜜罐内置的预设协议服务器与客户端进行交互;
所述过程控制仿真模块,用于提供实时更新的动态生产数据,并在蜜罐***内构建模拟真实生产现场PLC设备的工作过程;
所述数据转存模块,为所述信息服务仿真模块和所述过程控制仿真模块的交互中转站;
其中,所述信息服务仿真模块通过所述数据转存模块的实时生产数据库,读取所述过程控制仿真模块的实时生产数据;所述过程控制仿真模块通过所述数据转存模块的控制指令数据库,实时读取所述信息服务仿真模块下达的指令,并根据所述指令改变生产状态,以实现控制过程仿真运行状况的闭环逻辑。
2.根据权利要求1所述的***,其特征在于,所述信息服务仿真模块采用S7comm私有协议服务器与攻击者所在的客户端进行通信,所述信息服务仿真模块包括S7私有服务仿真单元,
所述S7私有服务仿真单元,用于根据攻击者的请求,读取所述数据转存模块中实时生产数据库里的数据并组入响应数据包,或者根据攻击者提供的指令,写入所述控制指令数据库,以满***互需求。
3.根据权利要求1所述的***,其特征在于,所述过程控制仿真模块采用Simulink仿真工具提供实时更新的动态生产数据,所述过程仿真模块包括燃气管网过程建模单元,
所述燃气管网过程建模单元,用于将仿真生成的实时生产数据写入所述转存模块的实时生产数据库中,并接收所述控制指令数据库实时发送的参数作为***的控制信号。
4.根据权利要求3所述的***,其特征在于,所述燃气管网过程建模单元包括模拟传感器和阀门仿真,所述模拟传感器用于将仿真传感数据实时写入所述实时生产数据库,所述阀门仿真设有阀门输入接口,用于接收所述控制指令数据库实时发来的参数作为***的控制信号。
5.一种基于工控业务仿真的PLC蜜罐***的实现方法,其特征在于,包括:
信息服务仿真模块根据攻击者的请求,读取数据转存模块中实时生产数据库里的数据并组入响应数据包,或者根据攻击者提供的指令,写入数据转存模块的控制指令数据库,以满足所述信息服务仿真模块与所述攻击者的交互需求;
过程控制仿真模块将仿真生成的生产数据,实时写入所述转存模块的实时生产数据库,以及所述过程控制仿真模块实时读取所述信息服务仿真模块写入所述控制指令数据库的实时指令,并根据所述实时指令改变生产状态,以实现控制过程仿真运行状况的闭环逻辑。
6.根据权利要求5所述的实现方法,其特征在于,所述信息服务仿真模块是采用S7comm私有协议服务器与攻击者所在的客户端进行通信,所述S7comm私有协议提供S7comm服务,建立S7comm服务的通信连接的步骤包括:
通过握手在客户端和服务端建立COTP连接;
对客户端和服务端进行S7comm服务的通信设置;
对客户端和服务端进行S7comm服务的应答交互;
服务端将生成基于S7comm服务的响应报文返回给客户端。
7.根据权利要求5所述的实现方法,其特征在于,对S7comm服务的交互功能进行扩充的步骤包括:
客户端向服务端发送请求数据包时,所述数据包中的报文S7Data包含功能码标识,所述功能标识用于表示客户端所请求的服务类型;
服务器根据所述功能标识调用相应的程序处理模块来生成响应数据,并将所述相应数据封装至响应报文中返回给客户端。
8.根据权利要去5所述的实现方法,其特征在于,所述过程控制仿真模块采用Simulink仿真工具提供实时更新的动态生产数据,并通过To Instrument组件将数据实时写入所述实时生产数据库,To Instrument组件用于模拟传感器。
9.根据权利要去5所述的实现方法,其特征在于,所述数据转存模块采用SQLite引擎构建实时生产数据库和控制指令数据库,实时生产数据库存储所述过程控制仿真模块所生成的实时生产数据,控制指令数据库存储所述信息服务仿真模块所接收到的控制指令。
10.一种仿真设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求5至9任一项所述基于工控业务仿真的PLC蜜罐***的实现方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011460770.6A CN112650077A (zh) | 2020-12-11 | 2020-12-11 | 基于工控业务仿真的plc蜜罐***、实现方法及仿真设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011460770.6A CN112650077A (zh) | 2020-12-11 | 2020-12-11 | 基于工控业务仿真的plc蜜罐***、实现方法及仿真设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112650077A true CN112650077A (zh) | 2021-04-13 |
Family
ID=75354848
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011460770.6A Pending CN112650077A (zh) | 2020-12-11 | 2020-12-11 | 基于工控业务仿真的plc蜜罐***、实现方法及仿真设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112650077A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113162948A (zh) * | 2021-05-12 | 2021-07-23 | 上海交通大学宁波人工智能研究院 | 一种模块化工控蜜罐*** |
CN114189395A (zh) * | 2022-02-15 | 2022-03-15 | 北京安帝科技有限公司 | Plc受攻击停止的风险检测包获取方法及装置 |
CN114217569A (zh) * | 2022-02-23 | 2022-03-22 | 北京安帝科技有限公司 | 工控plc数据的监控方法、装置、电子设备及存储介质 |
CN114285599A (zh) * | 2021-11-23 | 2022-04-05 | 中国人民解放军战略支援部队信息工程大学 | 基于控制器深度内存仿真的工控蜜罐构建方法及工控蜜罐 |
CN115833922A (zh) * | 2023-02-16 | 2023-03-21 | 北京航天驭星科技有限公司 | 卫星地面站任务计划的数据处理方法、***、设备、介质 |
CN117118981A (zh) * | 2023-10-19 | 2023-11-24 | 广州翼辉信息技术有限公司 | 一种基于codesys编程环境的工业云平台通信方法 |
CN117111489A (zh) * | 2023-08-25 | 2023-11-24 | 哈尔滨工程大学 | 一种plc设备的仿真方法、存储介质和电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110351237A (zh) * | 2019-05-23 | 2019-10-18 | 中国科学院信息工程研究所 | 用于数控机床的蜜罐方法及装置 |
-
2020
- 2020-12-11 CN CN202011460770.6A patent/CN112650077A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110351237A (zh) * | 2019-05-23 | 2019-10-18 | 中国科学院信息工程研究所 | 用于数控机床的蜜罐方法及装置 |
Non-Patent Citations (1)
Title |
---|
赵国新,等: "基于工控业务仿真的高交互可编程逻辑控制器蜜罐***设计实现", 《计算机应用》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113162948A (zh) * | 2021-05-12 | 2021-07-23 | 上海交通大学宁波人工智能研究院 | 一种模块化工控蜜罐*** |
CN113162948B (zh) * | 2021-05-12 | 2022-07-26 | 上海交通大学宁波人工智能研究院 | 一种模块化工控蜜罐*** |
CN114285599A (zh) * | 2021-11-23 | 2022-04-05 | 中国人民解放军战略支援部队信息工程大学 | 基于控制器深度内存仿真的工控蜜罐构建方法及工控蜜罐 |
CN114285599B (zh) * | 2021-11-23 | 2023-08-01 | 中国人民解放军战略支援部队信息工程大学 | 基于控制器深度内存仿真的工控蜜罐构建方法及工控蜜罐 |
CN114189395A (zh) * | 2022-02-15 | 2022-03-15 | 北京安帝科技有限公司 | Plc受攻击停止的风险检测包获取方法及装置 |
CN114189395B (zh) * | 2022-02-15 | 2022-06-28 | 北京安帝科技有限公司 | Plc受攻击停止的风险检测包获取方法及装置 |
CN114217569A (zh) * | 2022-02-23 | 2022-03-22 | 北京安帝科技有限公司 | 工控plc数据的监控方法、装置、电子设备及存储介质 |
CN115833922A (zh) * | 2023-02-16 | 2023-03-21 | 北京航天驭星科技有限公司 | 卫星地面站任务计划的数据处理方法、***、设备、介质 |
CN117111489A (zh) * | 2023-08-25 | 2023-11-24 | 哈尔滨工程大学 | 一种plc设备的仿真方法、存储介质和电子设备 |
CN117111489B (zh) * | 2023-08-25 | 2024-05-17 | 哈尔滨工程大学 | 一种plc设备的仿真方法、存储介质和电子设备 |
CN117118981A (zh) * | 2023-10-19 | 2023-11-24 | 广州翼辉信息技术有限公司 | 一种基于codesys编程环境的工业云平台通信方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112650077A (zh) | 基于工控业务仿真的plc蜜罐***、实现方法及仿真设备 | |
Lekić et al. | IoT sensor integration to Node-RED platform | |
CN108319161A (zh) | 一种工业scada***仿真平台 | |
CN111381983B (zh) | 虚拟试验靶场验证***的轻量级消息中间件***及方法 | |
CN109831354A (zh) | 基于opc ua工业通讯协议的虚拟调试*** | |
CN112738022B (zh) | 一种针对机器人操作***ros消息的攻击方法 | |
CN111404883A (zh) | 一种物联网设备通用协议的解析方法及装置 | |
CN107360145A (zh) | 一种多节点蜜罐***及其数据分析方法 | |
CN103997489A (zh) | 一种识别DDoS僵尸网络通信协议的方法及装置 | |
US20010011215A1 (en) | Network device simulation system and method | |
Zhao et al. | A research for high interactive honepot based on industrial service | |
CN114285599A (zh) | 基于控制器深度内存仿真的工控蜜罐构建方法及工控蜜罐 | |
CN114328217A (zh) | 应用的测试方法、装置、设备、介质及计算机程序产品 | |
CN110187986B (zh) | 一种命令管理方法、***、装置及计算机可读存储介质 | |
CN113746683A (zh) | 跨域环境下的互连、互通和互操作仿真方法 | |
CN114040408B (zh) | 一种基于4g移动网络模拟环境的靶场*** | |
CN114584359A (zh) | 安全诱捕方法、装置和计算机设备 | |
Han et al. | Open framework of gateway monitoring system for internet of things in edge computing | |
CN108833333A (zh) | 一种基于dcs分布式控制的蜜罐*** | |
CN103944960A (zh) | 一种智能密集架网络控制方法 | |
CN105207829A (zh) | 一种入侵检测数据处理方法、装置,及*** | |
CN113162948B (zh) | 一种模块化工控蜜罐*** | |
CN110493210A (zh) | 一种基于sdn的可配置网络安全实验*** | |
CN105610639A (zh) | 全量日志抓取方法及装置 | |
CN112527453B (zh) | 虚拟化信息仿真***、方法及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210413 |
|
RJ01 | Rejection of invention patent application after publication |