CN117041362A - 一种针对工控协议语义逆向结果的校验方法及系统 - Google Patents
一种针对工控协议语义逆向结果的校验方法及系统 Download PDFInfo
- Publication number
- CN117041362A CN117041362A CN202311038627.1A CN202311038627A CN117041362A CN 117041362 A CN117041362 A CN 117041362A CN 202311038627 A CN202311038627 A CN 202311038627A CN 117041362 A CN117041362 A CN 117041362A
- Authority
- CN
- China
- Prior art keywords
- semantic
- request
- flow
- industrial control
- flow packet
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 230000002452 interceptive effect Effects 0.000 claims abstract description 48
- 230000008859 change Effects 0.000 claims abstract description 15
- 230000004044 response Effects 0.000 claims description 120
- 230000003993 interaction Effects 0.000 claims description 49
- 238000013507 mapping Methods 0.000 claims description 14
- 238000012544 monitoring process Methods 0.000 claims description 14
- 230000003068 static effect Effects 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 10
- 238000012795 verification Methods 0.000 claims description 10
- 230000006870 function Effects 0.000 claims description 7
- 238000009411 base construction Methods 0.000 claims description 6
- 238000007781 pre-processing Methods 0.000 claims description 6
- 230000000007 visual effect Effects 0.000 claims description 6
- 238000010276 construction Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 claims description 3
- 238000004458 analytical method Methods 0.000 abstract description 12
- 238000006243 chemical reaction Methods 0.000 abstract 1
- 230000007123 defense Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 206010063385 Intellectualisation Diseases 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004134 energy conservation Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000005206 flow analysis Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011076 safety test Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/03—Protocol definition or specification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- 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)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Debugging And Monitoring (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种针对工控协议语义逆向结果的校验方法及系统,以验证协议语义逆向结果的正确性。该方法包括:整理工控协议语义逆向结果,形成统一格式的语义模板;采集上位机软件与工控设备建立连接的交互流量,构建交互信息库;构建工控设备模拟器;控制上位机软件连接工控设备模拟器,根据语义模板修改语义字段值,并观察上位机软件显示的目标语义信息的变化情况,判断语义模板的正确性。本发明能够系统性地验证工控协议语义逆向结果的正确性,能够加速转化协议逆向成果,改善语义解析方法。
Description
技术领域
本发明属于工控协议逆向领域,尤其涉及一种针对工控协议语义逆向结果的校验方法及系统。
背景技术
近年来,随着工业化与信息化的深度融合,数字化、网络化、智能化成为工业转型升级的典型特征,扩展到主流工业行业。原本独立、封闭的工业控制系统与互联网的广泛互联,对于提生产企业的生产管控、运作效率、节能减排发挥了积极作用。但同时,众多工业控制器暴露在网路空间中,成为众多攻击者的首要攻击目标。为了保证工控设备安全,需要对工控设备及其所处环境进行深度安全检测与评估。
基于工控流量进行安全防御和评估是保护工控设备的重要途径。现有的安全防御设备,如入侵检测系统、流量审查设备、安全评估工具部署在工控场景的关键网络节点中,审查解析流经的网络流量,并从中提取工控设备状态及关键参数变化等信息,以评估其当前工控设备安全状态。但由于大多数工控设备使用私有协议通信,其结构和规范不对外公开,因此高效准确的安全防御设备均依赖对于私有工控协议的逆向解析。
语义解析是工控协议逆向分析的重要内容,其目的是解析私有协议中字段所代表的含义,寻找字段值空间与工控语义空间的映射关系。其结果能够输出给各类基于流量解析的安全工具,实现对工控设备安全分析与监测。但是现有工作显示目前语义解析主要依靠人工实现,解析内容准确率较低。不准确的语义解析结果可能导致安全工具分析结果出错,导致误报,漏报,严重影响安全工具的真实防御效果。
发明内容
本发明的目的在于针对现有技术的不足,提供一种针对工控协议语义逆向结果的校验方法及系统。利用与工控设备配套的上位机软件对私有协议的解析结果,对涉及工控场景的语义逆向结果进行验证。基于语义模板搭建工控设备模拟器,并控制上位机软件连接工控设备模拟器。通过修改语义相关字段的值观察上位机界面的显示变化,以判断语义逆向结果与上位机所使用的依据是否一致。
本发明的目的是通过以下技术方案实现的:
根据本说明书的第一方面,提供一种针对工控协议语义逆向结果的校验方法,该方法包括如下步骤:
步骤一,整理工控协议语义逆向结果,形成统一格式的语义模板,所述语义模板包括获取语义信息的请求流量包、代表语义信息的语义字段在响应流量包中的偏移、语义字段值和语义信息项的映射关系;
步骤二,采集上位机软件与工控设备建立连接的交互流量,提取交互流量的负载数据并进行流量包标识,按时序构建请求流量包-响应流量包的交互组合;对所有请求流量包进行聚类,根据聚类结果生成每个类别对应的请求模板,结合响应流量包构成请求模板-响应流量包的交互组合,整合得到交互信息库;
步骤三,构建工控设备模拟器,其功能包括:监听模拟工控设备的对应端口,捕获来自上位机软件的请求流量包;通过交互信息库匹配相应响应流量包,修改序列号字段值后返回给上位机软件;
步骤四,校验语义逆向结果,包括:控制上位机软件连接工控设备模拟器,根据语义模板修改语义字段值,并观察上位机软件显示的目标语义信息的变化情况,判断语义模板的正确性。
进一步地,所述步骤一中,语义逆向结果的整理步骤如下:
1.1利用上位机软件和工控设备,采集包含目标语义字段的交互流量;
1.2根据语义逆向结果,从交互流量中定位包含目标语义字段的响应流量包,在响应流量包中定位目标语义字段并提取字段值,获取该响应流量包对应的请求流量包;
1.3将目标语义字段在响应流量包中的偏移p、该响应流量包对应的请求流量包q,以及该字段的值空间与语义空间的映射关系m以json格式进行记录,记录格式如下:
进一步地,所述步骤二包括以下子步骤:
2.1控制上位机软件与工控设备建立连接,使用Wireshark记录过程中的交互流量将其保存为流量文件P,文件格式为pcap;
2.2对流量文件进行预处理,首先去除底层流量信息,仅保留应用层的负载数据payload;然后根据流量包的方向和序号构建流量包标识NO,其中方向包括发送send和接收recv,序号表示流量包出现的时间顺序,以上位机软件为参考对象,如send1表示上位机软件向工控设备发送的第一个包;每个流量文件都被转换成NO:payload形式的负载字典;
2.3对于流量文件中的n个请求流量包sendi和n个响应流量包recvi,表示为(send1,recv1,…,sendn,recvn),根据时序将其整理成n个请求-响应对{(send1,recv1),…,(sendn,recvn)};
2.4根据请求流量包的特征相似性,对流量文件中的所有请求流量包进行聚类,得到K个类别(c1,…,cK);具体地,计算相似性的特征包括流量包的长度和流量包间的汉明距离;
2.5对于每个类别ck的请求流量包,根据序列号字段的变化特征,标注序列号字段在请求流量包中的位置并将其替换为特殊符号#,请求流量包中剩余字段为静态字段;将由特殊符号和静态字段组成的请求流量包作为该类别ck对应的请求模板tk;
2.6针对每个请求模版tk,从其聚类中随机选择一个请求流量包,根据步骤2.3中的请求-响应对提取其对应的响应流量包,组成请求模板-响应流量包的交互组合ik;将所有交互组合整合成交互信息库I。
进一步地,所述步骤三中,构建在PC上运行的工控设备模拟器,步骤如下:
3.1监听PC上工控设备对应的端口,捕获来自上位机软件的请求流量包;
3.2将捕获的请求流量包与交互信息库中的请求模板逐一对比以进行匹配;
3.3从交互信息库中提取匹配成功的请求模板对应的响应流量包;
3.4根据请求模板中的特殊符号#,从请求流量包中获取序列号字段值,并以此替代响应流量包中的序列号字段值;
3.5将响应流量包发送给上位机软件。
进一步地,所述步骤四中,校验语义逆向结果的步骤如下:
4.1启动工控设备模拟器,并控制上位机软件连接工控设备模拟器;
4.2上位机软件自动向工控设备模拟器发送若干请求流量包,并根据工控设备模拟器的响应将工控设备信息显示在可视化界面上。将上位机软件此时显示的目标语义信息和对应的语义字段值记录在结果集合F中;
4.3断开上位机软件与工控设备模拟器之间的连接;
4.4判断相关语义字段的所有值是否校验完毕,若没有,则根据语义模板修改交互信息库中包含语义信息的响应流量包,将语义字段值修改为表示另一语义信息项的值,并转至4.1;否则转至4.5;
4.5比较结果集合F和语义模板,观察语义信息和语义字段值的对应关系是否在两者中一致,判断语义模板的正确性。
根据本说明书的第二方面,提供一种针对工控协议语义逆向结果的校验系统,该系统包括以下模块:
格式生成模块:用于整理工控协议语义逆向结果,形成统一格式的语义模板,所述语义模板包括获取语义信息的请求流量包、代表语义信息的语义字段在响应流量包中的偏移、语义字段值和语义信息项的映射关系;
交互信息库构建模块:采集上位机软件与工控设备建立连接的交互流量,提取交互流量的负载数据并进行流量包标识,按时序构建请求流量包-响应流量包的交互组合;对所有请求流量包进行聚类,根据聚类结果生成每个类别对应的请求模板,结合响应流量包构成请求模板-响应流量包的交互组合,整合得到交互信息库;
工控设备模拟器构建模块:用于构建工控设备模拟器,所述工控设备模拟器的功能包括:监听模拟工控设备的对应端口,捕获来自上位机软件的请求流量包;通过交互信息库匹配相应响应流量包,修改序列号字段值后返回给上位机软件;
校验模块,用于校验语义逆向结果,包括:控制上位机软件连接工控设备模拟器,根据语义模板修改语义字段值,并观察上位机软件显示的目标语义信息的变化情况,判断语义模板的正确性。
进一步地,所述格式生成模块中对语义逆向结果进行整理,步骤如下:
1.1利用上位机软件和工控设备,采集包含目标语义字段的交互流量;
1.2根据语义逆向结果,从交互流量中定位包含目标语义字段的响应流量包,在响应流量包中定位目标语义字段并提取字段值,获取该响应流量包对应的请求流量包;
1.3将目标语义字段在响应流量包中的偏移p、该响应流量包对应的请求流量包q,以及该字段的值空间与语义空间的映射关系m以json格式进行记录。
进一步地,所述交互信息库构建模块包括:
2.1控制上位机软件与工控设备建立连接,使用Wireshark记录过程中的交互流量将其保存为流量文件P,文件格式为pcap;
2.2对流量文件进行预处理,首先去除底层流量信息,仅保留应用层的负载数据payload;然后根据流量包的方向和序号构建流量包标识NO,其中方向包括发送send和接收recv,序号表示流量包出现的时间顺序,以上位机软件为参考对象,如send1表示上位机软件向工控设备发送的第一个包;每个流量文件都被转换成NO:payload形式的负载字典;
2.3对于流量文件中的n个请求流量包sendi和n个响应流量包recvi,表示为(send1,recv1,...,sendn,recvn),根据时序将其整理成n个请求-响应对{(send1,recv1),...,(sendn,recvn)};
2.4根据请求流量包的特征相似性,对流量文件中的所有请求流量包进行聚类,得到K个类别(c1,...,cK);具体地,计算相似性的特征包括流量包的长度和流量包间的汉明距离;
2.5对于每个类别ck的请求流量包,根据序列号字段的变化特征,标注序列号字段在请求流量包中的位置并将其替换为特殊符号#,请求流量包中剩余字段为静态字段;将由特殊符号和静态字段组成的请求流量包作为该类别ck对应的请求模板tk;
2.6针对每个请求模版tk,从其聚类中随机选择一个请求流量包,根据步骤2.3中的请求-响应对提取其对应的响应流量包,组成请求模板-响应流量包的交互组合ik;将所有交互组合整合成交互信息库I。
进一步地,所述工控设备模拟器构建模块包括:
3.1监听PC上工控设备对应的端口,捕获来自上位机软件的请求流量包;
3.2将捕获的请求流量包与交互信息库中的请求模板逐一对比以进行匹配;
3.3从交互信息库中提取匹配成功的请求模板对应的响应流量包;
3.4根据请求模板中的特殊符号#,从请求流量包中获取序列号字段值,并以此替代响应流量包中的序列号字段值;
3.5将响应流量包发送给上位机软件。
进一步地,所述校验模块中校验语义逆向结果,步骤如下:
4.1启动工控设备模拟器,并控制上位机软件连接工控设备模拟器;
4.2上位机软件自动向工控设备模拟器发送若干请求流量包,并根据工控设备模拟器的响应将工控设备信息显示在可视化界面上。将上位机软件此时显示的目标语义信息和对应的语义字段值记录在结果集合F中;
4.3断开上位机软件与工控设备模拟器之间的连接;
4.4判断相关语义字段的所有值是否校验完毕,若没有,则根据语义模板修改交互信息库中包含语义信息的响应流量包,将语义字段值修改为表示另一语义信息项的值,并转至4.1;否则转至4.5;
4.5比较结果集合F和语义模板,观察语义信息和语义字段值的对应关系是否在两者中一致,判断语义模板的正确性。
本发明的有益效果是:由于工控私有协议不公开,缺少真实的语义结果,很难对工控协议语义逆向结果进行验证。现有的校验方法主要通过逆向人员的经验进行判断。本发明将上位机软件的显示结果作为判断协议逆向结果的指标,提出了一种半自动化的语义逆向判别方法。由于上位机软件承担解析设备流量并实时显示设备信息以供操作员监测的功能,因此其对工控协议的结构和功能有明确认知,能够根据流量中特定字段的值解析出工控设备的实时信息。针对现有语义结果缺少验证手段的问题,本发明提出了一套半自动化的语义逆向判别方法。该方法以上位机软件的结果作为真值,通过工控设备模拟器交互的方法与上位机建立连接,并修改语义相关字段的值以模拟工控设备改变相关状态或关键参数,能够有效地校验语义解析结果的正确性。
附图说明
图1为本发明一示例性实施例提供的一种针对工控协议语义逆向结果的校验方法流程图;
图2为本发明一示例性实施例提供的构建交互信息库流程图;
图3为本发明一示例性实施例提供的构建工控设备模拟器流程图;
图4为本发明一示例性实施例提供的校验语义结果流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本申请实施例提供的一种针对工控协议语义逆向结果的校验方法,运行环境为Intel-Windows架构的PC机,其硬件的主频2.5GHz及以上的Core八核CPU的PC机,内存≥8GB,硬盘2TGB,运行Windows 10操作系统,可以应用于对工控设备进行工业协议逆向分析、工控协议漏洞检测和工控设备安全测试场景中,所述工控设备覆盖主流厂商的工业互联网现场设备、无线接入设备、边缘终端设备、工业通信设备和安全防护设备等使用二进制私有工控协议的设备。语义信息包括工控设备状态配置和关键参数。
接下来以可编程逻辑控制器M221的运行状态的验证过程为例进行展示,其语义逆向结果,即系统的输入为如下语义信息:
设备:M221
目标语义:运行状态
目标语义状态:运行,停止
状态字段偏移:10,26
字段值与语义映射关系:
10:(run:03,stop:02)
26:(run:01,stop:03)
本申请实施例提供的一种针对工控协议语义逆向结果的校验方法,如图1所示,包括以下步骤:
步骤S1,整理工控协议语义逆向结果,形成统一格式的语义模板,所述语义模板包括获取语义信息的请求流量包、代表语义信息的语义字段在响应流量包中的偏移、语义字段值和语义信息项的映射关系。
步骤S1开始于步骤S101:利用上位机软件和工控设备,采集包含目标语义字段的交互流量;需注意,用于监控工控设备状态的字段通常包含在上位机软件与工控设备的心跳包流量中,因此在两者建立连接后,不需要采取特定操作。而一些关键参数需要上位机软件执行读取特定位置的内容后才可在流量中出现,因此采集这部分流量时需要控制上位机进行相应的读写操作。随后转至S102。
步骤S102中,根据语义逆向结果,从交互流量中定位包含目标语义字段的响应流量包,在响应流量包中定位目标语义字段并提取字段值,获取该响应流量包对应的请求流量包。需注意,请求流量包为上位机向工控设备发出的请求,而包含语义字段的流量包为工控设备发送的响应流量包。随后转至S103。
步骤S103中,将目标语义字段在响应流量包中的偏移p、该响应流量包对应的请求流量包q,以及该字段的值空间与语义空间的映射关系m以json格式进行记录,记录格式如下:
需注意,一个语义可能包含多个语义字段,如上述例子中,根据语义逆向结果,响应信息中的第10和第26个字段的值均可以表示可编程逻辑控制器M221的运行状态。其中当10字段为“03”时表示设备处于“run”状态,为“02”时表示设备处于stop状态,第26字段类似。
步骤S2,构建工控设备模拟器,其功能包括:监听模拟工控设备的对应端口,捕获来自上位机软件的请求流量包;通过交互信息库匹配相应响应流量包,修改序列号字段值后返回给上位机软件。
如图2所示,步骤S2开始于S201:控制上位机软件与工控设备建立连接,使用Wireshark记录过程中的交互流量将其保存为流量文件P,文件格式为pcap。需注意,如果待校验信息是工控设备参数等不会在心跳流量包中出现的字段,则需要在上位机软件中进行相应操作读取该参数,以生成包含该参数字段的流量。随后转至S202。
步骤S202中,对流量文件进行预处理,首先去除底层流量信息,仅保留应用层的负载数据payload;然后根据流量包的方向和序号构建流量包标识NO,其中方向包括发送send和接收recv,序号表示流量包出现的时间顺序,以上位机软件为参考对象,如send1表示上位机软件向工控设备发送的第一个包;每个流量文件都被转换成NO:payload形式的负载字典。随后转至S203。
步骤S203中,对于流量文件中的n个请求流量包sendi和n个响应流量包recvi,表示为(send1,recv1,...,sendn,recvn),根据时序将其整理成n个请求-响应对{(send1,recv1),...,(sendn,recvn)}。随后转至S204。
步骤S204中,根据请求流量包的特征相似性,对流量文件中的所有请求流量包进行聚类,得到K个类别(c1,...,cK);具体地,计算相似性的特征包括流量包的长度和流量包间的汉明距离。随后转至S205。
步骤S205中,对于每个类别ck的请求流量包,根据序列号字段的变化特征,标注序列号字段在请求流量包中的位置并将其替换为特殊符号#,请求流量包中剩余字段为静态字段;将由特殊符号和静态字段组成的请求流量包作为该类别ck对应的请求模板tk。随后转至S206。
步骤S206中,针对每个请求模版tk,从其聚类中随机选择一个请求流量包,根据步骤S203中的请求-响应对提取其对应的响应流量包,组成请求模板-响应流量包的交互组合ik;将所有交互组合整合成交互信息库I。
步骤S3,构建工控设备模拟器并与上位机软件交互。
工控设备模拟器的工作流程以及与上位机软件的交互过程如图3所示,编写python脚本构建工控设备模拟器架构,监听模拟工控设备的对应端口,并捕获来自上位机软件的请求流量包,编写内容开始于S301,控制上位机软件连接工控设备模拟器监听端口;需注意,如果待验证的目标语义字段包含在需要额外操作的流量中,如读写特定字段的流量,则需要在连接工控设备模拟器后控制上位机软件进行相应操作,随后转至S302;
步骤S302中,将工控设备模拟器所捕获的请求流量包与交互信息库中的请求模板逐一对比以进行匹配,随后转至S303;
步骤S303中,从交互信息库中提取匹配成功的请求模板对应的响应流量包,随后转至S304。
步骤S304中,根据请求模板中的特殊符号#,从请求流量包中获取序列号字段值,并以此替代响应流量包中的序列号字段值。需注意,该步骤是为了保证响应信息能够被上位机软件识别并通过序号校验。部分上位机软件不进行序号校验,则该步可省略。转至S305。
步骤S305中,将响应流量包转换为二进制格式,并发送给上位机软件。
步骤S4,校验语义逆向结果,包括:控制上位机软件连接工控设备模拟器,根据语义模板修改语义字段值,并观察上位机软件显示的目标语义信息的变化情况,判断语义模板的正确性。如果4所示,利用上位机验证语义逆向结果开始于S401,启动工控设备模拟器并监听特定端口,控制上位机软件连接工控设备模拟器;转至S402。
步骤S402中,上位机软件自动向工控设备模拟器发送若干请求流量包,并根据工控设备模拟器的响应将工控设备信息显示在可视化界面上。将上位机软件此时显示的目标语义信息和对应的语义字段值记录在结果集合F中;转至S403。
步骤S403中,断开上位机软件与工控设备模拟器之间的连接;转至S404。
步骤S404中,判断相关语义字段的所有值是否校验完毕,若没有,则根据语义模板修改交互信息库中包含语义信息的响应流量包,将语义字段值修改为表示另一语义信息项的值,并转至S401;否则转至S405。
步骤S405中,比较结果集合F和语义模板,观察语义信息和语义字段值的对应关系是否在两者中一致,判断语义模板的正确性。
在另一实施例中,提供一种针对工控协议语义逆向结果的校验系统,该系统包括:
格式生成模块:用于整理工控协议语义逆向结果,形成统一格式的语义模板,所述语义模板包括获取语义信息的请求流量包、代表语义信息的语义字段在响应流量包中的偏移、语义字段值和语义信息项的映射关系;
交互信息库构建模块:采集上位机软件与工控设备建立连接的交互流量,提取交互流量的负载数据并进行流量包标识,按时序构建请求流量包-响应流量包的交互组合;对所有请求流量包进行聚类,根据聚类结果生成每个类别对应的请求模板,结合响应流量包构成请求模板-响应流量包的交互组合,整合得到交互信息库;
工控设备模拟器构建模块:用于构建工控设备模拟器,所述工控设备模拟器的功能包括:监听模拟工控设备的对应端口,捕获来自上位机软件的请求流量包;通过交互信息库匹配相应响应流量包,修改序列号字段值后返回给上位机软件;
校验模块,用于校验语义逆向结果,包括:控制上位机软件连接工控设备模拟器,根据语义模板修改语义字段值,并观察上位机软件显示的目标语义信息的变化情况,判断语义模板的正确性。
具体地,格式生成模块中对语义逆向结果进行整理,步骤如下:
1.1利用上位机软件和工控设备,采集包含目标语义字段的交互流量;
1.2根据语义逆向结果,从交互流量中定位包含目标语义字段的响应流量包,在响应流量包中定位目标语义字段并提取字段值,获取该响应流量包对应的请求流量包;
1.3将目标语义字段在响应流量包中的偏移p、该响应流量包对应的请求流量包q,以及该字段的值空间与语义空间的映射关系m以json格式进行记录。
具体地,交互信息库构建模块包括:
2.1控制上位机软件与工控设备建立连接,使用Wireshark记录过程中的交互流量将其保存为流量文件P,文件格式为pcap;
2.2对流量文件进行预处理,首先去除底层流量信息,仅保留应用层的负载数据payload;然后根据流量包的方向和序号构建流量包标识NO,其中方向包括发送send和接收recv,序号表示流量包出现的时间顺序,以上位机软件为参考对象,如send1表示上位机软件向工控设备发送的第一个包;每个流量文件都被转换成NO:payload形式的负载字典;
2.3对于流量文件中的n个请求流量包sendi和n个响应流量包recvi,表示为(send1,recv1,...,sendn,recvn),根据时序将其整理成n个请求-响应对{(send1,recv1),...,(sendn,recvn)};
2.4根据请求流量包的特征相似性,对流量文件中的所有请求流量包进行聚类,得到K个类别(c1,...,cK);具体地,计算相似性的特征包括流量包的长度和流量包间的汉明距离;
2.5对于每个类别ck的请求流量包,根据序列号字段的变化特征,标注序列号字段在请求流量包中的位置并将其替换为特殊符号#,请求流量包中剩余字段为静态字段;将由特殊符号和静态字段组成的请求流量包作为该类别ck对应的请求模板tk;
2.6针对每个请求模版tk,从其聚类中随机选择一个请求流量包,根据步骤2.3中的请求-响应对提取其对应的响应流量包,组成请求模板-响应流量包的交互组合ik;将所有交互组合整合成交互信息库I。
具体地,工控设备模拟器构建模块包括:
3.1监听PC上工控设备对应的端口,捕获来自上位机软件的请求流量包;
3.2将捕获的请求流量包与交互信息库中的请求模板逐一对比以进行匹配;
3.3从交互信息库中提取匹配成功的请求模板对应的响应流量包;
3.4根据请求模板中的特殊符号#,从请求流量包中获取序列号字段值,并以此替代响应流量包中的序列号字段值;
3.5将响应流量包发送给上位机软件。
具体地,校验模块中校验语义逆向结果的步骤如下:
4.1启动工控设备模拟器,并控制上位机软件连接工控设备模拟器;
4.2上位机软件自动向工控设备模拟器发送若干请求流量包,并根据工控设备模拟器的响应将工控设备信息显示在可视化界面上。将上位机软件此时显示的目标语义信息和对应的语义字段值记录在结果集合F中;
4.3断开上位机软件与工控设备模拟器之间的连接;
4.4判断相关语义字段的所有值是否校验完毕,若没有,则根据语义模板修改交互信息库中包含语义信息的响应流量包,将语义字段值修改为表示另一语义信息项的值,并转至4.1;否则转至4.5;
4.5比较结果集合F和语义模板,观察语义信息和语义字段值的对应关系是否在两者中一致,判断语义模板的正确性。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (10)
1.一种针对工控协议语义逆向结果的校验方法,其特征在于,该方法包括如下步骤:
步骤一,整理工控协议语义逆向结果,形成统一格式的语义模板,所述语义模板包括获取语义信息的请求流量包、代表语义信息的语义字段在响应流量包中的偏移、语义字段值和语义信息项的映射关系;
步骤二,采集上位机软件与工控设备建立连接的交互流量,提取交互流量的负载数据并进行流量包标识,按时序构建请求流量包-响应流量包的交互组合;对所有请求流量包进行聚类,根据聚类结果生成每个类别对应的请求模板,结合响应流量包构成请求模板-响应流量包的交互组合,整合得到交互信息库;
步骤三,构建工控设备模拟器,其功能包括:监听模拟工控设备的对应端口,捕获来自上位机软件的请求流量包;通过交互信息库匹配相应响应流量包,修改序列号字段值后返回给上位机软件;
步骤四,校验语义逆向结果,包括:控制上位机软件连接工控设备模拟器,根据语义模板修改语义字段值,并观察上位机软件显示的目标语义信息的变化情况,判断语义模板的正确性。
2.根据权利要求1所述的一种针对工控协议语义逆向结果的校验方法,其特征在于,所述步骤一中,语义逆向结果的整理步骤如下:
1.1利用上位机软件和工控设备,采集包含目标语义字段的交互流量;
1.2根据语义逆向结果,从交互流量中定位包含目标语义字段的响应流量包,在响应流量包中定位目标语义字段并提取字段值,获取该响应流量包对应的请求流量包;
1.3将目标语义字段在响应流量包中的偏移、该响应流量包对应的请求流量包,以及该字段的值空间与语义空间的映射关系以json格式进行记录。
3.根据权利要求1所述的一种针对工控协议语义逆向结果的校验方法,其特征在于,所述步骤二包括以下子步骤:
2.1控制上位机软件与工控设备建立连接,使用Wireshark记录过程中的交互流量将其保存为流量文件,文件格式为pcap;
2.2对流量文件进行预处理,首先去除底层流量信息,仅保留应用层的负载数据payload;然后根据流量包的方向和序号构建流量包标识NO,其中方向包括发送和接收,序号表示流量包出现的时间顺序;每个流量文件都被转换成NO:payload形式的负载字典;
2.3对于流量文件中的n个请求流量包和n个响应流量包,根据时序将其整理成n个请求-响应对;
2.4根据请求流量包的特征相似性,对流量文件中的所有请求流量包进行聚类,得到K个类别;
2.5对于每个类别的请求流量包,根据序列号字段的变化特征,标注序列号字段在请求流量包中的位置并将其替换为特殊符号#,请求流量包中剩余字段为静态字段;将由特殊符号和静态字段组成的请求流量包作为该类别对应的请求模板;
2.6针对每个请求模版,从其聚类中随机选择一个请求流量包,根据步骤2.3中的请求-响应对提取其对应的响应流量包,组成请求模板-响应流量包的交互组合;将所有交互组合整合成交互信息库。
4.根据权利要求1所述的一种针对工控协议语义逆向结果的校验方法,其特征在于,所述步骤三中,构建在PC上运行的工控设备模拟器,步骤如下:
3.1监听PC上工控设备对应的端口,捕获来自上位机软件的请求流量包;
3.2将捕获的请求流量包与交互信息库中的请求模板逐一对比以进行匹配;
3.3从交互信息库中提取匹配成功的请求模板对应的响应流量包;
3.4根据请求模板中的特殊符号#,从请求流量包中获取序列号字段值,并以此替代响应流量包中的序列号字段值;
3.5将响应流量包发送给上位机软件。
5.根据权利要求1所述的一种针对工控协议语义逆向结果的校验方法,其特征在于,所述步骤四中,校验语义逆向结果的步骤如下:
4.1启动工控设备模拟器,并控制上位机软件连接工控设备模拟器;
4.2上位机软件自动向工控设备模拟器发送若干请求流量包,并根据工控设备模拟器的响应将工控设备信息显示在可视化界面上。将上位机软件此时显示的目标语义信息和对应的语义字段值记录在结果集合F中;
4.3断开上位机软件与工控设备模拟器之间的连接;
4.4判断相关语义字段的所有值是否校验完毕,若没有,则根据语义模板修改交互信息库中包含语义信息的响应流量包,将语义字段值修改为表示另一语义信息项的值,并转至4.1;否则转至4.5;
4.5比较结果集合F和语义模板,观察语义信息和语义字段值的对应关系是否在两者中一致,判断语义模板的正确性。
6.一种针对工控协议语义逆向结果的校验系统,其特征在于,该系统包括:
格式生成模块:用于整理工控协议语义逆向结果,形成统一格式的语义模板,所述语义模板包括获取语义信息的请求流量包、代表语义信息的语义字段在响应流量包中的偏移、语义字段值和语义信息项的映射关系;
交互信息库构建模块:采集上位机软件与工控设备建立连接的交互流量,提取交互流量的负载数据并进行流量包标识,按时序构建请求流量包-响应流量包的交互组合;对所有请求流量包进行聚类,根据聚类结果生成每个类别对应的请求模板,结合响应流量包构成请求模板-响应流量包的交互组合,整合得到交互信息库;
工控设备模拟器构建模块:用于构建工控设备模拟器,所述工控设备模拟器的功能包括:监听模拟工控设备的对应端口,捕获来自上位机软件的请求流量包;通过交互信息库匹配相应响应流量包,修改序列号字段值后返回给上位机软件;
校验模块,用于校验语义逆向结果,包括:控制上位机软件连接工控设备模拟器,根据语义模板修改语义字段值,并观察上位机软件显示的目标语义信息的变化情况,判断语义模板的正确性。
7.根据权利要求6所述的系统,其特征在于,所述格式生成模块中对语义逆向结果进行整理,包括:
利用上位机软件和工控设备,采集包含目标语义字段的交互流量;
根据语义逆向结果,从交互流量中定位包含目标语义字段的响应流量包,在响应流量包中定位目标语义字段并提取字段值,获取该响应流量包对应的请求流量包;
将目标语义字段在响应流量包中的偏移、该响应流量包对应的请求流量包,以及该字段的值空间与语义空间的映射关系以json格式进行记录。
8.根据权利要求6所述的系统,其特征在于,所述交互信息库构建模块包括:
控制上位机软件与工控设备建立连接,使用Wireshark记录过程中的交互流量将其保存为流量文件,文件格式为pcap;
对流量文件进行预处理,首先去除底层流量信息,仅保留应用层的负载数据payload;然后根据流量包的方向和序号构建流量包标识NO,其中方向包括发送和接收,序号表示流量包出现的时间顺序;每个流量文件都被转换成NO:payload形式的负载字典;
对于流量文件中的n个请求流量包和n个响应流量包,根据时序将其整理成n个请求-响应对;
根据请求流量包的特征相似性,对流量文件中的所有请求流量包进行聚类,对于每个类别的请求流量包,根据序列号字段的变化特征,标注序列号字段在请求流量包中的位置并将其替换为特殊符号#,请求流量包中剩余字段为静态字段;将由特殊符号和静态字段组成的请求流量包作为该类别对应的请求模板;
针对每个请求模版,从其聚类中随机选择一个请求流量包,根据请求-响应对提取其对应的响应流量包,组成请求模板-响应流量包的交互组合;将所有交互组合整合成交互信息库。
9.根据权利要求6所述的系统,其特征在于,所述工控设备模拟器构建模块包括:
监听PC上工控设备对应的端口,捕获来自上位机软件的请求流量包;
将捕获的请求流量包与交互信息库中的请求模板逐一对比以进行匹配;
从交互信息库中提取匹配成功的请求模板对应的响应流量包;
根据请求模板中的特殊符号#,从请求流量包中获取序列号字段值,并以此替代响应流量包中的序列号字段值;
将响应流量包发送给上位机软件。
10.根据权利要求6所述的系统,其特征在于,所述校验模块包括:
启动工控设备模拟器,并控制上位机软件连接工控设备模拟器;
上位机软件自动向工控设备模拟器发送若干请求流量包,并根据工控设备模拟器的响应将工控设备信息显示在可视化界面上。将上位机软件此时显示的目标语义信息和对应的语义字段值记录在结果集合F中;
断开上位机软件与工控设备模拟器之间的连接;
判断相关语义字段的所有值是否校验完毕,若没有,则根据语义模板修改交互信息库中包含语义信息的响应流量包,将语义字段值修改为表示另一语义信息项的值,并重复上述步骤;否则,比较结果集合F和语义模板,观察语义信息和语义字段值的对应关系是否在两者中一致,判断语义模板的正确性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311038627.1A CN117041362B (zh) | 2023-08-17 | 2023-08-17 | 一种针对工控协议语义逆向结果的校验方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311038627.1A CN117041362B (zh) | 2023-08-17 | 2023-08-17 | 一种针对工控协议语义逆向结果的校验方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117041362A true CN117041362A (zh) | 2023-11-10 |
CN117041362B CN117041362B (zh) | 2024-04-23 |
Family
ID=88626080
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311038627.1A Active CN117041362B (zh) | 2023-08-17 | 2023-08-17 | 一种针对工控协议语义逆向结果的校验方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117041362B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114285599A (zh) * | 2021-11-23 | 2022-04-05 | 中国人民解放军战略支援部队信息工程大学 | 基于控制器深度内存仿真的工控蜜罐构建方法及工控蜜罐 |
US20220206473A1 (en) * | 2020-12-31 | 2022-06-30 | Tianjin University | Method for identifying and parsing industrial control protocol based on industrial gateway |
CN115065623A (zh) * | 2022-08-15 | 2022-09-16 | 国家计算机网络与信息安全管理中心江苏分中心 | 一种主被动相结合的私有工控协议逆向分析方法 |
CN116094971A (zh) * | 2022-12-01 | 2023-05-09 | 北京天融信网络安全技术有限公司 | 一种工控协议识别方法、装置、电子设备及存储介质 |
-
2023
- 2023-08-17 CN CN202311038627.1A patent/CN117041362B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220206473A1 (en) * | 2020-12-31 | 2022-06-30 | Tianjin University | Method for identifying and parsing industrial control protocol based on industrial gateway |
CN114285599A (zh) * | 2021-11-23 | 2022-04-05 | 中国人民解放军战略支援部队信息工程大学 | 基于控制器深度内存仿真的工控蜜罐构建方法及工控蜜罐 |
CN115065623A (zh) * | 2022-08-15 | 2022-09-16 | 国家计算机网络与信息安全管理中心江苏分中心 | 一种主被动相结合的私有工控协议逆向分析方法 |
CN116094971A (zh) * | 2022-12-01 | 2023-05-09 | 北京天融信网络安全技术有限公司 | 一种工控协议识别方法、装置、电子设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
WEIFENG SUN等: "MaskFuzzer: A MaskGAN-based Industrial Control Protocol Fuzz Testing Framework", 《2022 IEEE INTERNATIONAL CONFERENCE ON SMART INTERNET OF THINGS (SMARTIOT)》, 21 August 2022 (2022-08-21) * |
王法仁: "典型工控协议深度包解析平台与方法研究", 《中国优秀硕士学位论文全文数据库》, no. 8, 15 August 2019 (2019-08-15) * |
Also Published As
Publication number | Publication date |
---|---|
CN117041362B (zh) | 2024-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111262722B (zh) | 一种用于工业控制系统网络的安全监测方法 | |
US20180288084A1 (en) | Method and device for automatically establishing intrusion detection model based on industrial control network | |
CN107360145B (zh) | 一种多节点蜜罐系统及其数据分析方法 | |
CN111277578A (zh) | 加密流量分析特征提取方法、系统、存储介质、安全设备 | |
CN111385297A (zh) | 无线设备指纹识别方法、系统、设备及可读存储介质 | |
CN110798440B (zh) | 异常用户检测方法、装置、系统及计算机存储介质 | |
CN112688946B (zh) | 异常检测特征的构造方法、模块、存储介质、设备及系统 | |
CN113706100B (zh) | 配电网物联终端设备实时探测识别方法与系统 | |
CN114553591B (zh) | 随机森林模型的训练方法、异常流量检测方法及装置 | |
CN115643035A (zh) | 基于多源日志的网络安全态势评估方法 | |
CN117411703A (zh) | 一种面向Modbus协议的工业控制网络异常流量检测方法 | |
CN114218998A (zh) | 一种基于隐马尔可夫模型的电力系统异常行为分析方法 | |
CN110365625B (zh) | 物联网安全检测方法、装置及存储介质 | |
CN117041362B (zh) | 一种针对工控协议语义逆向结果的校验方法及系统 | |
CN112153081A (zh) | 一种工业网络异常状态的检测方法 | |
CN111913944A (zh) | 一种带有警报功能的高安全性大数据分析方法 | |
CN114553473A (zh) | 一种基于登录ip和登陆时间的异常登陆行为检测系统和方法 | |
CN113890835A (zh) | Dpi应用测试报文的处理方法及装置 | |
CN107395640B (zh) | 一种基于划分和特征变化的入侵检测系统及方法 | |
CN118413405B (zh) | 基于工业互联网的工控审计方法及装置 | |
CN117633665B (zh) | 一种网络数据监控方法及系统 | |
CN114500015B (zh) | 一种基于工业网络的态势感知系统及其控制方法 | |
Nandakumar et al. | A Novel Approach to User Agent String Parsing for Vulnerability Analysis Using Multi-Headed Attention | |
KR102470364B1 (ko) | 보안 이벤트 학습데이터 생성 방법 및 보안 이벤트 학습데이터 생성 장치 | |
CN113055396B (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 |