CN112235244A - 异常报文的构造方法以及工控网络设备的检测方法、装置和介质 - Google Patents
异常报文的构造方法以及工控网络设备的检测方法、装置和介质 Download PDFInfo
- Publication number
- CN112235244A CN112235244A CN202010948457.0A CN202010948457A CN112235244A CN 112235244 A CN112235244 A CN 112235244A CN 202010948457 A CN202010948457 A CN 202010948457A CN 112235244 A CN112235244 A CN 112235244A
- Authority
- CN
- China
- Prior art keywords
- industrial control
- message
- scene
- constructing
- vlan
- 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
Images
Classifications
-
- 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/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- 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/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- 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)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明提供一种异常报文的构造方法以及工控网络设备的检测方法、装置和介质,该检测方法包括:格式构造步骤,根据网络分层通信模型,构造与报文相对应的Modbus TCP协议报文;场景构造步骤,基于所述Modbus TCP协议报文构造VLAN场景下的工控协议报文,从而构造异常报文;发送步骤,将所述异常报文发送至所述工控网络设备,以及行为分析步骤,对所述工控网络设备针对所述异常报文的行为进行统计分析,从而实现对所述工控网络设备的检测。
Description
技术领域
本发明涉及工控技术领域,具体地,涉及一种异常报文的构造方法以及利用该异常报文的工控网络设备的检测方法、装置和介质。
背景技术
Fuzzing测试,业界称为“模糊测试”和“随机性测试”,其以非常规、无特定目的的行为方式对被测试对象和软件API接口进行测试,属于“泛测试”的范畴。“非常规”是相对通用的“常规”测试而言的,常规测试是按照程序设计人员的逻辑一步一步“寻规蹈矩”地进行操作,让程序正常执行。然而,在网络设备实际使用过程中暴漏出来的许多软件问题,特别是严重的设备崩溃的问题,几乎都是在非常规的测试和使用中发现的。
在国家关键基础设施(核电厂、铁路、电力、水利、石油石化等)中使用网络设备,对其稳定性和功能正确性有着严格的要求。如果由于网络设备自身的问题影响现网的运行环境,结果将是严重甚至是灾难性的。如何快速地对即将接入现网的网络设备进行全面检测以验证设备的稳定性及对现网环境的适应能力,从而对接入的网络设备进行客观评估并及早地发现问题避免风险发生,这具有重要意义。
现有技术提供了一种面向Modbus协议的模糊测试方法,能够发现工业控制***的现场设备对Modbus协议数据的处理缺陷。具体地,该模糊测试方法首先对报文进行初步解析,识别出Modbus协议报文,并将Modbus协议域分为静态和动态两部分,然后对可变部分进行变长构造,完善出测试数据集合。然后把构造的数据集合对比现有的已公开的漏洞库,过滤掉没有问题的正常报文,有针对性地生成漏洞测试用例,验证缺陷是否存在。
这是由Modbus协议报文的报文格式决定的,如附图1所示,其示出了通过TCP/IP的Modbus请求/响应,其中,Modbus协议报文由协议头+功能码+数据三部分构成。
其中,协议头是固定长度的7字节(事务处理标识符2字节、协议标识符2字节、长度2字节、单元标识符1字节)。从功能码构成来看,寄存器数量和写相应寄存器的字节数是可变的,最多可以写123个寄存器和写246字节的值。数据部分的内容和长度要根据具体的事务来定,以功能码16(0x10)写多个寄存器为例,可以参见附图2所示。
然而,上述面向Modbus协议的模糊测试方法存在诸多缺陷。首先,其仅针对上层(7层)进行功能验证,且功能单一,只能对Modbus协议进行fuzzing测试验证。而目前国家关键基础设施中的工控网络设备所使用的工控协议种类繁多,除了Modbus之外,还有S7、PROFINET、FINS、CIP、MMS、IEC104、DNP3、OPC等协议被广泛地使用,而上述除了Modbus之外的协议无法通过该模糊测试方法进行验证,此外,还有一些特定领域使用的非标准协议也都无法进行验证,而且对非工控协议也无法支持。
其次,该模糊测试方法缺乏***级(特别是稳定性)的验证,其无法验证工控网络设备对各种报文的处理行为,无法对工控网络设备***运行的稳定性进行验证、保证。
再者,该模糊测试方法依赖于已经公布的Modbus漏洞来进行测试库的完善,不具备漏洞挖掘的能力,从而无法防患于未然。
发明内容
鉴于以上情况而做出本发明,并且本发明的目的是提供一种异常报文的构造方法以及工控网络设备的检测方法和装置,其以Fuzzing测试为基础,又不机械地等同于fuzzing测试本身。鉴于每种工控协议的具体报文都有其格式的定义和取值范围的约束,测试报文的构造要限定在协议定义和约束的范围内,本发明的异常报文的构造方法以及工控网络设备的检测方法和装置能够在上述约束的范围内,在模糊与非模糊、随机与非随机之间找到一个边界,划定目标明确的测试边界,并且在边界内采用快速变化的行为方式,从而对即将接入的工控网络设备进行行为验证。具体地,本发明的工控网络设备的检测方法和装置利用构造引擎对工控现场环境的报文和工作场景进行快速构造、快速变换,并且通过数据分析引擎对工控网络设备的行为进行统计分析,从而能够在短时间内快速验证工控网络设备对现场的适应性,对工控网络设备的功能正确性、容错性和***级稳定性进行验证,并且验证方式方便、灵活、耗时短,使得能够提前发现问题,避免在生产环境造成生产事故。
根据本发明的第一方面,提供一种工控网络设备的检测方法,其特征在于,所述方法包括:
格式构造步骤,根据网络分层通信模型,构造与报文相对应的Modbus TCP协议报文;
场景构造步骤,基于所述Modbus TCP协议报文构造VLAN场景下的工控协议报文,从而构造异常报文;
发送步骤,将所述异常报文发送至所述工控网络设备,以及
行为分析步骤,对所述工控网络设备针对所述异常报文的行为进行统计分析,从而实现对所述工控网络设备的检测。
进一步地,在所述格式构造步骤中,所述网络分层通信模型包括TCP/IP协议分层模型。
进一步地,在所述格式构造步骤中,借助Ether()/IP()/TCP()/Raw()的Python语言,获得所述Modbus TCP协议报文。
进一步地,所述场景构造步骤还包括对所述Modbus TCP协议报文分片。
进一步地,在所述场景构造步骤中,构造VLAN场景下的工控协议报文包括构造VLAN应用场景并且进行VLAN场景封装。
进一步地,在所述场景构造步骤中,所述构造VLAN应用场景包括添加一个VLAN头或者两个VLAN头。
进一步地,在所述场景构造步骤中,所述进行VLAN场景封装包括利用两个Modbus协议头封装。
进一步地,所述报文包括工控协议报文和非工控协议报文,并且
所述报文还包括分片报文。
本发明的第二方面,提供了一种工控网络设备的检测装置,其特征在于,所述装置包括:
格式构造模块,该格式构造模块用于根据网络分层通信模型,构造与报文相对应的Modbus TCP协议报文;
场景构造模块,该场景构造模块用于基于所述Modbus TCP协议报文构造VLAN场景下的工控协议报文,从而构造异常报文;
发送模块,该发送模块用于将所述异常报文发送至所述工控网络设备,和
行为分析模块,该行为分析模块用于对所述工控网络设备针对所述异常报文的行为进行统计分析,以实现对所述工控网络设备的检测。
进一步地,所述网络分层通信模型包括TCP/IP协议分层模型。
进一步地,所述格式构造模块借助Ether()/IP()/TCP()/Raw()的Python语言,获得所述Modbus TCP协议报文。
进一步地,所述场景构造模块还对所述Modbus TCP协议报文分片。
进一步地,所述场景构造模块构造VLAN场景下的工控协议报文包括所述场景构造模块构造VLAN应用场景并且进行VLAN场景封装。
进一步地,所述构造VLAN应用场景包括添加一个VLAN头或者两个VLAN头。
进一步地,所述进行VLAN场景封装包括利用两个Modbus协议头封装。
进一步地,所述报文包括工控协议报文和非工控协议报文,并且所述报文还包括分片报文。
本发明的第三方面提供了一种异常报文的构造方法,其特征在于,所述方法包括:
格式构造步骤,根据网络分层通信模型,构造与报文相对应的Modbus TCP协议报文;和
场景构造步骤,基于所述Modbus TCP协议报文构造VLAN场景下的工控协议报文,从而构造异常报文。
进一步地,在所述格式构造步骤中,所述网络分层通信模型包括TCP/IP协议分层模型。
进一步地,在所述格式构造步骤中,借助Ether()/IP()/TCP()/Raw()的Python语言,获得所述Modbus TCP协议报文。
进一步地,所述场景构造步骤还包括对所述Modbus TCP协议报文分片。
进一步地,在所述场景构造步骤中,构造VLAN场景下的工控协议报文包括构造VLAN应用场景并且进行VLAN场景封装。
进一步地,在所述场景构造步骤中,所述构造VLAN应用场景包括添加一个VLAN头或者两个VLAN头。
进一步地,在所述场景构造步骤中,所述进行VLAN场景封装包括利用两个Modbus协议头封装。
进一步地,所述报文包括工控协议报文和非工控协议报文,并且
所述报文还包括分片报文。
本发明的第四方面提供了一种工控网络设备的检测装置,其特征在于,所述检测装置包括存储程序的存储单元和处理单元,
所述处理单元执行所述程序用以实现如第一方面所述的检测方法中的各个步骤。
本发明的第五方面提供了计算机可读介质,其特征在于,其中,
所述介质上存储有程序,该程序被执行用以实现第一方面所述的检测方法中的各个步骤。
以下结合本发明的附图及优选实施方式对本发明的技术方案做进一步详细地描述,本发明的有益效果将进一步明确。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,但其说明仅用于解释本发明,并不构成对本发明的不当限定。
图1是示出Modbus协议报文的示意图。
图2是示出Modbus协议报文中的数据部分的一个具体实例的示意图。
图3是示意性示出根据本发明一优选实施例的工控网络设备的检测方法的各个步骤的流程图。
图4是示出根据本发明的工控网络设备的检测方法的一个具体实例的对报文分片的示意图。
图5(a)和5(b)是示出根据本发明的工控网络设备的检测方法的一个具体实例的构造VLAN场景的示意图。
图6是示出根据本发明的工控网络设备的检测方法的一个具体实例的进行场景封装的示意图。
图7是示出根据本发明一优选实施例的工控网络设备的检测装置的配置的示意图。
图8是示出根据本发明一优选实施例的工控网络设备的检测方法和装置的计算机***的配置的示意图。
具体实施方式
下面将结合本发明的具体实施例及相应的附图对本发明技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分优选实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合图3描述根据本发明的工控网络设备的检测方法。
图3是示意性示出根据本发明一优选实施例的工控网络设备的检测方法的各个步骤的流程图。
如图3所示,根据本发明的工控网络设备的检测方法包括:格式构造步骤S1、场景构造步骤S2、发送步骤S3和行为分析步骤S4。
下面将结合图3详细描述本发明的工控网络设备的检测方法的上述各个步骤。
步骤S1,格式构造步骤
根据通用的网络分层通信模型,构造与报文(例如,参见图2所示)相对应的ModbusTCP协议报文。
作为一个实例,采用Python语言编写,例如,根据TCP/IP协议分层模型对报文进行快速变换,以构造对应的Modbus TCP协议报文。
具体地,形如Ether()/IP()/TCP()/Raw()。
需要指出的是,本发明不特别限定进行格式构造(步骤S1)之前的报文的获取方式、是否为工控协议报文等。具体地,报文可以包括工控协议报文和非工控协议报文,而且该工控协议报文包括且不限于前文描述的S7、PROFINET、FINS、CIP、MMS、IEC104、DNP3、OPC等协议报文。此外,报文也可以是分片报文等。
步骤S2:场景构造步骤
基于所述Modbus TCP协议报文构造VLAN场景下的工控协议报文,从而构造异常报文,以用于工控网络设备在该场景下的行为检测及分析。
具体的,该场景构造步骤可以包括以下子步骤:
1)报文分片子步骤S21:在步骤S1中进行格式构造以获得对应的Modbus TCP协议报文之后,无论Modbus TCP协议报文的长短,都可以对Modbus TCP协议报文分片。在验证设备***的稳定性时,分片报文处理不好通常会导致网络设备重启、宕机等。
2)构造VLAN应用场景子步骤S22:针对Modbus TCP协议报文或者分片后的ModbusTCP协议报文,构造VLAN应用场景。具体地,可以添加一个VLAN头或者两个VLAN头。
3)场景封装子步骤S23:进行VLAN场景封装,从而构造VLAN场景下的工控协议报文,即,异常报文。具体地,例如可以利用两个Modbus协议头封装。
通过以上子步骤,可以获得异常报文,以用于工控网络设备的检测。需要指出的是,可以利用例如“构造引擎”实现上述格式构造和场景构造的快速构造、快速变换。
上述步骤S1和步骤S2可以概括为“异常报文构造步骤”,即,异常报文的构造方法可以包括上述步骤S1和步骤S2。
步骤S3:发送步骤
将获得的异常报文发送至工控网络设备。
步骤S4:行为分析步骤
对所述工控网络设备针对所述异常报文的行为进行统计分析,以对所述工控网络设备进行检测。
具体地,可以利用例如“数据分析引擎”对工控网络设备的行为进行统计分析,比如底层网卡收发报文计数、上层业务报文计数、有无进程重启或***崩溃行为等,以对工控网络设备进行快速检测,从而可以短时间内快速验证工控网络设备对现场的适应性,提前发现问题避免在生产环境造成生产事故。
通过如上所述的步骤S1-S4,本发明的工控网络设备的检测方法利用构造引擎对工控现场环境的报文(不同协议报文,工控协议和非工控协议,含分片报文)和工作场景(IP分片、TCP分段、VLAN、组播等)进行快速构造、快速变换从而做到“随心所欲”,并且通过数据分析引擎对工控网络设备的行为进行统计分析,从而能够在短时间内快速验证工控网络设备对现场的适应性,对工控网络设备的功能正确性、容错性和***级稳定性进行验证,并且验证方式方便、灵活、耗时短,使得能够提前发现问题,避免在生产环境造成生产事故。
作为一个实例,将参考图4-6描述本发明的工控网络设备的检测方法的中的上述异常报文的快速构造和快速变换的步骤(步骤S1和S2)。
以报文是Modbus报文构造为例,“写10个寄存器”的客户端请求报文的Modbus ADU和服务器响应报文的Modbus ADU。
1)“写10个寄存器”客户端请求报文的Modbus ADU:
36 33 00 00 00 1B 04 10 00 64 00 0A 14 00 0A 01 02 06 10 07 08 09 1006 10 06 10 06 10 06 10 06 10
MBAP Header:36 33 00 00 00 1B 04
PDU:10 00 64 00 0A 14 00 0A 01 02 06 10 07 08 09 10 06 10 06 10 06 1006 10 06 10
2)“写10个寄存器”服务器响应报文的Modbus ADU:
36 33 00 00 00 06 04 10 00 64 00 0A
MBAP Header:36 33 00 00 00 06 04
PDU:10 00 64 00 0A
在步骤S1中,根据例如TCP/IP协议分层模型对报文格式进行快速变换,借助形如Ether()/IP()/TCP()/Raw()的Python语言,实现如下:
1)“写10个寄存器”的客户端请求报文
modbus_request=Ether()/IP(src="100.100.100.100",dst="200.200.200.200")/TCP(dport=502)/Raw(load='\x36\x33\x00\x00\x00\x1B\x04\x10\x00\x64\x00\x0A\x14\x00\x0A\x01\x02\x06\x10\x07\x08\x09\x10\x06\x10\x06\x10\x06\x10\x06\x10\x06\x10')
2)“写10个寄存器”的服务器端响应报文
modbus_response=Ether()/IP(dst="100.100.100.100",src="200.200.200.200")/TCP(dport=502,flags=16)/Raw(load='\x36\x33\x00\x00\x00\x06\x04\x10\x00\x64\x00\x0A')
在步骤S2中,对Modbus TCP协议报文进行场景构造。
首先将在步骤S1中获得的Modbus TCP协议报文分片。如图4所示,将功能码16(0x10)的“写多个寄存器”的客户端请求报文分片。
其中,Modbus ADU,即TCP负载为33个字节
36 33 00 00 00 1B 04 10 00 64 00 0A 14 00 0A 01 02 06 10 07 08 09 1006 10 06 10 06 10 06 10 06 10
把负载分为3片,每片24字节,参考图4所示。
随后,对获得的分片报文构造VLAN应用场景,参见图5(a)所示,添加一个VLAN头,或者参见图5(b)所示,添加双VLAN头。
然后,利用两个Modbus协议头封装,从而构造出VLAN场景下的工控协议报文,即,异常报文,参见图6所示。
以上仅为本发明的工控网络设备的检测方法的构造异常报文的一个具体实例,其仅为一个实例,而不对本发明进行限制。本发明能够适用于各种工控协议报文和非工控协议报文以及分片报文,而不限于上述实例中的Modbus报文。
本发明的另一方面,提供了一种工控网络设备的检测装置。
如图7所示,根据本发明的工控网络设备的检测装置100包括:格式构造模块110、场景构造模块120、发送模块130和行为分析模块140。
下面将结合图7详细描述本发明的工控网络设备的检测装置的上述各个模块。
[格式构造模块110]
格式构造模块110用于根据通用的网络分层通信模型,构造与报文相对应的Modbus TCP协议报文。
作为一个实例,格式构造模块110采用Python语言编写,例如,根据TCP/IP协议分层模型对报文进行快速变换,以构造对应的Modbus TCP协议报文。
具体地,形如Ether()/IP()/TCP()/Raw()。
需要指出的是,上述报文的获取方式、是否为工控协议报文等不受特别限制。具体地,报文可以包括工控协议报文和非工控协议报文,而且该工控协议报文包括且不限于前文描述的S7、PROFINET、FINS、CIP、MMS、IEC104、DNP3、OPC等协议报文。此外,报文也可以是分片报文等。
[场景构造模块120]
场景构造模块120用于基于所述Modbus TCP协议报文构造VLAN场景下的工控协议报文,从而构造异常报文,以用于工控网络设备在该场景下的行为检测及分析。
具体的,该场景构造模块120可以包括以下单元:
报文分片单元121:在格式构造模块110进行格式构造以获得对应的Modbus TCP协议报文之后,无论Modbus TCP协议报文的长短,都可以对Modbus TCP协议报文分片。在验证设备***的稳定性时,分片报文处理不好通常会导致网络设备重启、宕机等。
构造VLAN应用场景单元122:该构造VLAN应用场景单元122用于针对Modbus TCP协议报文或者分片后的Modbus TCP协议报文,构造VLAN应用场景。具体地,构造VLAN应用场景单元122可以添加一个VLAN头或者两个VLAN头。
场景封装单元123:该场景封装单元123用于进行VLAN场景封装,从而构造VLAN场景下的工控协议报文,即,异常报文。具体地,例如场景封装单元123可以利用两个Modbus协议头封装。
通过以上各个模块和单元,可以获得异常报文,以用于工控网络设备的检测。需要指出的是,可以利用例如“构造引擎”实现上述格式构造和场景构造的快速构造、快速变换。
此外,上述各个模块和单元的名称不受特别限制,并且例如,可以将格式构造模块110和场景构造模块120统称为“异常报文构造模块”。
[发送模块130]
发送模块130用于将获得的异常报文发送至工控网络设备。
[行为分析模块140]
该行为分析模块140用于对所述工控网络设备针对所述异常报文的行为进行统计分析,以对所述工控网络设备进行快速检测。
具体地,行为分析模块140可以利用例如“数据分析引擎”对工控网络设备的行为进行统计分析,比如底层网卡收发报文计数、上层业务报文计数、有无进程重启或***崩溃行为等,以对工控网络设备进行快速检测,从而可以短时间内快速验证工控网络设备对现场的适应性,提前发现问题避免在生产环境造成生产事故。
通过如上所述的各个模块及其单元,本发明的工控网络设备的检测装置利用构造引擎对工控现场环境的报文和工作场景进行快速构造、快速变换,并且通过数据分析引擎对工控网络设备的行为进行统计分析,从而能够在短时间内快速验证工控网络设备对现场的适应性,对工控网络设备的功能正确性、容错性和***级稳定性进行验证,并且验证方式方便、灵活、耗时短,使得能够提前发现问题,避免在生产环境造成生产事故。
本发明的另一方面提供了一种计算机***300。
计算机***300包括中央处理单元(CPU)301,其可以根据存储在只读存储器(ROM)302中的程序或者从存储部分308加载到随机访问存储器(RAM)303中的程序而执行各种适当的动作和处理。在RAM 303中,还存储有***300操作所需的各种程序和数据。CPU 301、ROM302以及RAM 303通过总线304彼此相连。输入/输出(I/O)接口305也连接至总线304。
以下部件连接至I/O接口305:包括键盘、鼠标等的输入部分306;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分303;包括硬盘等的存储部分308;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分309。通信部分309经由诸如因特网的网络执行通信处理。驱动器310也根据需要连接至I/O接口305。可拆卸介质311,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器310上,以便于从其上读出的计算机程序根据需要被安装入存储部分308。
特别地,根据本发明公开的实施例,上文参考流程图描述的步骤可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行图1所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分309从网络上被下载和安装,和/或从可拆卸介质311被安装。在该计算机程序被中央处理单元(CPU)301执行时,执行本发明的***中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是且不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的方法、装置和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块及其单元也可以设置在处理器中,例如,可以描述为:一种处理器包括格式构造模块、场景构造模块、发送模块和行为分析模块。其中,这些模块的名称在某种情况下并不构成对该模块及其单元本身的限定,例如,场景构造模块还可以被描述为“场景创建模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:
步骤S1,格式构造步骤
根据通用的网络分层通信模型,构造与报文相对应的Modbus TCP协议报文。
作为一个实例,采用Python语言编写,例如,根据TCP/IP协议分层模型对报文进行快速变换,以构造对应的Modbus TCP协议报文。
具体地,形如Ether()/IP()/TCP()/Raw()。
需要指出的是,本发明不特别限定进行格式构造(步骤S1)之前的报文的获取方式、是否为工控协议报文等。具体地,报文可以包括工控协议报文和非工控协议报文,而且该工控协议报文包括且不限于前文描述的S7、PROFINET、FINS、CIP、MMS、IEC104、DNP3、OPC等协议报文。此外,报文也可以是分片报文等。
步骤S2:场景构造步骤
基于所述Modbus TCP协议报文构造VLAN场景下的工控协议报文,从而构造异常报文,以用于工控网络设备在该场景下的行为检测及分析。
具体的,该场景构造步骤可以包括以下子步骤:
1)报文分片子步骤S21:在步骤S2中进行格式构造以获得对应的Modbus TCP协议报文之后,无论Modbus TCP协议报文的长短,都可以对Modbus TCP协议报文分片。在验证设备***的稳定性时,分片报文处理不好通常会导致网络设备重启、宕机等。
2)构造VLAN应用场景子步骤S22:基于Modbus TCP协议报文或者分片后的ModbusTCP协议报文,构造VLAN应用场景。具体地,可以添加一个VLAN头或者两个VLAN头。
3)场景封装子步骤S23:进行VLAN场景封装,从而构造VLAN场景下的工控协议报文,即,异常报文。具体地,例如可以利用两个Modbus协议头封装。
通过以上子步骤,可以获得异常报文,以用于工控网络设备的检测。需要指出的是,可以利用例如“构造引擎”实现上述格式构造和场景构造的快速构造、快速变换。
上述步骤S1和步骤S2可以概括为“异常报文构造步骤”,即,异常报文的构造方法可以包括上述步骤S1和步骤S2。
步骤S3:发送步骤
将获得的异常报文发送至工控网络设备。
步骤S4:行为分析步骤
对所述工控网络设备针对所述异常报文的行为进行统计分析,以对所述工控网络设备进行检测。
具体地,可以利用例如“数据分析引擎”对工控网络设备的行为进行统计分析,比如底层网卡收发报文计数、上层业务报文计数、有无进程重启或***崩溃行为等,以对工控网络设备进行快速检测,从而可以短时间内快速验证工控网络设备对现场的适应性,提前发现问题避免在生产环境造成生产事故。
以上描述了本发明的各个实施例,本发明提供一种工控网络设备的检测方法和装置,其以Fuzzing测试为基础,又不机械地等同于fuzzing测试本身,而是在模糊与非模糊、随机与非随机之间找到一个边界,划定目标明确的测试边界和边界内采用快速变化的行为方式对即将接入的工控网络设备进行行为验证。具体地,本发明的工控网络设备的检测方法和装置利用构造引擎对工控现场环境的报文和工作场景进行快速构造、快速变换,并且通过数据分析引擎对工控网络设备的行为进行统计分析,从而能够在短时间内快速验证工控网络设备对现场的适应性,对工控网络设备的功能正确性、容错性和***级稳定性进行验证,并且验证方式方便、灵活、耗时短,使得能够提前发现问题,避免在生产环境造成生产事故。
以上所述仅为本申请的实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。
例如,本发明中添加的VLAN头的数量和Modbus协议头的数量不限于两个,而可以为2个以上。
凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
Claims (12)
1.一种工控网络设备的检测方法,其特征在于,所述检测方法包括:
格式构造步骤,根据网络分层通信模型,构造与报文相对应的Modbus TCP协议报文;
场景构造步骤,基于所述Modbus TCP协议报文构造VLAN场景下的工控协议报文,从而构造异常报文;
发送步骤,将所述异常报文发送至所述工控网络设备;以及
行为分析步骤,对所述工控网络设备针对所述异常报文的行为进行统计分析,从而实现对所述工控网络设备的检测。
2.根据权利要求1所述的检测方法,其特征在于,其中,
在所述格式构造步骤中,所述网络分层通信模型包括TCP/IP协议分层模型。
3.根据权利要求1或2所述的检测方法,其特征在于,其中,
在所述格式构造步骤中,借助Ether()/IP()/TCP()/Raw()的Python语言,获得所述Modbus TCP协议报文。
4.根据权利要求1至3的任意一项所述的检测方法,其特征在于,其中,
所述场景构造步骤还包括对所述Modbus TCP协议报文分片。
5.根据权利要求1至4的任意一项所述的检测方法,其特征在于,其中
在所述场景构造步骤中,构造VLAN场景下的工控协议报文包括构造VLAN应用场景并且进行VLAN场景封装。
6.根据权利要求5所述的检测方法,其特征在于,其中,
在所述场景构造步骤中,所述构造VLAN应用场景包括添加一个VLAN头或者两个VLAN头。
7.根据权利要求5或6所述的检测方法,其特征在于,其中,
在所述场景构造步骤中,所述进行VLAN场景封装包括利用两个Modbus协议头封装。
8.根据权利要求1至7的任意一项所述的检测方法,其特征在于,其中,
所述报文包括工控协议报文和非工控协议报文,并且
所述报文还包括分片报文。
9.一种工控网络设备的检测装置,其特征在于,所述检测装置包括:
格式构造模块,该格式构造模块用于根据网络分层通信模型,构造与报文相对应的Modbus TCP协议报文;
场景构造模块,该场景构造模块用于基于所述Modbus TCP协议报文构造VLAN场景下的工控协议报文,从而构造异常报文;
发送模块,该发送模块用于将所述异常报文发送至所述工控网络设备;和
行为分析模块,该行为分析模块用于对所述工控网络设备针对所述异常报文的行为进行统计分析,以实现对所述工控网络设备的检测。
10.一种异常报文的构造方法,其特征在于,所述构造方法包括:
格式构造步骤,根据网络分层通信模型,构造与报文相对应的Modbus TCP协议报文;和
场景构造步骤,基于所述Modbus TCP协议报文构造VLAN场景下的工控协议报文,从而构造异常报文。
11.一种工控网络设备的检测装置,其特征在于,所述检测装置包括存储程序的存储单元和处理单元,其中,
所述处理单元执行所述程序用以实现如权利要求1至8的任意一项所述的检测方法中的各个步骤。
12.一种计算机可读介质,其特征在于,其中,
所述介质上存储有程序,该程序被执行用以实现如权利要求1至8的任意一项所述的检测方法中的各个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010948457.0A CN112235244B (zh) | 2020-09-10 | 2020-09-10 | 异常报文的构造方法以及工控网络设备的检测方法、装置和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010948457.0A CN112235244B (zh) | 2020-09-10 | 2020-09-10 | 异常报文的构造方法以及工控网络设备的检测方法、装置和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112235244A true CN112235244A (zh) | 2021-01-15 |
CN112235244B CN112235244B (zh) | 2023-03-24 |
Family
ID=74115590
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010948457.0A Active CN112235244B (zh) | 2020-09-10 | 2020-09-10 | 异常报文的构造方法以及工控网络设备的检测方法、装置和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112235244B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115001829A (zh) * | 2022-06-07 | 2022-09-02 | 中国软件评测中心(工业和信息化部软件与集成电路促进中心) | 协议漏洞挖掘方法、装置、设备及存储介质 |
CN117411955A (zh) * | 2023-10-13 | 2024-01-16 | 中科驭数(北京)科技有限公司 | 健壮性测试方法、装置、电子设备及介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105245403A (zh) * | 2015-10-27 | 2016-01-13 | 国网智能电网研究院 | 一种基于模糊测试的电网工控协议漏洞挖掘***和方法 |
CN105391595A (zh) * | 2015-08-12 | 2016-03-09 | 天津可信网安科技有限公司 | 基于工控协议漏洞挖掘用户自定义方法 |
CN105721230A (zh) * | 2014-11-30 | 2016-06-29 | 中国科学院沈阳自动化研究所 | 一种面向Modbus协议的模糊测试方法 |
US20160337218A1 (en) * | 2015-05-12 | 2016-11-17 | Ajou University Industry-Academic Cooperation Foundation | Method and system of monitoring network |
CN106484611A (zh) * | 2015-09-02 | 2017-03-08 | 腾讯科技(深圳)有限公司 | 基于自动化协议适配的模糊测试方法和装置 |
CN106506600A (zh) * | 2016-10-12 | 2017-03-15 | 中国葛洲坝集团电力有限责任公司 | 一种基于b/s架构的建筑光伏电站监控平台 |
US20170126745A1 (en) * | 2015-11-04 | 2017-05-04 | Monico Monitoring, Inc. | Industrial Network Security Translator |
CN110365678A (zh) * | 2019-07-15 | 2019-10-22 | 北京工业大学 | 一种基于反样本的工控网络协议漏洞挖掘方法 |
CN110401581A (zh) * | 2019-07-22 | 2019-11-01 | 杭州电子科技大学 | 基于流量追溯的工控协议模糊测试用例生成方法 |
CN110505111A (zh) * | 2019-07-09 | 2019-11-26 | 杭州电子科技大学 | 基于流量重放的工控协议模糊测试方法 |
-
2020
- 2020-09-10 CN CN202010948457.0A patent/CN112235244B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105721230A (zh) * | 2014-11-30 | 2016-06-29 | 中国科学院沈阳自动化研究所 | 一种面向Modbus协议的模糊测试方法 |
US20160337218A1 (en) * | 2015-05-12 | 2016-11-17 | Ajou University Industry-Academic Cooperation Foundation | Method and system of monitoring network |
CN105391595A (zh) * | 2015-08-12 | 2016-03-09 | 天津可信网安科技有限公司 | 基于工控协议漏洞挖掘用户自定义方法 |
CN106484611A (zh) * | 2015-09-02 | 2017-03-08 | 腾讯科技(深圳)有限公司 | 基于自动化协议适配的模糊测试方法和装置 |
CN105245403A (zh) * | 2015-10-27 | 2016-01-13 | 国网智能电网研究院 | 一种基于模糊测试的电网工控协议漏洞挖掘***和方法 |
US20170126745A1 (en) * | 2015-11-04 | 2017-05-04 | Monico Monitoring, Inc. | Industrial Network Security Translator |
CN106506600A (zh) * | 2016-10-12 | 2017-03-15 | 中国葛洲坝集团电力有限责任公司 | 一种基于b/s架构的建筑光伏电站监控平台 |
CN110505111A (zh) * | 2019-07-09 | 2019-11-26 | 杭州电子科技大学 | 基于流量重放的工控协议模糊测试方法 |
CN110365678A (zh) * | 2019-07-15 | 2019-10-22 | 北京工业大学 | 一种基于反样本的工控网络协议漏洞挖掘方法 |
CN110401581A (zh) * | 2019-07-22 | 2019-11-01 | 杭州电子科技大学 | 基于流量追溯的工控协议模糊测试用例生成方法 |
Non-Patent Citations (2)
Title |
---|
伊胜伟等: "基于Peach的工业控制网络协议安全分析", 《清华大学学报(自然科学版)》 * |
李伟明等: "网络协议的自动化模糊测试漏洞挖掘方法", 《计算机学报》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115001829A (zh) * | 2022-06-07 | 2022-09-02 | 中国软件评测中心(工业和信息化部软件与集成电路促进中心) | 协议漏洞挖掘方法、装置、设备及存储介质 |
CN115001829B (zh) * | 2022-06-07 | 2024-06-07 | 中国软件评测中心(工业和信息化部软件与集成电路促进中心) | 协议漏洞挖掘方法、装置、设备及存储介质 |
CN117411955A (zh) * | 2023-10-13 | 2024-01-16 | 中科驭数(北京)科技有限公司 | 健壮性测试方法、装置、电子设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112235244B (zh) | 2023-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107426022B (zh) | 安全事件监测方法及装置、电子设备、存储介质 | |
CN106294102B (zh) | 应用程序的测试方法、客户端、服务器及*** | |
CN112235244B (zh) | 异常报文的构造方法以及工控网络设备的检测方法、装置和介质 | |
CN112615858B (zh) | 物联网设备监控方法、装置与*** | |
CN104348578B (zh) | 数据处理的方法及装置 | |
CN113114680B (zh) | 用于文件上传漏洞的检测方法和检测装置 | |
CN113225339B (zh) | 网络安全监测方法、装置、计算机设备及存储介质 | |
CN113572760A (zh) | 一种设备协议漏洞检测方法及装置 | |
CN114253864A (zh) | 一种业务测试方法、装置、电子设备及存储介质 | |
CN116305290A (zh) | 一种***日志安全检测方法及装置、电子设备及存储介质 | |
WO2021134418A1 (zh) | 一种数据校验方法及装置 | |
CN116737598B (zh) | 页面调试方法、装置、电子设备和计算机可读介质 | |
CN116170235B (zh) | 一种数据库优化访问方法、***、设备及介质 | |
CN113672416B (zh) | 硬buffer泄漏的原因定位方法及装置 | |
CN115865281A (zh) | 工业仪表通信数据丢包处理方法、***、设备及存储介质 | |
CN114793181A (zh) | Waf拦截规则库测试方法、装置、电子设备及存储介质 | |
CN112532603B (zh) | 一种基于交换授权文件的跨域文件交换引接设备及方法 | |
CN108734033B (zh) | 一种实现***间安全交互的方法和装置 | |
CN114844772A (zh) | 一种基于Zabbix监控平台的管理方法及*** | |
CN114443480A (zh) | 测试方法、***、可读介质及电子设备 | |
Lee et al. | Collecting big data from automotive ECUs beyond the CAN bandwidth for fault visualization | |
CN114462030A (zh) | 隐私政策的处理、取证方法、装置、设备及存储介质 | |
CN112948195A (zh) | 接口测试的方法、装置、电子设备和存储介质 | |
CN111277452A (zh) | 总线数据测试方法、装置、设备及存储介质 | |
CN107786357B (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 |