CN114978768B - 一种基于Conpot的网络化控制系统蜜罐 - Google Patents

一种基于Conpot的网络化控制系统蜜罐 Download PDF

Info

Publication number
CN114978768B
CN114978768B CN202210826655.9A CN202210826655A CN114978768B CN 114978768 B CN114978768 B CN 114978768B CN 202210826655 A CN202210826655 A CN 202210826655A CN 114978768 B CN114978768 B CN 114978768B
Authority
CN
China
Prior art keywords
data
module
request
protocol
equipment
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
Application number
CN202210826655.9A
Other languages
English (en)
Other versions
CN114978768A (zh
Inventor
杜大军
许鲍岳
张长达
李雪
彭晨
仵大奎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Shanghai for Science and Technology
Original Assignee
University of Shanghai for Science and Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by University of Shanghai for Science and Technology filed Critical University of Shanghai for Science and Technology
Priority to CN202210826655.9A priority Critical patent/CN114978768B/zh
Publication of CN114978768A publication Critical patent/CN114978768A/zh
Application granted granted Critical
Publication of CN114978768B publication Critical patent/CN114978768B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1491Countermeasures against malicious traffic using deception as countermeasure, e.g. honeypots, honeynets, decoys or entrapment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种基于Conpot的网络化控制系统蜜罐,涉及网络安全及工业控制系统安全研究技术领域。该基于Conpot的网络化控制系统蜜罐,包括通信协议模块、设备模型模块、过程响应模块、数据记录模块和安全预警模块。通信协议模块模拟协议通过监听端口获得攻击数据后,运用识别协议类型、提取协议字段、解析请求内容、流量重定向、调用模板数据、调用设备模型模块和包装数据等若干个步骤进行处理以响应攻击者。设备模型模块分析实际设备参数和网络信息,动态调整设备信息并加载配置文件,接收通信协议模块已经解析提取的请求数据报文字段,接着调用过程响应模块处理请求,模拟运行过程得到响应数据。

Description

一种基于Conpot的网络化控制系统蜜罐
技术领域
本发明涉及网络安全及工业控制系统安全研究技术领域,具体为一种基于Conpot的网络化控制系统蜜罐。
背景技术
蜜罐是不提供任何实际业务的安全资源,通过暴露自身的漏洞吸引攻击者发起攻击,获取有效的攻击信息以了解攻击者工具和方法,分析攻击者使用的攻击数据,预测攻击目的和动机从而进行安全态势感知,也能够让防御者更加全面了解自身的漏洞并针对性设计防御手段增强系统的安全防护能力。
工控蜜罐是模拟工业控制系统的蜜罐。工业控制系统使用的网络和传统互联网主要有三方面不同,分别是通信协议、提供服务和使用设备。首先,以太网通信协议基于TCP/IP网络模型设计进行通信,而工业控制系统的常用协议包括Modbus、S7comm等;其次,传统互联网服务提供的服务包含SMTP邮件服务、FTP文件传输服务、WEB网络服务等,而工业控制系统提供的服务包含智能电网、智慧交通、智能家居等;最后,传统互联网服务部署在服务器上并通过特定服务软件对外提供服务;而工业控制系统依赖于不同型号的工控设备如PLC、传感器、电动机等。针对工业控制系统与传统互联网的不同之处,工控蜜罐模拟工控网络协议,伪装成工控设备,提供“正常”的工业业务。
Conpot作为工控蜜罐的典型代表,能够进行快速部署、配置和拓展,提供了常用工控协议如Modbus的模拟实现,可以帮助防御者根据不同的工控业务进行定制化工控蜜罐,但同时也存在着交互程度低、缺乏设备模型、日志数据难以分析等问题。交互程度低是指当攻击者发起读写请求时,Conpot使用配置好的模板数据进行回应,模板数据并不是通过动态模拟获取。缺乏设备模型是指Conpot使用工控协议进行通信以伪装成工控设备,而未考虑工控设备自身特性。日志数据难以分析是指Conpot收集的数据是以日志文件形式存储,缺乏对不同会话日志文件的归类和可视化展示。
网络化控制系统基于计算机及网络通信技术,打破控制系统各环节的空间障碍,解决了传统工业控制系统难以远距离控制、难以快速部署、难以动态扩展等难题,最终形成传感器、执行器和控制器通过通信网络实现数据交换并进行优化调度控制的现代先进控制系统。然而网络化控制系统带来便利性的同时,也给控制系统带来了数以万计的计算机安全威胁。
发明内容
(一)解决的技术问题
针对现有技术的不足,本发明提供了一种基于Conpot的网络化控制系统蜜罐,诱骗篡改网络化控制系统传输数据的攻击者发起攻击以收集攻击数据,解决因缺乏对攻击者的了解如攻击数据带来的安全隐患,提升系统的综合安全水平,从而在整体上提升系统的性能。
(二)技术方案
为实现以上目的,本发明通过以下技术方案予以实现:一种基于Conpot的网络化控制系统蜜罐,包括通信协议模块、设备模型模块、过程响应模块、数据记录模块和安全预警模块。
优选的,所述通信协议模块在监听端口后识别协议类型,然后调用相应的函数进行协议解析,接着根据不同攻击请求参数,使用重定向技术分发给不同的设备模型模块,最后将响应按照协议格式进行包装,与攻击者进行交互。所述重定向技术的原理在于流量访问Linux系统下的文件系统时重写统一资源定位符,使用正则表达式在被请求确定之前进行替换,从而将请求定位到正则匹配替换后的文件。
优选的,所述设备模型模块需要管理设备的所有参数和网络信息配置,接收请求数据包以及发送响应数据包,从而在物理设备层面增加蜜罐的欺骗性。设备的所有信息除了PLC设备执行时延、从站设备相关信息外,还包含网络信息如IP地址、MAC地址、开放端口等信息,而基于Conpot的配置文件结合Wireshark编写脚本,实现基本设备信息的模拟。接收请求数据包是指接收经过通信协议模块解析的数据包,并且根据具体功能和数据调用过程响应模块。发送响应数据包是指从过程响应模块取出过程响应数据,使用通信协议模块将设备本身信息与数据按照具体协议进行包装并发送。
优选的,所述过程响应模块接收执行器输入的控制信号,然后模拟系统的运行过程得到量测信号,最后提供给传感器进行数据交互以欺骗攻击者。为了提高蜜罐的欺骗性,根据实际系统运行或实验收集得到测试数据,采用基于模型的辨识方法,确定符合实际系统特性的蜜罐系统模型以得到过程响应数据。
优选的,所述数据记录模块首先基于数据包内容的一致性判断是否存在攻击行为,并贴上标签;然后将数据包按照IP地址作为唯一性标识进行分类存储;接着将同一IP和同一设备ID的请求数据包分为以下两类并存入数据库;最后使用Matlab从数据库中取出数据并进行可视化展示。
优选的,所述安全预警模块包含容器化管理、攻击预警等功能。所述容器化管理功能是指使用容器将依赖进行快速打包和部署,且不允许执行容器依赖环境外的任何不安全命令。所述攻击预警功能是指当蜜罐判断遭受攻击时会额外发送警报给管理员,防止系统遭受更大损失。
所述基于Conpot的网络化控制系统蜜罐,执行以下步骤:
步骤一:通信协议模块通过监听端口502获得攻击请求数据包,然后对请求数据包进行基本的识别,在满足协议Modbus的基本格式要求后,调用协议处理函数进行解析,接着根据攻击请求数据包中调用的主站设备参数,通过重定向技术分发给设备模型模块;
步骤二:设备模型模块接收到来自通信协议模块的请求数据包,同时使用Wireshark监听局域网内设备的平均执行时延和网络传输时延实现时延的动态配置,然后结合配置文件模拟基本设备信息:供应商、产品编号、产品系列、工作模式、PLC从站设备编号和起始地址,以及网络信息:IP地址、MAC地址和开放端口,接着由调用过程响应模块得到过程响应数据,并附着设备信息和网络信息,经过上述的执行时延和网络传输时延的时长,最后将包装了过程响应数据的数据包传输给攻击者;
步骤三:过程响应模块接收到设备模型模块的调用函数后,模拟系统的运行过程得到过程数据:量测数据或状态数据,最后提供给设备模型模块进行数据交互以欺骗攻击者;所述模拟系统的运行过程采用了基于模型的辨识方法,确定符合实际系统特性的系统模型以得到过程数据;
步骤四:数据记录模块通过比对数据一致性进行数据标注并对系统遭受攻击和正常运行时的状态数据按IP进行分类实时显示;首先需要基于数据包内容的一致性判断是否存在攻击行为,并贴上标签;然后将数据包按照IP地址作为唯一性标识进行分类存储;接着将同一IP和同一设备ID的请求数据包分为以下两类并存入数据库,第一种是非交互式的攻击请求:SYN/FIN数据包、获取设备信息的数据包、错误处理的数据包或广播域寻址的数据包,第二种是交互式的数据包:修改了功能码或操作数据的数据包;最后使用Matlab从数据库中取出数据并进行可视化展示。
优选的,所述步骤一中,通信协议模块模拟协议通过监听端口获得攻击数据后,运用识别协议类型、提取协议字段、解析请求内容、流量重定向、调用模板数据、调用设备模型模块和包装数据七步中若干个步骤进行处理以响应攻击者,具体如下:
1)识别协议类型:首先是由设备模型监听端口得到数据包,然后根据对应端口的协议类型校验数据格式是否满足要求,如Modbus的协议标识符不满足0x0000的规范,则可以直接丢弃。若协议格式满足要求,则依据相应的协议解析模块提取字段;
2)提取协议字段:当通过了协议格式校验后,协议解析模块会根据解析相应的字段并进行日志数据的记录。以Modbus协议为例,将数据包的所有字节进行以上字段的提取:时间戳、源IP地址、端口号、目的IP地址、端口号、会话序列号、从站设备、功能码、数据;
3)解析请求内容:当经过协议字段的提取后,根据不同请求命令分别处理如下:对于非交互式的请求如请求设备信息、异常信息上报、Ping包等则跳转,根据模板数据进行响应,对于交互式的请求如读写线圈、读写寄存器、读写传感器设备等则进行流量重定向,以动态变化的数据进行响应;
4)流量重定向:当接收到交互式请求时,需要通过重定向技术对不同的请求调用不同函数处理。重定向技术的原理在于流量访问Linux系统下的文件系统时重写统一资源定位符,使用正则表达式在被请求确定之前进行替换,从而将请求定位到正则匹配替换后的文件;
5)调用模板数据:当接收到非交互式请求时,直接读取模板目录中以各不同协议支持的设备命名,以xsd为后缀的配置信息并跳转,将设备信息进行包装从而回复信息;
6)调用设备模型模块:进行流量重定向后,会调用不同的设备模型函数,首先调用过程响应模块以得到系统的响应,然后根据设备模型的边界判断是否超过安全范围,对于超过安全范围的数据以边界值填充,若响应数据过大使得系统崩溃则返回错误码;
7)包装数据,回复请求:在数据准备完毕后,按照不同功能的数据包和协议规则将数据进行包装,回复请求。对于正常的数据包,将设备地址,IP地址与响应数据按照协议格式进行组装即可。对于异常信息包,将设备地址,IP地址与错误码和异常码等按照协议格式进行组装。
优选的,所述步骤二中,设备模型模块首先分析实际设备参数和网络信息,动态调整设备信息并加载配置文件;然后接收通信协议模块已经解析好的请求数据报文;接着调用过程响应模块处理请求,模拟运行过程得到响应数据;最后基于响应数据与设备正常响应范围的比较重新设定响应数据,并调用通信协议模块包装设备信息和响应数据发送响应数据包。
1)本文使用Wireshark软件监听实际控制系统的运行情况,统计每个设备的执行时延和从站设备相关信息,根据统计特性进行动态设置执行时延和从站设备数量、类型、起始地址和位数等信息。通过Wireshark自带的过滤器可以筛选出符合特定端口和特定设备的数据包,然后统计不同操作下执行时长的规律,接着根据主站设备的数据包统计从站设备数量,最后分析从站设备的功能码及操作对象统计每个设备的模块类型、起始地址、位数等;
2)由于网络因素的引入,设备的所有信息除了本身的参数信息外,还包含网络信息。其中IP地址、MAC地址、最大超时时间、最大重试次数均没有配置,具体参数参照部署的虚拟机信息,而多种类型的设备如传感器、执行器、控制器等,同种类型设备的不同设备如速度传感器、压力传感器等可能均部署在同一台虚拟机上,会使得多个设备的IP地址和MAC地址相同,这也将成为攻击者鉴别蜜罐的指纹信息。大多数计算机都会开启多个端口号如22实现远程登陆、443实现ftp文件传输等,而只开启502端口也极容易成为攻击者识别蜜罐的指纹信息。Linux系统下每次IO连接都意味着创建一个文件,默认一个进程最多可以创建1024个文件,因此最大IO连接数默认为1024;
3)为了解决上述网络信息的配置问题,使用虚拟网卡软件SoftEther为每个设备都手动设置一个MAC地址,然后基于桥接(bridged)模式为每台设备都分配一个IP地址,最后开启常用端口模拟正常主机的运行过程。其中MAC地址格式如下所示:
位数 表示内容
47 I/G
46 G/L
24-45 组织唯一标识符
0-23 厂商标识符
第47位为I/G(Individual/Group),0表示设备的MAC地址,1表示以太网的广播地址或组播地址,第46位G/L(Global/Local),0表示由IEEE分配的全局管理地址,1表示在管理上统治本地的地址,第24-45位是组织唯一标识符,由IEEE分配给单位组织,对于不同的厂家而言其分配的3字节内容是全球唯一的,第0-23位是由厂家分配的,西门子200系列PLC的MAC地址后24位一般为01-00-00;
4)设备模型模块的功能包含接收请求数据和发送响应数据,其中请求数据交由过程响应模块处理,得到响应数据后调用通信协议模块进行发送,然后由过程响应模块通过系统模型计算得到响应数据,并没有考虑实际过程中设备也存在边界,例如小车的速度不可能500km/s。因此设备模型模块在得到响应数据后,还需要根据设备的实际边界情况进行判断,在超出边界后根据实际情况设定响应数据。
优选的,所述步骤三中,过程响应模块基于系统模型模拟系统的运行过程得到过程数据,最后在被设备模型调用时返回过程数据以作响应。
过程响应模块为了承接设备模型模块的调用,构建维护了被控对象模型,并运用状态信息与设备模型模块中的传感器、控制器和执行器进行正常交互,从而欺骗攻击者,即:执行器从控制器获得控制信号,模拟系统的运行过程得到状态信息,然后发送到传感器,并与控制器进行数据交互以欺骗攻击者。
过程响应模块建立好被控对象模型和设计好控制策略后,设计蜜罐的欺骗环境与发动FDIAs的攻击者深度交互。首先设备模型模块中的传感器获取被控对象模型的状态信息up,并由通信协议模块进行数据包封装发送给设备模型模块中的控制器,经过网络传输时会被攻击者注入攻击数据xa,使得控制器接收到的状态信息被篡改为xc;然后控制器根据设计的控制策略计算得到控制增益矩阵K并根据获得的xc得到控制信号uc,并由通信协议模块进行数据包封装发送给执行器,经过网络传输时会被攻击者注入攻击数据ua,使得执行器接收到的控制信号被篡改为up;最后由执行器传送到过程响应模型,依据被控对象模型中系统模型和当前状态计算更新状态信息,通知传感器取值并进行下一轮交互。
上述欺骗环境与攻击者的交互过程会一直持续下去,直到设备模型模块中的传感器发现状态信息超出安全范围,模拟系统崩溃从而返回异常信息。本文设计蜜罐的数据存储模块能给欺骗环境提供数据标注和实时显示的功能,通过对比传感器发送的xp和控制器接收的xc,以及控制器发送uc的和执行器接收的up来判断是否遭受攻击,从而给数据贴上标签以供后续训练。
通过上述分析,过程响应模块构建被控对象模型后,其工作机理总结如下:通过构建被控对象模型并由设备模型模块中的执行器和控制器共同维护状态信息xp(k),通过传感器获得xp(k)以欺骗攻击者,当过程响应模块被设备模型模块调用后依次判断设备的类别,然后基于不同类别设备进行操作如下:
1)当发起调用的设备模型属于执行器时,会先得到被控对象模型中的系统模型(A,B)和当前状态信息xp(k),然后基于up(k)计算最新的状态信息xp(k+1),并更新到被控对象模型中;
2)当发起调用的设备模型属于传感器时,直接提取被控对象模型中的状态信息xp(k+1)作为过程响应数据,经由通信协议模块进行数据包封装并发送给控制器进行交互;
3)当发起调用的设备模型属于控制器时,根据运用控制增益矩阵K,基于xp(k)计算得到uc(k),经由通信协议模块进行数据包封装并发送给执行器进行交互。
(三)有益效果
本发明提供了一种基于Conpot的网络化控制系统蜜罐。具备以下有益效果:
1、本发明通过对Conpot原有仅模拟协议的伪装功能进行了二次开发,改进后的通信协议模块首先能够根据自定义的函数对协议进行处理,对不符合报文格式要求的数据包进行丢弃;其次能够提取记录数据包中的字段,并根据不同的攻击请求将功能码和请求数据的流量重定向到特定的从站设备;接着设备模型能够使用Wireshark动态监听并配置蜜罐的设备执行时延和网络传输时延;最后设备模型模块能够通过预先好的范围对超出安全范围的响应数据进行替换,对超出过多的响应数据使用错误码和差错码封装异常信息包进行回复。上述的通信协议模块和设备模型模块,消除Conpot的设备配置指纹和网络配置指纹,实现了使用动态响应与攻击者交互机制,解决了防御者因无法建立于攻击者的深度交互机制而难以获取攻击数据的问题。
2、本发明根据网络化控制系统的结构特性和虚假数据注入攻击的模型特性,基于实际系统的控制算法在设备模型模块中设置控制器,由控制器计算和传输控制信号以诱骗攻击者发起虚假数据注入攻击;然后遭受虚假数据注入攻击后进行深度交互并记录所有的日志数据,解决了因传统工控蜜罐仅仅监听端口并未传输数据导致无法获取虚假数据注入攻击数据的问题,极大地提高了系统的安全性和可靠性。
附图说明
图1为本发明的蜜罐结构示意图;
图2为本发明的蜜罐各模块工作流程示意图;
图3为本发明的欺骗环境与攻击者交互过程示意图;
图4为本发明的容器技术原理示意图;
图5为本发明的测试Modbus协议示意图;
图6为本发明的Wireshark界面示意图;
图7为本发明的设备基本信息管理界面示意图;
图8为本发明的正常情况下过程响应模块模拟的状态信息和控制信号示意图;
图9为本发明的遭受FDIAs时过程响应模块模拟的状态信息和控制信号示意图;
图10为本发明的日志数据的可视化展示界面示意图;
图11为本发明的Docker容器化管理镜像示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一:
所述蜜罐的通信协议模块为了实现模拟工控协议,获得攻击数据并进行响应,进行了识别协议类型、提取协议字段、解析请求内容、流量重定向、调用设备模型模块以及包装数据进行响应等。以Modbus协议为例阐述通信协议模块的工作过程如下。
Modbus协议为了实现与互联网计算机设备的互联互通,Modbus协议进行了改造兼容,设计形成了能够与以太网通信的Modbus TCP通信模式,其他通信模式包含Modbus RTU和Modbus ASCⅡ,一般应用于有线介质的工业现场实现工控设备的主从通信。由于以太网的安全威胁和数据篡改问题严重,因此主要研究Modbus TCP通信模式下的Modbus协议,后续均指在Modbus TCP通信模式下的Modbus协议。
a)Modbus协议位于TCP/IP网络模型的应用层报文传输协议,默认通过502端口监听请求及发送响应,基于客户端/服务端(Client/Server,C/S)架构以请求/应答方式进行通信。Modbus报文格式由报文头、功能码和数据三部分组成,报文头由事物标识符、协议标识符、字节长度和单元标识符组成。
b)Modbus报文组成及含义如下所示:
报文组成结构 字符数 功能
事务标识符 2字节 报文序列号,用以区分不同事务
协议标识符 2字节 协议标识符,用以区分不同协议
报文长度 2字节 表示接下来的数据长度,单位为字节
单元标识符 1字节 设备地址,用以区分不同设备
功能码 1字节 操作符,用以区分不同操作
数据 不定 传输的数据,含义与功能码相关
其中事务标识符是由客户端生成,发起请求时附加在报文头上,服务端复制并在响应时附加在报文头上,用以区分不同请求事务;Modbus TCP模式下协议标识符一般使用0x0000来表示;报文长度为单元标识符、功能码和数据的长度和,帮助接收者识别报文边界;单元标识符为设备地址,用以区分对外表现为单个IP地址的多个独立终端单元;功能码共255个,用以区分不同操作,常见对线圈、离散量、输入寄存器和保持寄存器的读写功能;数据配合功能码共同实现操作,数据长度需要根据操作的不同类型来确定,下表为常见功能码含义及发送请求报文时数据包含内容:
功能码 含义 请求数据说明(默认全部含CRC校验)
0x01 读线圈 含线圈地址、读线圈数量
0x05 写单个线圈 含线圈地址、写入数据
0x0F 写多个线圈 含线圈地址、写入数量、写入数据
0x02 读离散量输入 含离散寄存器的地址和数量
0x04 读输入寄存器 含输入寄存器的地址和数量
0x03 读保持寄存器 含保持寄存器的地址和数量
0x06 写单个保持寄存器 含保持寄存器的地址、写入数据
0x10 写多个保持寄存器 含保持寄存器地址、写入数量和数据
c)通信协议模块的识别协议类型首先比对TCP报文头的目标端口号和IP报文头的目标IP地址与本机的IP地址和开放端口,一致则通过并进行下一步校验,否则丢弃;然后校验报文头的事物标识符、协议标识符、字节长度和单元标识符等内容,并根据报文长度检验功能码和数据的长度是否符合要求,通过校验则进行下一步校验,否则丢弃;接着校验功能码与数据的匹配程度,如0x01作为读线圈功能在线圈地址后仍有数据则不符合规范,0x05作为写线圈不携带数据则不符合规范,针对不符合规范的均予以抛弃,通过则进行下一步校验;最后检验功能码后的设备地址和数量是否满足要求,针对地址和数量超出范围的予以抛弃,通过则将所有检验均合格的数据包进行提取协议字段。
d)通信协议模块的提取协议字段在获取格式检验合格的数据包后,首先提取TCP报文头的会话序号、时间戳、源端口号、目标端口号;然后提取IP报文头的源IP地址、目标IP地址;接着提取Modbus报文头的从站设备号、从站类型、从站地址、功能码和数据;最后将上述提取的所有信息都传输给数据记录模块,并进行解析请求内容。
e)通信协议模块的解析请求内容在获取数据包的所有内容后,将非交互式的请求如请求设备信息、异常信息上报、Ping包等则跳转调用模板数据进行响应,对于交互式的请求如读写线圈、读写寄存器、读写传感器设备等则基于目标IP地址、目标端口号和从站设备地址等确定从站设备,进一步进行流量重定向到从站设备,并携带功能码和请求数据。
f)通信协议模块的流量重定向在获取交互式请求后,会使用内部维护的哈希映射表将功能码和请求数据转发给设备模型的可执行文件。其中哈希表以目标IP、目标端口号和从站设备地址等叠加为Key,而从站设备在Linux系统下的设备地址为Value,哈希表的内容如下所示:
Key Value
3AC7A814&&502&&0 /conpot/emulators/dev01
3AC7A814&&502&&999 /conpot/emulators/dev02
3AC7A814&&502&&1999 /conpot/emulators/dev03
3AC7A814&&502&&2999 /conpot/emulators/dev04
以Key为3AC7A814&&502&&0,Value为/conpot/emulators/dev01为例进行说明,其中3AC7A814表示16进制下的IP地址,为58.199.168.20;502表示10进制下的端口号,0表示十进制下从站设备地址的开始地址,每一段字符串都使用&&连接,/conpot/emulators/dev01表示设备模型的可执行文件在Linux系统下的统一资源定位符。流量重定向技术通过哈希表找到需要定位设备模型的可执行文件后,将功能码和请求数据都传递给设备模型的可执行文件,即调用设备模型。
g)通信协议模块的调用模板数据在获取到非交互式请求后,直接读取Conpot中的模板数据以各种不同协议支持的设备命名文件内容,并包装数据以响应攻击者。其中模板数据存储在/conpot/templates/modbus目录,并以xsd为后缀命名的文件中,设备配置文件主要内容如下所示:
设备参数 默认值
供应商 Siemens
产品编号 SIMATIC
产品系列 S7-200
工作模式 serial
从站设备 支持编号为0、1、2和255的从站设备
h)通信协议模块的调用设备模型在获取到功能码和请求数据后,首先调用过程响应模块获得系统的过程响应;然后依据对各设备预先设置的范围判断是否超过安全范围,对于略微超过安全范围的数据以边界值填充,若响应数据过大使得系统崩溃则返回错误码;最后将调整好的响应数据并携带协议报文头信息交由包装数据处理,与攻击者交互以欺骗攻击者。
i)通信协议模块的包装数据在获取响应数据或设备信息后,首先对于正常响应,依据协议报文头信息依次将TCP报文头、IP报文头、Modbus报文头、功能码和请求数据按照Modbus协议格式进行组装,得到正常响应的数据包;然后特别的是对于异常信息,将TCP报文头、IP报文头、Modbus报文头、从站设备地址、异常码和错误码按照错误信息时的协议格式进行组装,得到异常信息的的数据包;接着针对非交互式请求,将TCP报文头、IP报文头、Mosbus报文头以及设备信息进行组装,得到响应数据包;最后发送打包好的数据包,完成欺骗攻击者的整个过程。
j)图5所示为使用Modbus Poll模拟客户端发送向线圈5写入255,测试通信协议模块的通信功能,可以从流量实时记录文件中看到线圈5在没有被写入前值为0,在执行命令后线圈5值为255,通信协议模块作为服务端与Modbus Poll完成了通信。
实施例二:
设备模型模块需要管理设备的所有参数和网络信息配置,接收请求数据包以及发送响应数据包,从而在物理设备层面增加蜜罐的欺骗性。设备的所有信息除了PLC设备执行时延、从站设备相关信息外,还包含网络信息如IP地址、MAC地址、开放端口等信息,而基于Conpot的配置文件结合Wireshark编写脚本,实现基本设备信息的模拟。接收请求数据包是指接收经过通信协议模块解析的数据包,并且根据具体功能和数据调用过程响应模块。发送响应数据包是指从过程响应模块取出数据,使用通信协议模块将设备本身信息与数据按照具体协议进行包装并发送。
图6为Wireshark界面,通过自带过滤器可以筛选出符合特定端口和特定设备的数据包,然后统计不同操作下执行时长的规律,接着根据主站设备的数据包统计从站设备数量,最后分析从站设备的功能码及操作对象统计每个设备的模块类型、起始地址、位数等。其中最上面黑色框为过滤器使用,不同颜色的数据包有不同的含义,常见灰色数据包表示作为发起请求的SYN或发起结束的FIN数据包,红色表示异常情况如常见的乱序、丢包、超过最长存活时间等,浅蓝色表示正常交互的数据包。Wireshark是通过libpcap/WinPcap进行抓包的,对于以集线器为主的广播域而言,底层原理是接收所有数据包不丢弃,对于以路由器为主的冲突域而言,由于路由器含有IP地址与MAC地址对应的路由表,因此使用ARP劫持技术更改路由表,并进行转发。
图7所示为设备基本信息管理界面,包含设备配置和网络配置两部分,其中设备配置包括从站设备ID号,地址,设备执行时延等,网络配置包括IP地址、端口号、MAC地址、网络延迟等。设备基本信息管理可以直接对从站地址、起始地址、设备执行时延等设备信息和IP地址、Mac地址、开放端口号以及网络延时等网络信息进行直接配置。
实施例三:
过程响应模块接收执行器输入的控制信号,然后模拟系统的运行过程得到量测信号,最后提供给传感器进行数据交互以欺骗攻击者,分别测试在正常运行时对系统的模拟效果和遭受FDIAs时的模拟效果与实际系统的对比:
设备模型模块在接收到请求数据后调用过程响应模块模拟系统运行以欺骗攻击者的过程为:首先传感器调用过程响应模块以获得被控对象模型中的状态信息作为响应数据传输给控制器,然后控制器根据过程响应模块中的控制增益矩阵计算控制信号,接着执行器基于控制信号更新被控对象模型的状态信息,模拟系统的正常运行从而欺骗攻击者。为了测试过程响应模块模拟系统的运行过程,以网络化倒立摆控制系统为例构建蜜罐进行测试,依据实际平台得到系统模型参数(A,B)和控制增益矩阵K为
Figure GDA0004070807350000161
K=[-30.822 72.326 -19.832 13.042]
然后采集实际系统运行过程的状态信息以得到噪声,为在倒立摆控制系统状态信息上的噪声,然后统计噪声的均值和方差并重复上述过程求其平均值,得到噪声的均值为,方差为,最后构造与统计值有相同均值和方差的正态分布随机序列作为模拟噪声加入被控对象模型,模拟系统的运行过程。
为了验证过程响应模块正常运行时的模拟效果,选取系统的状态信息和控制信号并采用实际系统的运行情况作为参考进行比对。图8为模拟效果,可以看到小车位移和小车速度在局部上有差异,但是具有相近的运行趋势,摆杆偏角和摆杆角速度差异较小且运行趋势相近,模拟的控制信号波动更为剧烈,但两者同样具有相似的运行趋势。因此,正常运行时过程响应模块建立的被控对象模型与实际系统的运行情况基本相近,攻击者难以分辨真伪。
为了验证过程响应模块遭受FDIAs时的模拟效果,同样选择状态信息和控制信号并与遭受FDIAs的网络化倒立摆控制系统的实际运行情况作为对比。当攻击者在系统运行到k≥500时刻向状态信息和控制信号中注入攻击数据满足xa~N(0,Q),Q=diag(0.3 0.62 5)和ua~N(0,R),R=1。
图9为遭受FDIAs后实际系统的运行结果和过程响应模块建立的被控对象模型模拟效果对比,首先两者运行得到的状态信息和控制信号具有一定的差异,实际系统在遭受攻击后在时崩溃,而过程响应模块的被控对象模型在时刻就崩溃,在时刻实际系统的小车位移和摆杆偏角变化更快,浮动幅度更大;其次两者也具有较大的相似性,在时刻状态信息与实际系统均具有相同的运行趋势,两者的控制信号同样具有相似的效果,且从肉眼来看很难区分开实际系统的运行结果和过程响应模块的模拟效果。
实施例四:
数据记录模块的主要功能是对日志数据进行分类,便于后续的分析和可视化展示。
Figure GDA0004070807350000171
Figure GDA0004070807350000181
Conpot日志数据主要分为两种,第一种是系统日志,默认存储在/dev/log目录中并以日期-随机数.log形式命名,第二种是Conpot的交互日志,存储在/var/log/conpot.json文件并以追加形式进行存储,默认都是关闭的,开启conpot.json日志文件时需要使用超级管理员权限,否则无法创建文件。由于系统日志默认向本机514端口发送,很容易成为攻击者识别蜜罐的指纹,并且系统日志存储的信息主要是机器本身的资源使用情况如CPU使用率、内存使用率等不能直接反应控制系统遭受攻击,因此本文考虑关闭系统日志。conpot.json存储内容如下表所示,sensor_id指的是本机的设备id,id指的是一次传输会员的序列号,未经过代理情况下public_ip与dst_ip默认一致,data_type指的是传输数据的格式如json、流、二进制等,request和response分别存储请求数据和响应数据,event_type指事件类型如握手/挥手包、异常信息、交互数据等。
图10为日志数据的可视化展示界面,可以看到通过IP地址、端口号和攻击时间和交互式请求等参数的设置可以将攻击数据展示在右侧的数据展示面板中,两条红色之间为遭受攻击的时间段,控制输入出现了较大的波动,系统状态变量在攻击后出现了更剧烈的波动,性能存在明显损失。
实施例五:
基于Conpot的网络化控制系统蜜罐安全控制模块包含容器化管理、攻击警报等功能。分别测试容器化管理和攻击警报功能如下:
docker镜像文件,包含mysql和python等部署conpot所依赖的镜像,其中REPOSITORY为镜像名称,TAG为镜像版本号,IMAGE ID为镜像的唯一识别ID,CREATED为创建时间,SIZE为镜像大小。Docker使用只读的镜像文件创建可读写的容器,而容器无法执行超出该镜像所依赖环境的命令,因此避免了蜜罐被当作跳板攻击其他设备的潜在威胁。
图11所示为攻击预警功能,当蜜罐发现有攻击者侵入并篡改了传输数据,会及时进行预警并展示当前攻击者的公网IP、端口和时间等信息,依据IP、端口和时间等则可以通过蜜罐数据可视化界面查看具体的请求数据等。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

Claims (1)

1.一种基于Conpot的网络化控制系统蜜罐,其特征在于,包括通信协议模块、设备模型模块、过程响应模块、数据记录模块和安全预警模块,其中通信协议模块、设备模型模块和过程响应模块构成欺骗环境,数据记录模块和安全预警模块构成监控环境;
所述通信协议模块包括识别协议类型、提取协议字段、解析请求内容和流量重定向;
所述安全预警模块包括容器化管理系统和攻击预警系统;
所述基于Conpot的网络化控制系统蜜罐,执行以下步骤:
步骤一:通信协议模块通过监听端口502获得攻击请求数据包,然后对请求数据包进行基本的识别,在满足协议Modbus的基本格式要求后,调用协议处理函数进行解析,接着根据攻击请求数据包中调用的主站设备参数,通过重定向技术分发给设备模型模块;
步骤二:设备模型模块接收到来自通信协议模块的请求数据包,同时使用Wireshark监听局域网内设备的平均执行时延和网络传输时延实现时延的动态配置,然后结合配置文件模拟基本设备信息:供应商、产品编号、产品系列、工作模式、PLC从站设备编号和起始地址,以及网络信息:IP地址、MAC地址和开放端口,接着由调用过程响应模块得到过程响应数据,并附着设备信息和网络信息,经过上述的执行时延和网络传输时延的时长,最后将包装了过程响应数据的数据包传输给攻击者;
步骤三:过程响应模块接收到设备模型模块的调用函数后,模拟系统的运行过程得到过程数据:量测数据或状态数据,最后提供给设备模型模块进行数据交互以欺骗攻击者;所述模拟系统的运行过程采用了基于模型的辨识方法,确定符合实际系统特性的系统模型以得到过程数据;
步骤四:数据记录模块通过比对数据一致性进行数据标注并对系统遭受攻击和正常运行时的状态数据按IP进行分类实时显示;首先需要基于数据包内容的一致性判断是否存在攻击行为,并贴上标签;然后将数据包按照IP地址作为唯一性标识进行分类存储;接着将同一IP和同一设备ID的请求数据包分为以下两类并存入数据库,第一种是非交互式的攻击请求:SYN/FIN数据包、获取设备信息的数据包、错误处理的数据包或广播域寻址的数据包,第二种是交互式的数据包:修改了功能码或操作数据的数据包;最后使用Matlab从数据库中取出数据并进行可视化展示。
CN202210826655.9A 2022-07-13 2022-07-13 一种基于Conpot的网络化控制系统蜜罐 Active CN114978768B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210826655.9A CN114978768B (zh) 2022-07-13 2022-07-13 一种基于Conpot的网络化控制系统蜜罐

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210826655.9A CN114978768B (zh) 2022-07-13 2022-07-13 一种基于Conpot的网络化控制系统蜜罐

Publications (2)

Publication Number Publication Date
CN114978768A CN114978768A (zh) 2022-08-30
CN114978768B true CN114978768B (zh) 2023-04-18

Family

ID=82969223

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210826655.9A Active CN114978768B (zh) 2022-07-13 2022-07-13 一种基于Conpot的网络化控制系统蜜罐

Country Status (1)

Country Link
CN (1) CN114978768B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117914962A (zh) * 2023-12-12 2024-04-19 钛玛科(北京)工业科技有限公司 一种用于流水线的通信控制方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107770199A (zh) * 2017-12-08 2018-03-06 东北大学 一种面向工业互联网的带有自学习功能的工控协议蜜罐及应用
CN111212053A (zh) * 2019-12-27 2020-05-29 太原理工大学 一种面向工控蜜罐的同源攻击分析方法
CN112578761A (zh) * 2021-02-03 2021-03-30 山东云天安全技术有限公司 一种工业控制蜜罐安全防护装置及方法
CN112769771A (zh) * 2020-12-24 2021-05-07 中国人民解放军战略支援部队信息工程大学 基于虚假拓扑生成的网络防护方法及系统和系统架构

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9436652B2 (en) * 2013-06-01 2016-09-06 General Electric Company Honeyport active network security
CN103607399B (zh) * 2013-11-25 2016-07-27 中国人民解放军理工大学 基于暗网的专用ip网络安全监测系统及方法
EP3041190B1 (en) * 2014-12-30 2020-11-25 Juniper Networks, Inc. Dynamic service handling using a honeypot
CN110691097A (zh) * 2019-10-18 2020-01-14 河海大学 一种基于hpfeeds协议的工控蜜罐的系统及其工作方法
CN113328992B (zh) * 2021-04-23 2023-03-24 国网辽宁省电力有限公司电力科学研究院 一种基于流量分析的动态蜜网系统
CN114268491A (zh) * 2021-12-21 2022-04-01 南方电网科学研究院有限责任公司 一种基于蜜罐技术的网络安防系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107770199A (zh) * 2017-12-08 2018-03-06 东北大学 一种面向工业互联网的带有自学习功能的工控协议蜜罐及应用
CN111212053A (zh) * 2019-12-27 2020-05-29 太原理工大学 一种面向工控蜜罐的同源攻击分析方法
CN112769771A (zh) * 2020-12-24 2021-05-07 中国人民解放军战略支援部队信息工程大学 基于虚假拓扑生成的网络防护方法及系统和系统架构
CN112578761A (zh) * 2021-02-03 2021-03-30 山东云天安全技术有限公司 一种工业控制蜜罐安全防护装置及方法

Also Published As

Publication number Publication date
CN114978768A (zh) 2022-08-30

Similar Documents

Publication Publication Date Title
CN107222515B (zh) 蜜罐部署方法、装置及云端服务器
CN107070929A (zh) 一种工控网络蜜罐系统
CN103078769B (zh) 一种实现实物设备无缝接入网络模拟器的系统及方法
US20030212908A1 (en) Method and system for simulating computer networks to facilitate testing of computer network security
Dehlaghi-Ghadim et al. ICSSIM—a framework for building industrial control systems security testbeds
CN114978768B (zh) 一种基于Conpot的网络化控制系统蜜罐
WO2016015511A1 (zh) 一种网管测试事件的数据包模拟方法、装置及计算机存储介质
CN113412610B (zh) 用于重放受保护的消息的方法和重放单元
CN105871643A (zh) 基于路由协议的网络运行仿真方法
CN106713061A (zh) 监测攻击报文的方法、系统及装置
WO2017213998A1 (en) In-band asymmetric protocol simulator
CN109951494A (zh) 仿真数据处理方法、装置、仿真设备及存储介质
CN106130897B (zh) 基于路由模拟的性能优化方法
CN114584359B (zh) 安全诱捕方法、装置和计算机设备
Khan et al. Lightweight testbed for cybersecurity experiments in scada-based systems
Dougherty Evasion of honeypot detection mechanisms through improved interactivity of ICS-based systems
KR20200054927A (ko) 트래픽 발생 장치, 트래픽 에이전트 장치 및 이를 포함하는 트래픽 발생 시스템
CN116418567A (zh) 一种网络协议安全性测试系统
Winn Constructing cost-effective and targetable ICS honeypots suited for production networks
CN111221687B (zh) 一种云存储测试系统和方法
US10038649B2 (en) Packet generation and injection
RU2787986C1 (ru) Способ имитации процесса функционирования автоматизированных систем
CN112738032B (zh) 一种用于防ip欺骗的通讯系统
US20230188429A1 (en) Large Network Simulation
KR102111748B1 (ko) 트래픽 발생 장치, 트래픽 에이전트 장치 및 이를 포함하는 트래픽 발생 시스템

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
GR01 Patent grant
GR01 Patent grant