一种模块化工控蜜罐系统

文档序号:25992021发布日期:2021-07-23 21:04阅读:121来源:国知局
一种模块化工控蜜罐系统

本发明涉及工业控制系统安全领域,尤其涉及一种模块化工控蜜罐系统。



背景技术:

蜜罐技术是一种主动防御技术,被定义为一类安全资源。蜜罐技术的价值是吸引攻击方对其进行非法使用,作为诱饵对攻击方进行欺骗,捕获攻击样本数据并对攻击方的行为并进行分析。

工业控制系统蜜罐是将蜜罐应用于实际工业控制系统当中,作为一种主动防御的手段对工业控制系统的防御体系进行补充,以实现更好的防御效果。

现有的工业控制系统蜜罐从交互性上可分为低交互蜜罐和高交互蜜罐。低交互蜜罐仅仅实现了工业控制系统中的部分服务和功能,而高交互蜜罐给攻击者提供了完整的环境。现有的低交互工业控制系统蜜罐大部分为通过虚拟化技术实现的一个服务进程,例如conpot是一个低交互蜜罐,实现了对s7comm,modbus,enip,http等协议的模拟,能模拟一个plc进行简单的数据传输,但在攻击者与其进行更深一步的交互时很容易被识破。而高交互蜜罐需要实现与攻击者一定深度的交互,若采用与实际物理系统完全相同的物理设施作为蜜罐,虽然能产生数据进行交互,但需要使用更多的资源,不易复制和移植,存在将实际工业控制系统暴露于攻击者的风险。

高交互的工控蜜罐对攻击者有着更强的吸引力,能捕获到更多攻击者的行为信息。高交互工控蜜罐需要与实际工业流程紧密结合,针对具体行业进行设计。专利申请cn202010232244.8提出了一种高甜度高交互工控蜜罐装置及方法,增加了conpot蜜罐的交互程度和人机交互接口以及web页面;专利申请cn202010409377.8提出了一种工控蜜罐方法,主要用于流量监控和报文分析;专利申请cn201910435993.8则提出了一种工控蜜罐系统,用于监听多种工控协议并处理攻击数据。

但现有的技术发明的重点在捕获数据和分析以及对协议交互的补充上,并没有关于蜜罐如何搭建诱捕环境来吸引攻击者的研究。工业控制系统蜜罐需要有高交互性、高逼真度的特点,要尽可能对实际工业控制系统进行模拟以达到对攻击者进行欺骗的效果,因此需要更合理的架构实现工业控制系统蜜罐。

因此,本领域的技术人员致力于开发一种模块化工控蜜罐系统及设计方法,弥补现有技术中关于蜜罐如何搭建诱捕环境来吸引攻击者的研究的缺失。



技术实现要素:

有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是如何克服现有工业控制系统蜜罐交互性不足、逼真度不够高的问题。

为实现上述目的,本发明提供了一种模块化工控蜜罐系统,利用数字孪生技术为蜜罐提供交互所需的拟真的数据信息。数字孪生技术最早用于产品开发阶段对其行为和生命周期进行模拟评估,可以将实际物理过程进行数字化转换,从而实现对实际系统进行监控和预测。

本发明提供的一种模块化工控蜜罐系统,通过模块化的方法构建模块库,所述模块库包括:plc模块、程序模块、数字孪生模块、hmi模块、外部接口模块和连接模块,其中:

所述plc模块模拟实际的plc,是所述蜜罐系统中的控制器;

所述plc模块通过所述若干连接模块分别与所述程序模块、所述数字孪生模块、所述hmi模块和所述外部接口模块连接。

进一步地,所述数字孪生模块通过对实际工控系统的建模生成数据,并将所述数据实时发送给所述plc模块,作为所述plc模块的数据来源;当所述plc模块接收到查询工控系统数据的请求时,所述plc模块将来自所述数字孪生模块中的所述数据发送回请求者。

进一步地,所述数字孪生模块包括若干设备模型和若干过程模型,其中:

所述设备模型模拟实际设备的功能;

所述过程模型模拟实际的生产流程。

进一步地,所述plc模块包括若干不同型号的plc子模块,用于模拟不同的plc通信协议;所述plc子模块还包括plc设备信息、plc程序和内存数据。

进一步地,所述程序模块包含所述plc模块执行的程序;当所述plc模块收到上传下载程序的数据包指令的请求时,所述plc模块将所述请求发送到所述程序模块,所述程序模块将程序发送回请求者。

进一步地,所述程序包括若干控制程序和若干逻辑程序。

进一步地,所述hmi模块包括若干页面,用于提供人机交互的界面。

进一步地,所述外部接口模块包括若干外部接口,通过所述若干外部接口将攻击者的流量引入到所述蜜罐系统中。

进一步地,所述连接模块包括若干连接接口,通过所述若干连接接口实现所述plc模块分别与所述程序模块、所述数字孪生模块、所述hmi模块、所述外部接口模块之间的连接;所述连接模块实现不同模块之间进行数据交互时数据格式的统一,便于不同模块之间数据的传输。

进一步地,所述plc模块、所述程序模块和所述数字孪生模块部署在一个docker容器中;所述hmi模块部署在另一个docker容器中。

本发明提供的一种模块化工控蜜罐系统至少具有以下技术效果:

1、本发明提供的基于数字孪生模型的工业控制系统蜜罐,根据实际物理模型构建对应的数字孪生模型,能够支持数据查询、plc程序上传下载等的深度交互,具有较高的逼真度,不易被攻击者辨别。

2、本发明实现蜜罐结构和功能的模块化,使得用户能够容易的对蜜罐进行个性化的配置,搭建更符合实际场景的工控蜜罐。

3、本发明通过将蜜罐封装为docker容器,可以方便的实现大规模的部署。

以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。

附图说明

图1是本发明的一个较佳实施例的工控蜜罐系统结构示意图;

图2是本发明的一个较佳实施例的工控蜜罐架构模块库示意图。

具体实施方式

以下参考说明书附图介绍本发明的多个优选实施例,使其技术内容更加清楚和便于理解。本发明可以通过许多不同形式的实施例来得以体现,本发明的保护范围并非仅限于文中提到的实施例。

本发明为了克服现有工业控制系统蜜罐交互性不足、逼真度不够高的特点,提出了一种模块化工控蜜罐系统。本发明的技术方案提出的工业控制系统蜜罐具有高交互性、高逼真度、易于大规模部署的特点。工业控制系统蜜罐需要针对具体行业进行搭建和部署,部署在不同行业现场的工业控制系统蜜罐具有不同的结构和功能。通过将蜜罐根据其结构和功能进行模块化封装,实现蜜罐的模块库,在进行部署时根据蜜罐部署实际场景的不同,通过选择相应模块,能够方便地搭建针对不同行业场景下的蜜罐,同时,通过虚拟化技术实现对蜜罐的封装,使得蜜罐可以轻易的实现大规模部署。

本发明提供的一种模块化工控蜜罐系统,通过模块化的方法构建模块库,实现不同行业场景下蜜罐系统的搭建。

如图1所示,模块库包括:plc模块、程序模块、数字孪生模块、hmi模块、外部接口模块和连接模块,其中:

plc模块模拟实际的plc,是蜜罐系统中的控制器;

plc模块通过若干连接模块分别与程序模块、数字孪生模块、hmi模块和外部接口模块连接。

如图2所示,plc模块包括若干不同型号的plc子模块,用于模拟不同型号的plc通信协议,例如modbus,s7comm,enip等,攻击者可以通过不同的协议与蜜罐进行交互;plc模块作为控制器,接收来自数字孪生模块的实时过程数据,并能将控制器中的数据信号在hmi模块的界面进行显示。与真实物理系统类似,攻击者也可以访问到该模块并获取相关信息,例如plc设备信息、plc程序和内存数据等。构建多种不同型号的plc子模块,对应多种工控协议,应对外界的交互。在蜜罐进行搭建时通过选择不同的plc模块作为模拟的控制器,同时其设备指纹信息也能使得攻击者认为该模块为真实某个厂商某个系列的plc。

数字孪生模块通过对实际工控系统的建模生成数据,并将数据实时发送给plc模块,作为plc模块的数据来源;数字孪生模块产生的过程数据用于提高蜜罐的逼真度,尽可能地吸引攻击者对蜜罐进行攻击。当plc模块接收到查询工控系统数据的请求时,plc模块将来自数字孪生模块中的数据发送回请求者。

数字孪生模块包括若干设备模型和若干过程模型,其中:

设备模型模拟实际设备的功能;

过程模型模拟实际的生产流程。

程序模块包含plc模块执行的程序,包括若干控制程序和若干逻辑程序;当plc模块收到上传下载程序的数据包指令的请求时,plc模块将请求发送到程序模块,程序模块将程序发送回请求者。

hmi模块包括若干页面,用于提供人机交互的界面,显示蜜罐中模拟的生产过程的组态。hmi模块的界面对蜜罐中模拟的设备和模型进行可视化的显示,包含plc、阀门、电机、水箱等,提高了蜜罐的逼真度。

外部接口模块包括若干外部接口,通过若干外部接口将攻击者的流量引入到蜜罐系统中。蜜罐采用虚拟的方式实现,在使用时将蜜罐部署到实际现场的主机上,通过该接口,能够将进入到主机的攻击流量引入到蜜罐当中。

连接模块包括若干连接接口,通过若干连接接口实现plc模块分别与程序模块、数字孪生模块、hmi模块、外部接口模块之间的连接;连接模块实现了以上模块之间进行数据交互的数据接口。由于不同模块之间产生和接收的数据类型不同,例如外部接口模块转发了网络数据流量包,数字孪生模块发送和接收一些参数数据,通过该模块使不同模块之间进行数据交互时实现数据格式的统一,便于模块之间数据的传输。

蜜罐系统中的各个模块通过不同脚本实现,具体地:

外部接口模块用于将流量引入到蜜罐中,通过socket代理实现。外部流量只能访问到主机的公网ip,蜜罐部署在主机上具有内网ip,通过socket代理的方式,当有流量尝试访问蜜罐所在的主机时,外部接口模块将外部访问流量引入到蜜罐中的其他模块进行处理。

plc模块通过python脚本模拟,判断数据包的协议类型,具有对针对不同工控协议的解析功能,用于模拟不同型号plc,并在脚本中构造响应回送数据包。例如对于modbus协议,步骤为通过socket网络编程与外部接口模块转发的流量之间建立tcp/ip连接,判断出数据包协议类型为modbus协议,对于接收到的数据包进行对应格式的解析,根据数据包解析出的功能码进入到不同的函数中。在该模块中,modbus常用八个读写功能码对应的函数为:01(读线圈寄存器)-readcolis()、02(读离散输入寄存器)-readdiscreregs()、03(读保持寄存器)-readholdregs()、04(读输入寄存器)-readinregs()、05(写单个线圈寄存器)-writsingregs()、06(写单个保持寄存器)-writsingholdregs()、0f(写多个线圈寄存器)-writmultcoliregs()、10(写多个保持寄存器)-writmultholdregs()。功能码43用于读取设备物理描述和功能描述,在该模块中对应的函数为sysinfo(),内容为plc设备指纹。在得到执行结果后,将结果按照modbus协议格式进行封装,将数据包发送回目标。在目标与plc模块建立连接、发送数据包进行执行、plc模块将结果进行返还时,具体内容都通过日志进行记录。当目标开始建立与蜜罐的连接时,外部接口模块作为代理将目标与plc模块建立连接,将建立连接过程进行日志记录。当目标以modbus协议发送查询或读写请求时,plc模块调用modbus解析部分对请求数据包进行解析,并根据功能码进行响应,将请求和响应内容进行日志记录。

程序模块中包含plc程序,遵循iec61131-3标准,plc程序使用结构化文本语言(st文件)进行存储。当plc模块接收到程序上传下载的请求时,程序模块将程序文件发送回外部连接者,并将程序上传下载的请求内容进行日志记录。

数字孪生模块包含了对实际工控流程的建模和模拟,通过python脚本实现,对于不同的场景,运行不同的脚本程序,脚本模拟的流程数据可以来自于实际现场数据。例如模型模拟某一工控工艺流程,脚本能够模拟工控设备运行过程中的温度、液位、转速、开度及其动态变化过程,并将该数据通过连接模块与其他模块之间进行传输。

连接模块用于在蜜罐不同模块之间进行传输数据。在plc模块与数字孪生模块之间传输数据时,连接模块将温度、液位、转速、开度等数据转换为json格式进行传输。plc模块与hmi模块之间传输数据时,连接模块将温度、液位、转速、开度等数据通过工控协议进行传输,例如modbus协议。

hmi模块用于显示蜜罐模拟的工控流程组态信息,通过连接模块与plc模块建立连接,读取plc模块中的数据,并通过组态软件进行界面的显示。可用的组态软件有组态王,wincc等。在组态软件上进行操作的同时,进行日志记录。

在搭建蜜罐时,选择plc模块、程序模块,编写数字孪生模块脚本,完成组态软件的工程。例如,选择模拟西门子s7300plc;编写plc程序以st文件格式存储,作为程序模块;模拟水箱模型,完成数字孪生模型脚本;完成wincc工程。plc模块、程序模块和数字孪生模块部署在一个docker容器中,hmi模块部署在另一个docker容器中。

以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

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