CN117111489B - 一种plc设备的仿真方法、存储介质和电子设备 - Google Patents
一种plc设备的仿真方法、存储介质和电子设备 Download PDFInfo
- Publication number
- CN117111489B CN117111489B CN202311085680.7A CN202311085680A CN117111489B CN 117111489 B CN117111489 B CN 117111489B CN 202311085680 A CN202311085680 A CN 202311085680A CN 117111489 B CN117111489 B CN 117111489B
- Authority
- CN
- China
- Prior art keywords
- fingerprint information
- equipment
- plc
- snap7
- tool
- 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
- 238000004088 simulation Methods 0.000 title claims abstract description 67
- 238000000034 method Methods 0.000 title claims abstract description 59
- 230000004044 response Effects 0.000 claims abstract description 27
- 230000003993 interaction Effects 0.000 claims abstract description 24
- 238000011161 development Methods 0.000 claims abstract description 9
- 230000006870 function Effects 0.000 claims description 35
- 230000008569 process Effects 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 12
- 238000010276 construction Methods 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 7
- 230000002452 interceptive effect Effects 0.000 claims 5
- 238000012216 screening Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 11
- 230000006854 communication Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 235000012907 honey Nutrition 0.000 description 2
- 230000009545 invasion Effects 0.000 description 2
- ZRHANBBTXQZFSP-UHFFFAOYSA-M potassium;4-amino-3,5,6-trichloropyridine-2-carboxylate Chemical group [K+].NC1=C(Cl)C(Cl)=NC(C([O-])=O)=C1Cl ZRHANBBTXQZFSP-UHFFFAOYSA-M 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000035515 penetration Effects 0.000 description 1
- 239000012466 permeate Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/74—Reverse engineering; Extracting design information from source code
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1491—Countermeasures against malicious traffic using deception as countermeasure, e.g. honeypots, honeynets, decoys or entrapment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Automation & Control Theory (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Programmable Controllers (AREA)
Abstract
本公开提供了一种PLC设备的仿真方法、存储介质和电子设备,该方法包括:通过逆向分析,确定设备指纹信息位于Snap7软件包的动态链接库中;在动态链接库中,确定设备指纹信息的源数据地址;根据源数据地址,基于预设配置信息,对设备指纹信息的源数据进行修改;基于修改后的设备指纹信息,利用Snap7的库开发工具进行仿真设备的构建。本公开进行仿真设备的构建时可以基于修改后的设备指纹信息进行真实的设备指纹响应,使仿真设备具有进行数据交互的能力,提升仿真设备的真实性,更有利于消耗攻击者的攻击资源,并且具有更简便的配置方式,可以实现快速复用以降低部署成本。
Description
技术领域
本公开涉及面向工控网络的威胁诱捕技术领域,尤其涉及一种PLC设备的仿真方法、存储介质和电子设备。
背景技术
PLC(可编程逻辑控制器,Programmable Logic Controller)设备,是一种专门用于工业自动化控制的电子设备,在工业领域的应用范围非常广泛,几乎涵盖了所有需要自动化控制和监测的任务。通过灵活的编程能力和可靠的性能,PLC已成为现代工业中不可或缺的控制设备。
在工控网络的网络安全防护中,威胁诱捕技术一种新兴的安全防护手段。通过部署应用蜜罐、虚拟系统以及虚拟网络混淆攻击者的攻击目标,同时对攻击者的入侵进行感知。PLC设备仿真的真实性是衡量威胁诱捕环境构建伪装性的关键指标。攻击者通过对仿真设备的指纹探测、采用PLC连接工具连接仿真设备并进行数据传输能够使攻击者快速的判断出仿真设备的真实性。如果不能提供给攻击者真实设备的响应并完成数据传输,会让攻击者对整个入侵环境提高警惕,更加谨慎的渗透入侵,不利于消耗攻击者储备的攻击资源。同时以往的设备仿真方法无法快速复用导致威胁诱捕环境的部署成本严重偏高,或是无法仿真多种类型的PLC导致威胁诱捕环境的部署单一容易识别。
发明内容
本公开实施例提供了一种PLC设备的仿真方法、存储介质和电子设备,用以解决现有技术中仿真设备真实性较低,不利于消耗攻击者储备的攻击资源的问题。
本公开的实施例采用如下技术方案:一种PLC设备的仿真方法,包括:通过扫描工具和真实PLC设备之间的交互数据包、所述扫描工具的扫描脚本以及Snap7软件包的应用程序进行逆向分析,确定设备指纹信息位于所述Snap7软件包的动态链接库中;在所述动态链接库中,确定设备指纹信息的源数据地址;根据所述源数据地址,基于预设配置信息,对所述设备指纹信息的源数据进行修改;基于修改后的设备指纹信息,利用Snap7的库开发工具进行仿真设备的构建。
本公开实施例还提供了一种存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述的PLC设备的仿真方法的步骤。
本公开实施例还提供了一种电子设备,至少包括存储器、处理器,所述存储器上存储有计算机程序,其特征在于,所述处理器在执行所述存储器上的计算机程序时实现上述的PLC设备的仿真方法的步骤。
本公开实施例的有益效果在于:利用逆向分析确定设备指纹信息位于Snap7的动态链接库中,随后通过对动态链接库进行深度拆解以确定动态链接库中设备指纹信息的所在位置,利用预设配置信息对设备指纹信息的源数据进行修改,使后续在通过Snap7的库开发工具进行仿真设备的构建时可以基于修改后的设备指纹信息进行真实的设备指纹响应,同时使仿真设备具有进行数据交互的能力,提升仿真设备的真实性,更有利于消耗攻击者的攻击资源,并且具有更简便的配置方式,可以实现快速复用以降低部署成本。
附图说明
为了更清楚地说明本说明书一个或多个实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开第一实施例中PLC设备的仿真方法的流程图;
图2为本公开第一实施例中PLCScan与真实PLC设备的交互过程示意图;
图3为本公开第一实施例中Snap7Server进行设备仿真的实现原理图;
图4为本公开第一实施例中0x1c功能码响应数据包报文示意图;
图5为本公开第一实施例中S7-info.nse脚本涉及设备指纹信息的关键代码示意图;
图6为本公开第一实施例中应用程序中对设备指纹信息的处理示意图;
图7为本公开第一实施例中检索结果与数据包中数据对比结果图;
图8为本公开第一实施例中经过Conpot修改的PLC设备的扫描结果;
图9为本公开第一实施例中未经Conpot修改的PLC设备的扫描结果;
图10为本公开第一实施例中利用本实施例所提供的方式得到的PLC设备的扫描结果;
图11为本公开第一实施例中未经本实施例所提供的方式修改的PLC设备的扫描结果;
图12为本公开第一实施例中经过工控蜜罐Conpot修改的PLC设备的扫描结果
图13为本公开第一实施例中未经Conpot修改的PLC设备的扫描结果;
图14为本公开第一实施例中利用本实施例所提供的方式得到的PLC设备的扫描结果;
图15为本公开第一实施例中未经本实施例所提供的方式修改的PLC设备的扫描结果;
图16为本公开第一实施例中HslCommunication工具连接仿真设备的结果示意图;
图17为本公开第一实施例中HslCommunication数据传输响应结果图;
图18为本公开第三实施例中电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书一个或多个实施例中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本说明书一个或多个实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本文件的保护范围。
PLC设备是一种专门用于工业自动化控制的电子设备,在工业领域的应用范围非常广泛,几乎涵盖了所有需要自动化控制和监测的任务。通过灵活的编程能力和可靠的性能,PLC已成为现代工业中不可或缺的控制设备。
在工控网络的网络安全防护中,威胁诱捕技术一种新兴的安全防护手段。通过部署应用蜜罐、虚拟系统以及虚拟网络混淆攻击者的攻击目标,同时对攻击者的入侵进行感知。PLC设备仿真的真实性是衡量威胁诱捕环境构建伪装性的关键指标。攻击者通过对仿真设备的指纹探测、采用PLC连接工具连接仿真设备并进行数据传输能够使攻击者快速的判断出仿真设备的真实性。如果不能提供给攻击者真实设备的响应并完成数据传输,会让攻击者对整个入侵环境提高警惕,更加谨慎的渗透入侵,不利于消耗攻击者储备的攻击资源。同时以往的设备仿真方法无法快速复用导致威胁诱捕环境的部署成本严重偏高,或是无法仿真多种类型的PLC导致威胁诱捕环境的部署单一容易识别。
为了解决上述问题,本公开第一实施例以目前工控网络中常用的西门子S7系列的PLC设备作为参考,提供了一种PLC设备的仿真方法,该方法的流程图如图1所示,主要包括步骤S10至S40:
S10,通过扫描工具和真实PLC设备之间的交互数据包、扫描工具的扫描脚本以及Snap7软件包的应用程序进行逆向分析,确定设备指纹信息位于所述Snap7软件包的动态链接库中。
Snap7是一个基于S7comm通信协议的开源软件包,该软件包封装了S7comm通信协议的底层协议,可以使普通电脑通过编程与西门子S7系列PLC设备进行通信,S7comm通信协议是西门子S7系列PLC内部集成的一种通信协议。
为能够符合伪装性的要求,在应对工控扫描工具时给出真实的设备响应,本实施例首先通过在Shodan搜索引擎上找到真实的PLC设备并利用PLCScan扫描工具对真实的PLC设备进行扫描以得到交互过程如图2所示,结合PLCScan的源码进行分析,进而对PLCScan的扫描原理进行了研究。
结合图2所示,双方经过正常的连接建立过程后,通过四次S7comm报文交互完成了信息了扫描,然后双方释放TCP连接完成扫描。结合PLCScan源码重点对四次S7comm报文交互过程进行分析得到PLC设备指纹的扫描原理。PLCScan首先向设备发出消息类型为0x07USERDATA的数据包,请求0x04 CPU功能子功能码0x01读取系统状态列表的数据信息,信息请求分两次进行,分别对设备的模块信息和组件信息进行识别,请求的信息对应编号分别为0x11、0x1c,为避免意外的异常发生进行两次信息请求。
为了完成PLCScan对设备指纹扫描结果的伪装,需要该仿真设备能够对S7comm协议下的功能码进行正确响应进而完成完整的ISO-on-TCP连接建立过程,同时可以对PDU类型为User Data的S7comm数据载荷进行响应,对设备的指纹信息进行配置,并分别对TKPT、COTP以及S7comm的数据包按照配置后的设备指纹信息进行构造,然后将响应结果发送给PLCScan,从而完成对设备指纹信息的伪造。除此外,还需要满足仿真设备具有与PLC连接工具之间的连接和数据传输能力,因此仿真设备需要能够建立完整数据包解析和维护PLC不同的存储区和数据存取类型。
基于上述分析,本实施例采用Snap7库开发的工具Snap7Server进行仿真设备的构实现,其实现原理如图3所示,Snap7Server利用Snap7库内置的服务引擎和设备信息读取引擎完成S7comm协议连接的建立和设备信息数据包进行构造,提供给攻击者(Attcak)响应的设备信息完成设备指纹的伪装,实现连接PLC和与PLC进行数据交互的能力。但是,需要响应的设备指纹信息内置在Snap7库内,如何找到设备指纹信息所在是本实施例需要进行解决的。
具体地,步骤S10在具体实现时包括如下步骤:
S101,对扫描工具的扫描脚本进行分析,确定扫描工具获取设备指纹信息的原理为基于预设功能码向PLC设备请求设备指纹信息;
S102,分析交互数据包,确定PLC设备通过对预设功能码的请求返回携带有设备指纹信息的数据包;
S103,利用逆向工具对Snap7软件包的应用程序进行逆向分析,基于预设功能码和设备指纹信息的配置项,确定获取设备指纹信息的构造在Snap7软件包的动态链接库中完成。
在一些实施例中,可以通过逆向工具IDA对Snap7Server工具的应用程序进行逆向处理,旨在找到对应的设备指纹信息所在位置,并实现依据编码规则对照真实PLC设备的响应对设备的指纹信息进行修改。首先,可以通过nmap端口扫描工具对真实PLC设备的扫描结果和扫描过程使用的脚本S7-info.nse进行分析,使用设备指纹信息中各个配置项作为关键字进行检索。在对扫描脚本的检索过程中发现脚本中具有两种解析结构,但只有一种结构中包含设备指纹信息的配置项,并且该结构要求SZL-ID=0x1c时,才进行报文解析;另外,在扫描过程中nmap会向服务端(即被扫描的真实PLC设备)发起多次请求,但只有最后一次请求中含有设备指纹信息的配置项的信息,至此能够确定设备指纹信息的请求过程只需要通过一个功能码(即0x1c)的具体参数请求即可得到相关的设备信息。
为了确定服务端对0x1c功能码的响应过程,进一步对服务端和nmap的通信过程中的数据包进行分析。在获取到的数据包中,找到最后一个S7comm应答报文,忽略报文中IPV4(Internet Protocol version 4,互联网通信协议)相关信息,并同时忽略COPT(Connection Oriented Transport Protocol,面向连接的传输协议)头部信息,直到找到S7comm数据。如图4所示,在S7comm数据中可以核对出在Header部分中Protocol Id为0x32,Parameter中应答的是CPU functions中Read SZL(读取系统状态列表)得到的结果,在Data部分中,可以核对出SZL-ID为0x001c,并且可以在SZL data tree中发现设备指纹信息的配置项。经过对数据包内信息和字符串的对比,得到字符通过ASCII方式进行编码。至此能够确定关于设备指纹信息的全部配置项的获取是PLC设备通过对0x11和0x1c两种功能码的请求返回的数据包解析后进行组合的结果,如图5所示,并且每一个功能码包含设备指纹信息中的部分配置项,两个功能码中的所包含的配置项没有重叠。但目前仍不能确定服务端对设备指纹信息的响应是通过应用程序或库函数经过一个函数构造的结果或是多个函数共同构造的结果组合成一个数据包返回。
随后,按照服务端监听端口、拆解数据包并将符合协议规则的功能码和参数提交给相应函数的逻辑对应用程序进行逆向。服务端经过数据包解析接收到对CPU functions子功能码的请求后,交由某个或某几个具体的函数对设备信息的信息项进行处理之后构造数据包应答请求。利用IDA工具,在文本视图TEXT view下对已经获取的包括“0x11”、“0x1c”以及设备指纹信息的配置项等关键字进行以字符串和十六进制ASCII码的第一次检索,均没有得到相关的函数或处理过程。通过搜索关键字“SZL”进行第二次检索,查找到Cli_ReadSZL方法,发现在该方法中所处理的ID、Index、Data、Size等字段符合返回报文中的信息,同时该方法是Snap7库中所包含的方法,但在应用程序中没有对这些字段的处理过程,进而确定设备的指纹信息的构造是在动态链接库中完成的,如图6所示。
S20,在Snap7软件包的动态链接库中,确定设备指纹信息的源数据地址。
结合多次扫描的结果取得设备指纹信息中的各配置项表现出相同的结果,且已知对配置项的构造是在动态链接库内完成的,由此可以对设备指纹信息的处理方式做以下猜测:设备指纹信息是固定的数据存储在动态链接库的某部分;由负责响应具体功能码的函数对数据进行调用。因此,本实施例在进行PLC设备仿真时,需要从动态链接库中找到设备指纹信息的源数据地址,通过对动态链接库中的设备指纹信息进行修改,来完成仿真设备指纹信息的配置。
在实际进行设备指纹信息的源数据地址确定时,主要以基于关键字检索的方式来确定源数据地址。具体地,设备指纹信息包括多个配置项,每个配置项均用于表示PLC设备的一种设备相关信息,以每个配置项作为检索的关键字,在动态链接库的处理结果中进行检索,即可确定设备指纹信息中各个配置项的源数据地址,即确定用于表征该PLC设备的设备指纹信息的具体内容所在的位置。在一些实施例中,可以将检索结果与通信过程中返回数据包中所得到的设备指纹信息的各配置项数据按照S7comm协议格式进行对比,在确认检索到的数据内容和数据包中的内容一致之后,确定设备指纹信息中各个配置项的源数据地址,如图7所示,并且可以确定,库函数在动态链接库中获取相应的设备指纹信息时,只是进行了简单的调用,并未进行加密、转码等其他操作。
S30,根据源数据地址,基于预设配置信息,对设备指纹信息的源数据进行修改。
在确定每个配置项的源数据地址之后,即可基于预设配置信息,对设备指纹信息的源数据进行修改,得到仿真设备的设备指纹信息,使仿真设备接收到设备指纹信息请求时,从动态链接库中获得经过修改的设备指纹信息以反馈给攻击者,但是这个反馈和交互的过程是按照真实PLC设备实现的,达到真实性提升的目的。
具体地,设备指纹信息的配置项至少包括如下内容:模块信息Module、基础硬件信息Basic Hardware、版本号Version、系统名称System Name、模块类型Module Type、序列号Serial Number、版权号Copyright。可以参考真实PLC设备的各个配置项的内容形成预设配置信息如表1所示。
表1
在一些实施例中,可以通过调用逆向工具IDA参考表1所提供的预设配置信息对设备指纹信息中的源数据进行修改,将原有的源数据修改为表1中配置信息对应的内容。需要注意的是,在进行修改时,需要对表1中内容进行十六进制的ASCII编码后再对替换动态链接库中的源数据进行替换。
S40,基于修改后的设备指纹信息,利用Snap7的库开发工具进行仿真设备的构建。
对动态链接库中的设备指纹信息进行修改之后,即可利用Snap7的库开发工具进行仿真设备的构建,此时构建出的仿真设备在响应攻击者的设备指纹信息请求时所反馈的信息就是经过伪装后的虚假的信息,同时可以实现S7comm协议数据包的解析和构建,并具有完整的连接和数据传输功能。
本实施例利用逆向分析确定设备指纹信息位于Snap7的动态链接库中,随后通过对动态链接库进行深度拆解以确定动态链接库中设备指纹信息的所在位置,利用预设配置信息对设备指纹信息的源数据进行修改,使后续在通过Snap7的库开发工具进行仿真设备的构建时可以基于修改后的设备指纹信息进行真实的设备指纹响应,同时使仿真设备具有进行数据交互的能力,提升仿真设备的真实性,更有利于消耗攻击者的攻击资源,并且具有更简便的配置方式,可以实现快速复用以降低部署成本。
本实施例仿真出的设备能够在Nmap、PLCScan等扫描工具的扫描下给出真实的设备指纹响应,同时在常用的PLC连接工具的连接请求下,能够给出正确的应答,完成连接的建立。与此同时,本实施例所提供的PLC设备仿真方法采用虚拟化的方式部署仿真设备,能够大幅度降低威胁诱捕环境的部署成本,同时提供了能够快速仿真多种类型的西门子PLC设备的能力,能够保障威胁诱捕环境中组件充分、种类复杂,提高威胁诱捕环境对真实工控网络环境的伪装能力。
下面结合图8至图17对本实施例所提供的仿真方法的有效性验证过程进行说明。
当前工控网络中具有四个PLC设备,在PLCScan所在文件夹执行命令python2./plcscan.py IP地址:端口号,使用PLCScan脚本分别对四个PLC进行设备指纹扫描,得到的扫描结果如图8至图11所示,其中,图8为经过工控蜜罐Conpot修改的PLC设备的扫描结果,图9对未经工控蜜罐Conpot修改的PLC设备的扫描结果,图10为利用本实施例所提供的方式得到的PLC设备的扫描结果,图11为未经本实施例所提供的方式修改的PLC设备的扫描结果。从PLCScan的扫描结果看,Conpot和本实施例的设备指纹信息修改都取得了很好的效果,对于Conpot而言,消除了明显的指纹特征“88111222”,同时对于其他设备指纹信息的伪装也更加贴近真实设备;对于本实施例而言,未修改前具有明显的蜜罐指纹特征“SNAP7-SERVER”,而在修改后蜜罐的指纹特征也被抹去,Conpot和本实施例在应对PLCScan的扫描当中取得了类似的伪装效果。
执行命令nmap-p端口号IP地址--script=s7-info.nse,使用nmap提供的s7-info.nse脚本分别对四个PLC进行设备指纹扫描,得到的扫描结果如图12至图15所示。其中,图12为经过工控蜜罐Conpot修改的PLC设备的扫描结果,图13对未经工控蜜罐Conpot修改的PLC设备的扫描结果,图14为利用本实施例所提供的方式得到的PLC设备的扫描结果,图15为未经本实施例所提供的方式修改的PLC设备的扫描结果。基于上述扫描结果可知,Conpot并没有能够给出响应的指纹伪装信息,只探测到了端口开放。但本实施例给出了伪装设备指纹信息,同时也能够看出修改后的本实施例的方式同样消除了蜜罐指纹特征,证明本实施例所使用的设备指纹伪装方式能够在PLCScan和Nmap的设备指纹探测下给出伪造的指纹响应。
在攻击者针对暴露的服务端逐个渗透的过程中,当攻击者经过对伪装设备的扫描确认设备指纹信息可靠后,开始利用PLC连接工具尝试对仿真设备进行连接并进行数据传输。攻击者会尝试进行简单的交互以进一步确定入侵的对象是否是真实的PLC设备,以避免在蜜罐中泄露自己的攻击载荷。以下将利用HslCommunication工具分别对本实施例的仿真方式和Conpot进行连接尝试并进行数据传输对比连接效果,并尝试进行数据传输。
图16为HslCommunication工具连接仿真设备的结果示意图,图17为HslCommunication数据传输响应结果图。从测试结果看HslCommunication不能与Conpot的仿真设备建立连接,无法进行数据传输。基于Conpot的仿真设备在攻击者渗透的过程中容易被有经验的攻击者识别出与真实的设备存在差异,进而绕开不进行进一步交互,无法获取到攻击者的攻击载荷等关键信息。而基于本实施例所仿真的设备能够与HslCommunication基于多种设备协议建立连接,并以多种数据类型的传输方式进行数据交互,同时能够保证数据输入结果和输出结果在前后保持一致性,因而具有更高的欺骗性,能够诱惑攻击者发起进一步的交互请求。
本公开第二实施例提供了一种存储介质,该存储介质可安装于任意一种需要可以对工控网络或者工控网络中PLC设备进行控制的应用、系统或平台中,其具体为计算机可读介质,存储有计算机程序,该计算机程序被处理器执行时实现本公开任意实施例提供的方法。
本实施例利用逆向分析确定设备指纹信息位于Snap7的动态链接库中,随后通过对动态链接库进行深度拆解以确定动态链接库中设备指纹信息的所在位置,利用预设配置信息对设备指纹信息的源数据进行修改,使后续在通过Snap7的库开发工具进行仿真设备的构建时可以基于修改后的设备指纹信息进行真实的设备指纹响应,同时使仿真设备具有进行数据交互的能力,提升仿真设备的真实性,更有利于消耗攻击者的攻击资源,并且具有更简便的配置方式,可以实现快速复用以降低部署成本。
本公开的第三实施例提供了一种电子设备,该电子设备中可以具有需要可以对工控网络或者工控网络中PLC设备进行控制的应用、系统或平台,其结构示意图如图18所示,至少包括存储器100和处理器200,存储器100上存储有计算机程序,处理器200在执行存储器100上的计算机程序时实现本公开任意实施例提供的方法。
本实施例利用逆向分析确定设备指纹信息位于Snap7的动态链接库中,随后通过对动态链接库进行深度拆解以确定动态链接库中设备指纹信息的所在位置,利用预设配置信息对设备指纹信息的源数据进行修改,使后续在通过Snap7的库开发工具进行仿真设备的构建时可以基于修改后的设备指纹信息进行真实的设备指纹响应,同时使仿真设备具有进行数据交互的能力,提升仿真设备的真实性,更有利于消耗攻击者的攻击资源,并且具有更简便的配置方式,可以实现快速复用以降低部署成本。
最后应说明的是:以上各实施例仅用以说明本公开的技术方案,而非对其限制;尽管参照前述各实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本公开各实施例技术方案的范围。
Claims (9)
1.一种PLC设备的仿真方法,其特征在于,包括:
通过扫描工具和真实PLC设备之间的交互数据包、所述扫描工具的扫描脚本以及Snap7软件包的应用程序进行逆向分析,确定设备指纹信息位于所述Snap7软件包的动态链接库中;
在所述动态链接库中,确定所述设备指纹信息的源数据地址;
根据所述源数据地址,基于预设配置信息,对所述设备指纹信息的源数据进行修改;
基于修改后的设备指纹信息,利用Snap7的库开发工具进行仿真设备的构建;
其中,所述通过扫描工具和真实PLC设备之间的交互数据包、所述扫描工具的扫描脚本以及Snap7软件包的应用程序进行逆向分析,确定设备指纹信息位于所述Snap7软件包的动态链接库中,包括:
对所述扫描工具的扫描脚本进行分析,确定所述扫描工具获取所述设备指纹信息的原理为基于预设功能码向PLC设备请求设备指纹信息;
分析所述交互数据包,确定所述PLC设备通过对所述预设功能码的请求返回携带有所述设备指纹信息的数据包;
利用逆向工具对所述Snap7软件包的应用程序进行逆向分析,基于所述预设功能码和所述设备指纹信息的配置项,确定获取所述设备指纹信息的构造在Snap7软件包的动态链接库中完成。
2.根据权利要求1所述的仿真方法,其特征在于,对所述扫描工具的扫描脚本进行分析,确定所述扫描工具获取所述设备指纹信息的原理为基于预设功能码向PLC设备请求设备指纹信息,包括:
在所述扫描工具的扫描脚本中以所述设备指纹信息的配置项作为关键字进行检索;
根据检索结果确定所述扫描脚本中存在包含所述关键字的一种解析结构,所述解析结构要求在SZL_ID=0x1c时进行报文解析,其中,SZL表示系统状态列表;
根据所述检索结果和所述解析结构,确定在所述扫描工具与所述PLC设备的交互过程中,所述扫描工具基于0x1c功能码向所述PLC设备请求所述设备指纹信息。
3.根据权利要求2所述的仿真方法,其特征在于,分析所述交互数据包,确定所述PLC设备通过对所述预设功能码的请求返回携带有所述设备指纹信息的数据包,包括:
对交互过程中的所有所述交互数据包进行解析,得到每个所述交互数据包对应的应答报文;
在所有所述应答报文中筛选包含所述设备指纹信息的配置项内容的第一应答报文;
经过所述交互数据包内信息和字符串对比,确定所述第一应答报文为所述PLC设备响应于所述扫描工具基于0x1c功能码的请求所反馈的应答报文。
4.根据权利要求3所述的仿真方法,其特征在于,利用逆向工具对所述Snap7软件包的应用程序进行逆向分析,基于所述预设功能码和所述设备指纹信息的配置项内容,确定获取所述设备指纹信息的构造在Snap7软件包的动态链接库中完成,包括:
利用逆向工具,在所述应用程序的文本视图中以所述预设功能码和所述设备指纹信息的配置项内容作为关键字进行基于字符串和十六进制ASCII码的第一次检索;
基于第一次检索结果,确定所述应用程序中不存在处理所述设备指纹信息的配置项的函数;
在所述应用程序的文本视图中以SZL作为关键字进行基于字符串和十六进制ASCII码的第二次检索;
基于第二次检索结果,确定所述应用程序中具有获取所述设备指纹信息的方法,所述方法为Snap7软件包的动态链接库中的方法。
5.根据权利要求1所述的仿真方法,其特征在于,所述在所述动态链接库中,确定设备指纹信息的源数据地址,包括:
在所述动态链接库的处理结果中对所述设备指纹信息的每个配置项进行检索;
在检索结果中,确定每个所述配置项的源数据地址。
6.根据权利要求5所述的仿真方法,其特征在于,所述配置项包括:模块信息、基础硬件信息、版本号、系统名称、模块类型、序列号、版权号。
7.根据权利要求1至6中任一项所述的仿真方法,其特征在于,对所述设备指纹信息的源数据进行修改,包括:
利用逆向工具IDA对所述设备指纹信息中的源数据进行修改。
8.一种存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的PLC设备的仿真方法的步骤。
9.一种电子设备,至少包括存储器、处理器,所述存储器上存储有计算机程序,其特征在于,所述处理器在执行所述存储器上的计算机程序时实现权利要求1至7中任一项所述的PLC设备的仿真方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311085680.7A CN117111489B (zh) | 2023-08-25 | 2023-08-25 | 一种plc设备的仿真方法、存储介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311085680.7A CN117111489B (zh) | 2023-08-25 | 2023-08-25 | 一种plc设备的仿真方法、存储介质和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117111489A CN117111489A (zh) | 2023-11-24 |
CN117111489B true CN117111489B (zh) | 2024-05-17 |
Family
ID=88793354
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311085680.7A Active CN117111489B (zh) | 2023-08-25 | 2023-08-25 | 一种plc设备的仿真方法、存储介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117111489B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110058565A (zh) * | 2019-03-01 | 2019-07-26 | 中国电子科技网络信息安全有限公司 | 一种基于Linux操作系统的工业控制PLC系统指纹模拟方法 |
CN111327636A (zh) * | 2020-03-10 | 2020-06-23 | 西北工业大学 | 一种涉及网络安全的s7-300plc私有协议逆向方法 |
CN112261046A (zh) * | 2020-10-22 | 2021-01-22 | 胡付博 | 一种基于机器学习的工控蜜罐识别方法 |
CN112650077A (zh) * | 2020-12-11 | 2021-04-13 | 中国科学院信息工程研究所 | 基于工控业务仿真的plc蜜罐系统、实现方法及仿真设备 |
CN112671692A (zh) * | 2019-10-16 | 2021-04-16 | 博智安全科技股份有限公司 | 一种基于入侵诱骗技术的工控攻击检测方法 |
CN114285599A (zh) * | 2021-11-23 | 2022-04-05 | 中国人民解放军战略支援部队信息工程大学 | 基于控制器深度内存仿真的工控蜜罐构建方法及工控蜜罐 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10965521B2 (en) * | 2018-09-14 | 2021-03-30 | Rapid7, Inc. | Honeypot asset cloning |
-
2023
- 2023-08-25 CN CN202311085680.7A patent/CN117111489B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110058565A (zh) * | 2019-03-01 | 2019-07-26 | 中国电子科技网络信息安全有限公司 | 一种基于Linux操作系统的工业控制PLC系统指纹模拟方法 |
CN112671692A (zh) * | 2019-10-16 | 2021-04-16 | 博智安全科技股份有限公司 | 一种基于入侵诱骗技术的工控攻击检测方法 |
CN111327636A (zh) * | 2020-03-10 | 2020-06-23 | 西北工业大学 | 一种涉及网络安全的s7-300plc私有协议逆向方法 |
CN112261046A (zh) * | 2020-10-22 | 2021-01-22 | 胡付博 | 一种基于机器学习的工控蜜罐识别方法 |
CN112650077A (zh) * | 2020-12-11 | 2021-04-13 | 中国科学院信息工程研究所 | 基于工控业务仿真的plc蜜罐系统、实现方法及仿真设备 |
CN114285599A (zh) * | 2021-11-23 | 2022-04-05 | 中国人民解放军战略支援部队信息工程大学 | 基于控制器深度内存仿真的工控蜜罐构建方法及工控蜜罐 |
Non-Patent Citations (1)
Title |
---|
《工业控制系统安全仿真关键技术研究综述》;王佰玲 等;《系统仿真学报》;20210719;第33卷(第6期);第1466-1488页 * |
Also Published As
Publication number | Publication date |
---|---|
CN117111489A (zh) | 2023-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6559694B2 (ja) | 自動sdk受容 | |
CN111400722B (zh) | 扫描小程序的方法、装置、计算机设备和存储介质 | |
US8359653B2 (en) | Portable program for generating attacks on communication protocols and channels | |
US20210279332A1 (en) | System and method for automatic generation of malware detection traps | |
US20180255089A1 (en) | Determining Security Vulnerabilities in Application Programming Interfaces | |
CN107634931A (zh) | 异常数据的处理方法、云端服务器、网关及终端 | |
US11405403B2 (en) | Method and device, and server and terminal for processing network resource access | |
CN112926061B (zh) | 插件处理方法及装置 | |
CN108259514A (zh) | 漏洞检测方法、装置、计算机设备和存储介质 | |
CN112671605B (zh) | 一种测试方法、装置及电子设备 | |
CN109510738B (zh) | 一种通信链路的测试方法及设备 | |
CN112883031A (zh) | 工控资产信息获取方法及装置 | |
CN112637235A (zh) | 一种通信方法、装置、设备及介质 | |
Kant et al. | Analysis of IoT security risks based on the exposure of the MQTT protocol | |
CN117111489B (zh) | 一种plc设备的仿真方法、存储介质和电子设备 | |
CN112015483B (zh) | Post请求参数自动化处理方法、装置及可读存储介质 | |
CN116800525A (zh) | 蜜罐防护方法、装置、存储介质及电子设备 | |
US20230185922A1 (en) | Static-dynamic integration | |
CN116628696A (zh) | 一种基于代理客户端的漏洞检测方法及相关设备 | |
CN111385293B (zh) | 一种网络风险检测方法和装置 | |
CN115604162A (zh) | 一种网络安全设备的检测方法 | |
Kumar et al. | Intrusion detection system for grid computing using SNORT | |
CN113868670A (zh) | 一种漏洞检测流程检验方法及系统 | |
CN112929365A (zh) | 一种远程命令检测方法、装置及电子设备 | |
CN117811836B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |