CN114978592B - 基于优化的多元组分包机制Modbus漏洞挖掘方法 - Google Patents

基于优化的多元组分包机制Modbus漏洞挖掘方法 Download PDF

Info

Publication number
CN114978592B
CN114978592B CN202210396804.2A CN202210396804A CN114978592B CN 114978592 B CN114978592 B CN 114978592B CN 202210396804 A CN202210396804 A CN 202210396804A CN 114978592 B CN114978592 B CN 114978592B
Authority
CN
China
Prior art keywords
data
communication
test case
detected
module
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
CN202210396804.2A
Other languages
English (en)
Other versions
CN114978592A (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.)
Electric Power Research Institute of Guangxi Power Grid Co Ltd
Original Assignee
Electric Power Research Institute of Guangxi Power Grid Co Ltd
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 Electric Power Research Institute of Guangxi Power Grid Co Ltd filed Critical Electric Power Research Institute of Guangxi Power Grid Co Ltd
Priority to CN202210396804.2A priority Critical patent/CN114978592B/zh
Publication of CN114978592A publication Critical patent/CN114978592A/zh
Application granted granted Critical
Publication of CN114978592B publication Critical patent/CN114978592B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/1433Vulnerability analysis
    • 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/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • 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/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • 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 Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于优化的多元组分包机制Modbus漏洞挖掘方法,涉及工业控制系统的安全技术领域,本发明与待检测设备进行通信连接,对通信网络进行初始化;根据通信网络进行基于应用层的协议识别解析;根据协议识别解析的结果,在标准CVE漏洞库基础上加载对应协议的基线标尺数据包,将基线标尺数据包以及正常数据报文作为测试用例库;利用测试用例库生成测试用例,通过在测试过程中定位触发漏洞的字节位置,在此基础上不断优化测试用例生成策略,从而使测试用例具有更好的漏洞挖掘效果。既改善了测试用例生成方法缺乏指导性,针对性、测试效率低的问题,也实现了对漏洞的具体字节级别的问题定位。

Description

基于优化的多元组分包机制Modbus漏洞挖掘方法
技术领域
本发明属于工业控制系统的安全技术领域,尤其涉及一种基于优化的多元组分包机制Modbus漏洞挖掘方法。
背景技术
随着两化融合时代的到来,工控系统由原来的相对独立而封闭环境逐渐接入互联网,在提高系统工作效率的同时,也带来了很多安全风险,例如开放性的协议应用,导致工业设备更容易遭受来自互联网的攻击,由于工业控制系统漏洞问题可能引发的严重后果,使得漏洞挖掘成为工业控制系统信息安全研究的重点工作之一。工业控制系统漏洞通过综合应用各种技术和工具挖掘工业控制系统潜在的漏洞,明确漏洞形成的机理和相应的攻击方法,可以为漏洞的弥补提供有效的信息,进而保障工业控制系统的安全。
工控系统漏洞挖掘技术可以借鉴IT中的漏洞挖掘技术,如手工测试技术、静态分析技术、运行时分析技术、二进制比较技术、Fuzz技术等。Fuzz技术作为一种动态分析的漏洞发掘技术,与手工代码审计、静态分析、模型检测等测试方法相比,其具备思想简单,容易理解、从发现漏洞到漏洞重现容易、不存在误报的优点。Fuzz是一种有效的漏洞挖掘技术,可用于检测多种安全漏洞,包括缓冲区溢出漏洞、整型溢出漏洞、格式化字符串和特殊字符漏洞、SQL注入、跨站脚本、信息泄露等。目前,在工控安全领域,Fuzz技术已被一些第三方安全监测机构采纳。因此,该项目通过使用Fuzz技术实现工控协议漏洞分析可以实现对工控系统的漏洞挖掘。
因此,加强对工控协议漏洞挖掘平台的研究非常重要和紧迫。利用模糊测试技术(Fuzzing)进行漏洞挖掘,是保障系统安全的最常用方法和手段。该方法通过向目标系统发送大量的非法数据并监视系统运行的实时情况反馈来发现漏洞。测试一般由在符合通讯协议规范标准的情况向,随机、超出预期的杂乱数据报文构成,将畸变数据包发送到被检测设备,以便发现一些常规逻辑难以发现的安全漏洞。
然后模糊测试方法用在工业协议中存在一定的局限性。测试用例的生成策略的优劣是决定漏洞挖掘能力及效率至关重要的因素,在传统网络中利用代码覆盖率反应测试效果,以便调整测试用例生成策略,提高测试用例有效性。但是相较于工控设备而言有以下缺点:
(1)、工控协议种类繁琐,各种协议根据标准要求大小范围及精度差异较大。难以归纳出行之有效的普遍优化测试用例。
(2)、功能设备系统封闭,无法计算代码覆盖率,难以判断测试用例在输入目标对象后是否产生了良好的反馈效果,无法在测试用例生产策略。
因此,需要一种基于优化的多元组分包机制Modbus漏洞挖掘方法。
发明内容
本发明的目的在于提供一种基于优化的多元组分包机制Modbus漏洞挖掘方法,从而克服了现有漏洞挖掘测试效率低的缺点。
为实现上述目的,本发明提供了一种基于优化的多元组分包机制Modbus漏洞挖掘方法,包括以下步骤:
与待检测设备进行通信连接,对通信网络进行初始化;
根据所述通信网络进行基于应用层的协议识别解析;
根据协议识别解析的结果,在标准CVE漏洞库基础上加载对应协议的基线标尺数据包,将所述基线标尺数据包以及正常数据报文作为测试用例库;
利用所述测试用例库生成测试用例;
向待检测设备的IP地址发送所述测试用例,并接收待检测设备逐条遍历测试用例中的各种数据帧后发送响应报文;
获取通信过程的报文数据,并对所有收发的报文进行匹配分析是否存在异常,当没有检测到异常存在时,则返回重新发送新的测试用例;当检测到异常存在时,将对应的响应状态判断为通讯异常,记录全部通讯报文;同时对待检测设备发送建立心跳包机制,时刻监测待检测设备的通讯状态;
基于解析的协议解析的细粒度进行应用层解释识别通讯异常状态的报文数据,进行多元组拆包和组包,生成多元组畸变数据帧包,即产生高效测试用例,将所述高效测试用例存入测试用例库中,为下一次测试提供新的测试用例。
优选地,还包括:选择不同的待检测设备,重复多元组分包机制Modbus漏洞挖掘方法,实现对不同的待检测设备进行漏洞挖掘。
优选地,与待检测设备进行通信连接,对通信网络进行初始化,具体包括:
启动数据通讯模块,使用Socket()方法创建Socket对象,建立数据传输通道;
获取目标IP地址、设定TCP通讯端口,建立对象,实例化Socket对象;
利用Socket对象的异步方法,与待检测设备建立TCP连接;
使用Socket对象的通信方法发送测试用例,使用通信接受方法接受响应数据;
通讯结束后,使用关闭通信,断开发包软件功能模块与待检测设备对象建立的TCP连接,释放占用的系统资源。
优选地,所述异常包括:接收不到待检测设备应答通讯或响应报文数据、接收到的响应报文数据与测试用例的数据不相同。
优选地,接收不到待检测设备应答通讯或响应报文数据时,通讯异常时,记录本条测试用例的数据帧,标记导致异常的测试用例以及与之关联的本次完整通讯上下文数据帧,通过设备重置或重启恢复通讯后,再次下一轮新的测试循环。
优选地,接收到的响应报文数据与测试用例的数据不相同时,则该通讯存在漏洞,并将对应的测试用数据帧进行标记,其中,标记还包括与被标记的导致异常通讯的数据帧上下关联的相关数据帧。
基于优化的多元组分包机制Modbus漏洞挖掘系统,所述基于优化的多元组分包机制Modbus漏洞挖掘系统应用上述的基于优化的多元组分包机制Modbus漏洞挖掘方法,其特征在于,包括:
数据通讯模块,所述数据通讯模块用于与待检测设备进行网络通讯,包括与待检测设备间建立通信网络连接、捕获网络流量,对通信网络进行初始化,向待检测设备发送测试用例与心跳包,接收响应的报文,提取与细粒度解析ModbusTCP应用层数据包等功能;
用例生成模块,所述用例生成模块用于根据数据通讯模块解析的协议生成模糊测试的测试用例,利用流程中产生的通讯异常标记模块反馈的结果,以一种多元组畸变数据帧的优化策略基础上生成测试用例,同时发送到数据通讯模块;
异常监测模块,所述监测模块用于通过数据通讯模块获取发送报文与响应报文,判断是否存在异常,即判断是否出现漏洞;
漏洞定位模块,所述漏洞定位模块用于根据初次基线标尺数据包,结合异常检测模块监测的异常状态的数据,经过多元组畸变数据帧优化生成高效测试用例,定位并记录触发漏洞;以及
发包软件功能模块,所述发包软件功能模块用于整个基于优化的多元组分包机制Modbus漏洞挖掘方法中的数据包发送以及接收。
优选地,所述异常检测模块包括:
日志记录模块,用于记录对全过程流量进行记录,包括通讯异常的全部通讯报文;
心跳包收发模块,用于在判断异常的同时,对待检测设备发送建立心跳包机制,时刻监测待检测设备的通讯状态;
数据拆包组包模块,用于根据数据通讯模块获取的发送报文与响应报文,判断是否存在异常,即判断是否出现漏洞;
工控协议驱动库,用于识别测试仪器与被检测设备之间的工控通信规约;以及
数据库文件模块,用于与数据通讯模块进行通讯。
优选地,数据拆包组包模块用于根据数据通讯模块获取的发送报文与响应报文,判断是否存在异常,异常包括:接收不到待检测设备应答通讯或响应报文数据、接收到的响应报文数据与测试用例的数据不相同。
与现有的技术相比,本发明具有如下有益效果:
本发明所提供的基于优化的多元组分包机制Modbus漏洞挖掘方法,与待检测设备进行通信连接,对通信网络进行初始化;根据通信网络进行基于应用层的协议识别解析;根据协议识别解析的结果,在标准CVE漏洞库基础上加载对应协议的基线标尺数据包,将基线标尺数据包以及正常数据报文作为测试用例库;利用所述测试用例库生成测试用例;向待检测设备的IP地址发送测试用例,并接收待检测设备逐条遍历测试用例中的各种数据帧后发送响应报文;获取通信过程的报文数据,并对所有收发的报文进行匹配分析是否存在异常,当没有检测到异常存在时,则返回重新发送新的测试用例;当检测到异常存在时,将对应的响应状态判断为通讯异常,记录全部通讯报文;同时对待检测设备发送建立心跳包机制,时刻监测待检测设备的通讯状态;基于解析的协议解析的细粒度进行应用层解释识别通讯异常状态的报文数据,进行多元组拆包和组包,生成多元组畸变数据帧包,即产生高效测试用例,将高效测试用例存入测试用例库中,为下一次测试提供新的测试用例。
即本发明通过在测试过程中定位触发漏洞的字节位置,在此基础上不断优化测试用例生成策略,从而使测试用例具有更好的漏洞挖掘效果。既改善了测试用例生成方法缺乏指导性,针对性、测试效率低的问题,也实现了对漏洞的具体字节级别的问题定位。
而且本发明经过实际测试结果,验证了此方法具有更高效的测试效率与更好的漏洞挖掘效果。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一个实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的基于优化的多元组分包机制Modbus漏洞挖掘方法的流程图;
图2是本发明其中一个实施例的基于优化的多元组分包机制Modbus漏洞挖掘系统的结构示意图;
图3是本发明其中一个实施例的基于优化的多元组分包机制Modbus漏洞挖掘系统的结构示意图。
具体实施方式
下面结合本发明实施例中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明所提供的其中一个实施例基于优化的多元组分包机制Modbus漏洞挖掘方法,包括以下步骤:
S1、与待检测设备进行通信连接,对通信网络进行初始化,具体包括:配置待检测设备的基本通讯参数,设定对应的协议规约;其中,待检测设备包括:工控机、路由器、交换机以及主机等;
S2、根据所述通信网络进行基于应用层的协议识别解析,协议识别解析包括:识别相应的应用层协议,有关的特殊标志位,寄存器类型组合表示方式,如寄存器开关量的读写,寄存器模拟量的读写等;其中,应用层协议包括:HTTP、DNS3、profitnet等协议;
S3、根据协议识别解析的结果,在标准CVE漏洞库基础上加载对应协议的基线标尺数据包,将所述基线标尺数据包(可建立通讯连接的报文)以及正常数据报文作为测试用例库;
即在标准CVE漏洞库基础上加载步骤S2协议识别解析出协议的基线标尺数据包;
S4、利用所述测试用例库生成测试用例;
S5、向待检测设备的IP地址发送所述测试用例,待检测设备逐条遍历测试用例中的各种数据帧后发送响应报文,并接收响应报文;
S6、获取通信过程的报文数据,并对所有收发的报文进行匹配分析是否存在异常,当没有检测到异常存在时,则返回步骤S4,重新发送新的测试用例;当检测到异常存在时,将对应的响应状态判断为通讯异常,记录全部通讯报文;同时对待检测设备发送建立心跳包机制,时刻监测待检测设备的通讯状态;
通过心跳包机制,时刻监测待检测设备的通讯状态,反馈给测试用例生成模块生成新的测试用例;
通信过程的报文数据包括:发送的测试用例以及接收到的待检测设备逐条遍历测试用例中的各种数据帧后发送的响应报文;
S7、基于步骤S2解析的协议解析的细粒度进行应用层解释识别通讯异常状态的报文数据(即数据包),从而进行多元组拆包和组包,生成多元组畸变数据帧包,即产生高效测试用例,将所述高效测试用例存入测试用例库中,为下一次测试提供新的测试用例;
其中,所述应用层解释识别包括:根据协议的功能码、数据的读操作与写操作、基于数据地址段、基于数据高低限边界值、数据标识方式等。
其中一个实施例,还包括步骤S8,选择不同的待检测设备,重复步骤S1-S7,实现对不同的待检测设备进行漏洞挖掘。
其中一个实施例,数据通讯模块是整个测试的基础,负责连通测试用例生成模块、异常监测模块、漏洞定位模块联调模块,步骤S1中,使用Socket技术与待检测设备建立通信网络连接,包括:创建Soket,建立连接、发送数据、接收数据以及关闭连接等步骤,具体包括以下步骤:
S11、启动数据通讯模块,使用Socket()方法创建Socket对象,建立数据传输通道;
S12、获取目标IP地址、设定TCP通讯端口,建立对象,实例化Socket对象;
S13、利用Socket对象的异步方法,与待检测设备建立TCP连接;
S14、使用Socket对象的通信方法发送测试用例,使用通信接受方法接受响应数据;
S15、通讯结束后,使用关闭通信,断开本发明方法中的系统发包软件功能模块与待检测设备对象建立的TCP连接,释放占用的系统资源。
其中一个实施例,步骤S3中,用例生成模块根据协议识别解析的结果,将CVE漏洞库的已知漏洞作为基础,通过用例生成模块生成基线标尺数据包;具体包括:
轮询CVE标准测试库的公开数据,系统通过规范的基于Modbus协议要求各种类别的通讯报文,例如基于设备配置的多元组集通用例生成模块生成基线标尺数据包。
其中一个实施例,步骤S6中,所述异常包括:接收不到待检测设备应答通讯或响应报文数据、接收到的响应报文数据与测试用例的数据不相同。
其中,当本检测方法系统发包软件模块收不到待检测设备应答通讯时,通讯异常时,记录本条测试用例的数据帧,标记导致异常的测试用例以及与之关联的本次完整通讯上下文数据帧,通过设备重置或重启恢复通讯后,再次下一轮新的测试循环。从而产生更加高效的测试用例,提高整体模糊测试的效率。
其中,当发出去的测试用例与接收到到响应报文数据不一致时,则该通讯存在漏洞,并将对应的测试用数据帧进行标记,其中,标记还包括与被标记的导致异常通讯的数据帧上下关联的相关数据帧。
其中一个实施例,步骤S7中,基于步骤S2解析的协议解析的细粒度识别应用层,进行多元组数字帧拆包,生成多元组畸变数据帧,产生新的高效测试用例,具体包括以下步骤:
步骤S71、多元组数据帧进行畸变,其中,多元组数据帧包括异常的测试用例的数据帧以及与之关联的本次完整通讯上下文数据帧;
步骤72、获取多元组畸变数据帧。如:设备地址、IP地址、设备通讯端口的参数波特率、停止位、奇偶检验)等;
步骤73、根读数字量元组畸变数据帧。基于数字量多元组如:开关状态读写、写操作的执行频率、两条写操作间的轮询时间等。
步骤74、写模拟量元组畸变数据帧。基于模拟量多元组如:数据地址允许读操作的寄存器地址范围、单个寄存器写操作的数值高低限、两次数据写操作值的斜率比值、两次数据写值的频率等。
步骤75、收集所有导致异常通讯的数据帧及本轮次完整通讯的相关数据帧的pacp数据包段;
步骤76、重新汇总步骤S72-S75得到的数据以及整理Modbus流量至步骤S3协议解析,根据国标协议归纳解析与分类异常数据包属于哪种功能码及寄存器类别,进行标记,从而找出异常类型,实现漏洞挖掘。
针对ICS的工业协议进行漏洞挖掘挖掘,构建各类合规和不合规工业通讯协议的畸形数据,输至被测设备和系统进行漏洞挖掘,实现对工业控制系统设备全性和健壮性的自动化测试,挖掘工业控制系统设备本身的漏洞。
其中一个流程实施例,在基于优化的多元组分包机制Modbus漏洞挖掘方法中,对全过程流量进行记录。
其中一个实施例,如图2所示,基于优化的多元组分包机制Modbus漏洞挖掘系统,应用上述的基于优化的多元组分包机制Modbus漏洞挖掘方法,包括:用例生成模块、漏洞定位模块、数据通讯模块、发包软件功能模块以及异常监测模块,其中,
数据通讯模块用于与待检测设备进行网络通讯,包括与待检测设备间建立通信网络连接、捕获网络流量,对通信网络进行初始化,向待检测设备发送测试用例与心跳包,接收响应的报文,提取与细粒度解析ModbusTCP应用层数据包等功能;
用例生成模块用于根据数据通讯模块解析的协议生成模糊测试的测试用例,利用流程中产生的通讯异常标记模块反馈的结果,以一种多元组畸变数据帧的优化策略基础上生成测试用例,同时发送到数据通讯模块;
异常监测模块用于通过数据通讯模块获取发送报文与响应报文,判断是否存在异常,即判断是否出现漏洞;
漏洞定位模块用于根据初次基线标尺数据包,结合异常检测模块监测的异常状态的数据,经过多元组畸变数据帧优化生成高效测试用例,定位并记录触发漏洞;
发包软件功能模块用于整个基于优化的多元组分包机制Modbus漏洞挖掘方法中的数据包发送以及接收。
上述的基于优化的多元组分包机制Modbus漏洞挖掘系统的工作原理为:通过数据通讯模块与待检测设备建立通信网络通讯,对通信网络进行初始化,并提取与细粒度解析ModbusTCP应用层的数据包,获取解析的协议,并发送至用例生成模块,用例生成模块根据数据通讯模块解析的协议生成模糊测试的测试用例,将测试用例发送至数据通信模块,通过数据通信模块将测试用例发送至待检测设备,待检测设备逐条遍历测试用例中的各种数据帧后发送响应报文至数据通讯模块,数据通讯模块将接收的响应报文传送至异常监测模块,异常监测模块通过数据通讯模块获取发送报文与响应报文,判断是否存在异常,即判断是否出现漏洞,同时通过数据通讯模块向待检测设备发送心跳包,保持与待检测设备的通讯;当检测出现漏洞后,漏洞定位模块用于根据初次基线标尺数据包,结合异常检测模块监测的异常状态的数据,经过多元组畸变数据帧优化生成高效测试用例,定位并记录触发漏洞,并将高效测试用例发送存入测试用例库中,为下一次测试提供新的测试用例。而且发包软件功能模块则负责整个基于优化的多元组分包机制Modbus漏洞挖掘方法中的数据包发送以及接收。
其中一个实施例,其中,待检测设备包括:工控机、路由器、交换机以及主机等。
其中一个实施例,数据通讯模块对通信网络进行初始化具体包括:配置待检测设备的基本通讯参数,设定对应的协议规约;
提取与细粒度解析ModbusTCP应用层数据包具体包括:根据所述通信网络进行基于应用层的协议识别解析,协议识别解析包括:识别相应的应用层协议,有关的特殊标志位,寄存器类型组合表示方式,如寄存器开关量的读写,寄存器模拟量的读写等;其中,应用层协议包括:TCP协议。
具体的,数据通讯模块是整个测试的基础,负责连通测试用例生成模块、异常监测模块、漏洞定位模块联调模块,步骤S1中,使用Socket技术与待检测设备建立通信网络连接,包括:创建Soket,建立连接、发送数据、接收数据以及关闭连接等步骤,具体包括以下步骤:
S11、启动数据通讯模块,使用Socket()方法创建Socket对象,建立数据传输通道;
S12、获取目标IP地址、设定TCP通讯端口,建立对象,实例化Socket对象;
S13、利用Socket对象的异步方法,与待检测设备建立TCP连接;
S14、使用Socket对象的通信方法发送测试用例,使用通信接受方法接受响应数据;
S15、通讯结束后,使用关闭通信,断开本发明方法中的系统发包软件功能模块与待检测设备对象建立的TCP连接,释放占用的系统资源。
其中一个实施例,用例生成模块根据数据通讯模块解析的协议生成模糊测试的测试用例,具体包括:根据协议识别解析的结果,在标准CVE漏洞库基础上加载对应协议的基线标尺数据包,将所述基线标尺数据包(可建立通讯连接的报文)以及正常数据报文作为测试用例库;
即在标准CVE漏洞库基础上加载数据通讯模块中协议识别解析出协议的基线标尺数据包。
其中一个实施例,用例生成模块利用流程中产生的通讯异常标记模块反馈的结果,以一种多元组畸变数据帧的优化策略基础上生成测试用例,具体包括:用例生成模块生成被测仪器的测试用例,以及根据工控的协议特征组装各个测试用例。
轮询CVE标准测试库的公开数据,系统通过规范的基于Modbus协议要求各种类别的通讯报文,例如基于设备配置的多元组集通用例生成模块生成基线标尺数据包。
其中一个实施例,如图3所示,所述异常检测模块包括:日志记录模块、心跳包收发模块、数据拆包组包模块、工控协议驱动库以及数据库文件模块;
日志记录模块用于记录对全过程流量进行记录,包括通讯异常的全部通讯报文;
心跳包收发模块用于在判断异常的同时,对待检测设备发送建立心跳包机制,时刻监测待检测设备的通讯状态;
数据拆包组包模块用于根据数据通讯模块获取的发送报文与响应报文,判断是否存在异常,即判断是否出现漏洞;
工控协议驱动库用于识别测试仪器与被检测设备之间的工控通信规约。;
数据库文件模块用于与数据通讯模块进行通讯。
具体的,数据拆包组包模块用于根据数据通讯模块获取的发送报文与响应报文,判断是否存在异常,异常包括:接收不到待检测设备应答通讯或响应报文数据、接收到的响应报文数据与测试用例的数据不相同。
其中,当本检测方法系统发包软件模块收不到待检测设备应答通讯时,通讯异常时,记录本条测试用例的数据帧,标记导致异常的测试用例以及与之关联的本次完整通讯上下文数据帧,通过设备重置或重启恢复通讯后,再次下一轮新的测试循环。从而产生更加高效的测试用例,提高整体模糊测试的效率。
其中,当发出去的测试用例与接收到到响应报文数据不一致时,则该通讯存在漏洞,并将对应的测试用数据帧进行标记,其中,标记还包括与被标记的导致异常通讯的数据帧上下关联的相关数据帧。
其中一个实施例,漏洞定位模块用于根据初次基线标尺数据包,结合异常检测模块监测的异常状态的数据,经过多元组畸变数据帧优化生成高效测试用例,定位并记录触发漏洞,具体包括:
基于步骤S2解析的协议解析的细粒度识别应用层,进行多元组数字帧拆包,生成多元组畸变数据帧,产生新的更高效的测试用例,具体包括以下步骤:
步骤S71、多元组数据帧进行畸变,其中,多元组数据帧包括异常的测试用例的数据帧以及与之关联的本次完整通讯上下文数据帧;
步骤72、获取多元组畸变数据帧。如:设备地址、IP地址、设备通讯端口的参数波特率、停止位、奇偶检验)等;
步骤73、读数字量元组畸变数据帧。基于数字量多元组如:开关状态读写、写操作的执行频率、两条写操作间的轮询时间等。
步骤74、写模拟量元组畸变数据帧。基于模拟量多元组如:数据地址允许读操作的寄存器地址范围、单个寄存器写操作的数值高低限、两次数据写操作值的斜率比值、两次数据写值的频率等。
步骤75、收集所有导致异常通讯的数据帧及本轮次完整通讯的相关数据帧的pacp数据包段;
步骤76、重新汇总步骤S72-S75得到的数据以及整理Modbus流量至步骤S3协议解析,根据国标协议归纳解析与分类异常数据包属于哪种功能码及寄存器类别,进行标记,从而找出异常类型,实现漏洞挖掘。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述移动终端的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述移动终端中模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
以上所揭露的仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或变型,都应涵盖在本发明的保护范围之内。

Claims (9)

1.基于优化的多元组分包机制Modbus漏洞挖掘方法,其特征在于,包括以下步骤:
与待检测设备进行通信连接,对通信网络进行初始化;
根据所述通信网络进行基于应用层的协议识别解析;
根据协议识别解析的结果,在标准CVE漏洞库基础上加载对应协议的基线标尺数据包,将所述基线标尺数据包以及正常数据报文作为测试用例库;
利用所述测试用例库生成测试用例;
向待检测设备的IP地址发送所述测试用例,并接收待检测设备逐条遍历测试用例中的各种数据帧后发送响应报文;
获取通信过程的报文数据,并对所有收发的报文进行匹配分析是否存在异常,当没有检测到异常存在时,则返回重新发送新的测试用例;当检测到异常存在时,将对应的响应状态判断为通讯异常,记录全部通讯报文;同时对待检测设备发送建立心跳包机制,时刻监测待检测设备的通讯状态;
基于解析的协议解析的细粒度进行应用层解释识别通讯异常状态的报文数据,进行多元组拆包和组包,生成多元组畸变数据帧包,即产生高效测试用例,将所述高效测试用例存入测试用例库中,为下一次测试提供新的测试用例;
所述基线标尺数据包为建立通讯连接的报文,即在标准CVE漏洞库基础上加载数据通讯模块中协议识别解析出协议的基线标尺数据包;
基于解析的协议解析的细粒度进行应用层解释识别通讯异常状态的报文数据,进行多元组拆包和组包,生成多元组畸变数据帧包,具体包括以下步骤:
步骤71、多元组数据帧进行畸变,其中,多元组数据帧包括异常的测试用例的数据帧以及与之关联的本次完整通讯上下文数据帧;
步骤72、获取多元组畸变数据帧,包括:设备地址、IP地址、设备通讯端口的参数波特率、停止位及奇偶检验;
步骤73、根读数字量元组畸变数据帧,数字量多元组畸变数据帧包括:开关状态读写、写操作的执行频率及两条写操作间的轮询时间;
步骤74、写模拟量元组畸变数据帧,包括:数据地址允许读操作的寄存器地址范围、单个寄存器写操作的数值高低限、两次数据写操作值的斜率比值以及两次数据写值的频率;
步骤75、收集所有导致异常通讯的数据帧及本轮次完整通讯的相关数据帧的pacp数据包段;
步骤76、重新汇总步骤72-75得到的数据以及整理Modbus流量至协议识别解析,根据国标协议归纳解析与分类异常数据包属于哪种功能码及寄存器类别,进行标记,从而找出异常类型,实现漏洞挖掘。
2.根据权利要求1所述的基于优化的多元组分包机制Modbus漏洞挖掘方法,其特征在于,还包括:选择不同的待检测设备,重复多元组分包机制Modbus漏洞挖掘方法,实现对不同的待检测设备进行漏洞挖掘。
3.根据权利要求1所述的基于优化的多元组分包机制Modbus漏洞挖掘方法,其特征在于,与待检测设备进行通信连接,对通信网络进行初始化,具体包括:
启动数据通讯模块,使用Socket()方法创建Socket对象,建立数据传输通道;
获取目标IP地址、设定TCP通讯端口,建立对象,实例化Socket对象;
利用Socket对象的异步方法,与待检测设备建立TCP连接;
使用Socket对象的通信方法发送测试用例,使用通信接受方法接受响应数据;
通讯结束后,使用关闭通信,断开发包软件功能模块与待检测设备对象建立的TCP连接,释放占用的系统资源。
4.根据权利要求1所述的基于优化的多元组分包机制Modbus漏洞挖掘方法,其特征在于,所述异常包括:接收不到待检测设备应答通讯或响应报文数据、接收到的响应报文数据与测试用例的数据不相同。
5.根据权利要求4所述的基于优化的多元组分包机制Modbus漏洞挖掘方法,其特征在于,接收不到待检测设备应答通讯或响应报文数据时,通讯异常时,记录本条测试用例的数据帧,标记导致异常的测试用例以及与之关联的本次完整通讯上下文数据帧,通过设备重置或重启恢复通讯后,再次下一轮新的测试循环。
6.根据权利要求4所述的基于优化的多元组分包机制Modbus漏洞挖掘方法,其特征在于,接收到的响应报文数据与测试用例的数据不相同时,则该通讯存在漏洞,并将对应的测试用数据帧进行标记,其中,标记还包括与被标记的导致异常通讯的数据帧上下关联的相关数据帧。
7.基于优化的多元组分包机制Modbus漏洞挖掘系统,所述基于优化的多元组分包机制Modbus漏洞挖掘系统应用权利要求1-6任一项所述的基于优化的多元组分包机制Modbus漏洞挖掘方法,其特征在于,包括:
数据通讯模块,所述数据通讯模块用于与待检测设备进行网络通讯,包括与待检测设备间建立通信网络连接、捕获网络流量,对通信网络进行初始化,向待检测设备发送测试用例与心跳包,接收响应的报文,提取与细粒度解析ModbusTCP应用层数据包等功能;
用例生成模块,所述用例生成模块用于根据数据通讯模块解析的协议生成模糊测试的测试用例,利用流程中产生的通讯异常标记模块反馈的结果,以一种多元组畸变数据帧的优化策略基础上生成测试用例,同时发送到数据通讯模块;
异常监测模块,所述监测模块用于通过数据通讯模块获取发送报文与响应报文,判断是否存在异常,即判断是否出现漏洞;
漏洞定位模块,所述漏洞定位模块用于根据初次基线标尺数据包,结合异常检测模块监测的异常状态的数据,经过多元组畸变数据帧优化生成高效测试用例,定位并记录触发漏洞;以及
发包软件功能模块,所述发包软件功能模块用于整个基于优化的多元组分包机制Modbus漏洞挖掘方法中的数据包发送以及接收。
8.根据权利要求7所述的基于优化的多元组分包机制Modbus漏洞挖掘系统,其特征在于,所述异常检测模块包括:
日志记录模块,用于记录对全过程流量进行记录,包括通讯异常的全部通讯报文;
心跳包收发模块,用于在判断异常的同时,对待检测设备发送建立心跳包机制,时刻监测待检测设备的通讯状态;
数据拆包组包模块,用于根据数据通讯模块获取的发送报文与响应报文,判断是否存在异常,即判断是否出现漏洞;
工控协议驱动库,用于识别测试仪器与被检测设备之间的工控通信规约;以及
数据库文件模块,用于与数据通讯模块进行通讯。
9.根据权利要求8所述的基于优化的多元组分包机制Modbus漏洞挖掘系统,其特征在于,数据拆包组包模块用于根据数据通讯模块获取的发送报文与响应报文,判断是否存在异常,异常包括:接收不到待检测设备应答通讯或响应报文数据、接收到的响应报文数据与测试用例的数据不相同。
CN202210396804.2A 2022-04-15 2022-04-15 基于优化的多元组分包机制Modbus漏洞挖掘方法 Active CN114978592B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210396804.2A CN114978592B (zh) 2022-04-15 2022-04-15 基于优化的多元组分包机制Modbus漏洞挖掘方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210396804.2A CN114978592B (zh) 2022-04-15 2022-04-15 基于优化的多元组分包机制Modbus漏洞挖掘方法

Publications (2)

Publication Number Publication Date
CN114978592A CN114978592A (zh) 2022-08-30
CN114978592B true CN114978592B (zh) 2024-02-23

Family

ID=82977865

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210396804.2A Active CN114978592B (zh) 2022-04-15 2022-04-15 基于优化的多元组分包机制Modbus漏洞挖掘方法

Country Status (1)

Country Link
CN (1) CN114978592B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110336827A (zh) * 2019-07-15 2019-10-15 北京工业大学 一种基于异常字段定位的Modbus TCP协议模糊测试方法
CN113542299A (zh) * 2021-07-29 2021-10-22 国家工业信息安全发展研究中心 一种基于模糊测试的工业互联网漏洞挖掘方法及系统
CN113946832A (zh) * 2021-10-26 2022-01-18 北京工业大学 一种基于改进的生成对抗网络框架的漏洞挖掘方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110336827A (zh) * 2019-07-15 2019-10-15 北京工业大学 一种基于异常字段定位的Modbus TCP协议模糊测试方法
CN113542299A (zh) * 2021-07-29 2021-10-22 国家工业信息安全发展研究中心 一种基于模糊测试的工业互联网漏洞挖掘方法及系统
CN113946832A (zh) * 2021-10-26 2022-01-18 北京工业大学 一种基于改进的生成对抗网络框架的漏洞挖掘方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于异常字段定位的 Modbus TCP 协议漏洞挖掘方法研究;冯文倩;《中国硕士电子期刊》(第2021年第06期);1-45页 *

Also Published As

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

Similar Documents

Publication Publication Date Title
CN108347430B (zh) 基于深度学习的网络入侵检测和漏洞扫描方法及装置
US11194901B2 (en) Detecting computer security threats using communication characteristics of communication protocols
US20200028864A1 (en) Non-harmful insertion of data mimicking computer network attacks
US8015605B2 (en) Scalable monitor of malicious network traffic
CN110912927B (zh) 工业控制系统中控制报文的检测方法及装置
EP3437291A1 (en) Network traffic threat identification
CN104954189A (zh) 一种服务器集群的自动检测方法和系统
Liu et al. Error prevalence in nids datasets: A case study on cic-ids-2017 and cse-cic-ids-2018
US10462170B1 (en) Systems and methods for log and snort synchronized threat detection
CN114050979B (zh) 一种工业控制协议安全测试系统及装置
WO2019136954A1 (zh) 网络合规检测方法、装置、设备及介质
CN112055003B (zh) 一种基于字节长度分类的私有协议模糊测试用例生成方法
CN113572760A (zh) 一种设备协议漏洞检测方法及装置
US10296746B2 (en) Information processing device, filtering system, and filtering method
CN112511387A (zh) 基于多源信息分析的网络攻击监测系统
CN114172703A (zh) 一种恶意软件识别方法、装置、介质
CN112653693A (zh) 一种工控协议分析方法、装置、终端设备及可读存储介质
CN112506798A (zh) 一种区块链平台的性能测试方法、装置、终端及存储介质
CN110768950A (zh) 渗透指令的发送方法及装置、存储介质、电子装置
CN114978592B (zh) 基于优化的多元组分包机制Modbus漏洞挖掘方法
CN111770097B (zh) 一种基于白名单的内容锁防火墙方法及系统
CN113328914A (zh) 工控协议的模糊测试方法、装置、存储介质及处理器
CN114553551B (zh) 对入侵防御系统进行测试的方法及装置
CN102111302B (zh) 一种蠕虫检测方法
CN114282221B (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