CN110134590B - 一种针对Modbus/TCP的天牛须模糊测试用例生成方法 - Google Patents
一种针对Modbus/TCP的天牛须模糊测试用例生成方法 Download PDFInfo
- Publication number
- CN110134590B CN110134590B CN201910312067.1A CN201910312067A CN110134590B CN 110134590 B CN110134590 B CN 110134590B CN 201910312067 A CN201910312067 A CN 201910312067A CN 110134590 B CN110134590 B CN 110134590B
- Authority
- CN
- China
- Prior art keywords
- test case
- search
- protocol
- updating
- fuzzy
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
-
- 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 Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Maintenance And Management Of Digital Transmission (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种针对Modbus/TCP的天牛须模糊测试用例生成方法,能够大量减少冗余的测试用例,提高模糊测试效率。该方法包含初始化BAS算法,划分协议子空间进行并行搜索,设置目标函数生成最优测试用例子串,通过数据整合得到完整测试用例并将其发送给被测设备,利用自适应反馈模块,根据测试结果更新算法参数,调整搜索路径重新进行测试用例的生成。本发明方法测试用例构造速度更快,利用协议分析将协议划分为各协议子空间,通过BAS算法并行搜索,生成各协议子串再进行组合,构造模糊测试用例,大大提高了测试用例的构造速度。
Description
技术领域
本发明涉及工控网络安全领域,具体涉及一种针对Modbus/TCP的天牛须(BASAlgorithm)模糊测试用例生成方法。
背景技术
工业控制系统(Industrial Control System),简称“工控系统”,是通过监视和控制现场设备来实现采集数据、控制设备和调节参数等功能的业务流程管控系统。其由各种自动化控制组件以及对实时数据进行采集监控的过程控制组件组成。随着工业化与信息化融合度越来越高,工控系统已经从“封闭系统”逐渐变成“开放系统”,工控系统现在已经暴露在IT系统和互联网,这显然增加了恶意入侵的风险。工控系统大量使用Modbus/TCP等明码传输协议,这些报文没有严格的身份识别,安全性极其脆弱。因此,工控协议受到攻击后可能使系统网络完全瘫痪,造成不可弥补的损失。针对此种风险,针对Modbus/TCP的漏洞挖掘显得十分必要。
漏洞挖掘中一种重要的方法就是模糊测试。模糊测试通过构造畸形输入数据,将其发送给被测系统,并监测被测系统是否发生故障来测试其安全性。模糊测试的关键在于如何生成测试效率更高的测试用例,目前针对Modbus/TCP的模糊测试用例生成方法比较少,并且生成方法也未针对该协仪报文简短、高度结构化的特点进行优化,使构造的测试用例冗余度较高,导致测试效率低下。
发明内容
针对Modbus/TCP安全缺陷,本发明的目的是提出一种针对Modbus/TCP的天牛须模糊测试用例生成方法,减少测试冗余度,提高模糊测试效率。
BAS算法是受到天牛觅食原理启发而开发的算法,食物的气味相当于一个目标函数,此函数在空间中每个点的值都不相同,天牛两个须可以采集自身附近两点的气味值,天牛的目的就是找到全局气味值最大的点,是一种高效的智能搜索算法。本方法利用BAS算法收敛速度快,设置合理步长和适应度函数可以得到全局最优解的优点搜索最优测试用例,同时设置自适应反馈模块,根据测试结果更新算法参数,调整搜索路径,大量减少冗余测试用例。将此种方法运用在Modbus/TCP模糊测试用例生成上可以极大地减少测试冗余度,提高模糊测试效率。
为达到上述目的,本发明采用如下技术方案:
一种针对Modbus/TCP的天牛须模糊测试用例生成方法,利用BAS算法优化搜索空间,生成模糊测试用例,具体包括以下步骤:
1)建立模糊测试目标函数f(xt),初始化BAS算法参数;
2)划分协议字段子空间,在协议字段子空间中利用BAS算法进行并行搜索;
3)更新状态变量xt,计算f(xt)并与目标函数进行比较,更新搜索参数;
4)根据目标函数最大时的各协议字段子空间内搜索路径进行数据整合,构造模糊测试用例并发送给被测设备;
5)设置自适应反馈模块,根据测试结果更新搜索步长,调整搜索路径,进行下一轮搜索。
所述步骤2)中的协议字段子空间的产生方式为:对目标协议进行分析,根据协议各个字段的具体含义划分为不同的协议字段子空间,利用BAS算法在各子空间中并行搜索。
所述步骤5)中的自适应反馈模块包括测试结果分析器和自适应优化因子;所述测试结果分析器通过分析测试结果返回的Error Code判断测试用例触发异常的类别,所述自适应优化因子根据测试结果分析器得出的异常类别指导下一次搜索时的搜索步长和搜索路径。
与现有技术相比,本发明所提出的技术方案有如下优势:
(1)本发明方法测试用例构造速度更快,利用协议分析将协议划分为各协议子空间,通过BAS算法并行搜索,生成各协议子串再进行组合,构造模糊测试用例,大大提高了测试用例的构造速度。
(2)测试用例冗余度减少,利用设置的自适应反馈模块对测试结果进行分析,实时更新算法步长和搜索路径,指导下一轮的测试用例生成。
附图说明
图1为本发明方法的流程图。
图2为本发明方法的详细结构示意图。
具体实施方式
下面结合附图,对本发明实施例中的技术方案进行清楚、完整地描述。本例对工业控制系统中广泛使用的Modbus协议基于TCP/IP工作模式下进行模糊测试漏洞挖掘。
如图1和图2所示,本发明所述的一种针对Modbus/TCP的天牛须模糊测试用例生成方法,包含初始化BAS算法,划分协议子空间进行并行搜索,设置目标函数生成最优测试用例子串,通过数据整合得到完整测试用例并将其发送给被测设备(System Under Test),利用自适应反馈模块,根据测试结果更新算法参数,调整搜索路径重新进行测试用例的生成。
1)初始化BAS算法,设置目标函数f(xt),其具体含义为:同一功能码下本发明构造的测试报文与正常Modbus/TCP报文序列比对的差异情况,差异越大说明模糊测试用例构造的畸形度越高,此处取其负数形式作为目标函数。其中变量xt=[x1,x2,x3,...,xi]T,具体含义为:模糊测试用例,其中最小的单位为1比特,初始化值设设为0。其具体含义为搜索的方向,在此方法中意味着在此bit位上的取值为0还是1,此处定义xl为选择0,xr为选择1。其中dt为两须之间长度,初始值设为3,搜索步长初始值设置为1。对目标函数分别取左右两处xl和xr的值比较大小,之后更新下一步的位置。
2)划分协议字段子空间,具体地,根据Modbus/TCP协议规范,Modbus/TCP协议字段为一串二进制的bit数据流,其应用层负载可划分为如下几个子空间,事务处理标识符TID(2个字节),事务处理标识符TID(2个字节),事务处理标识符TID(2个字节),协议标识符PID(2个字节),长度LEN(2个字节),单元标识符UID(1个字节),功能码FC(1个字节),数据段DATA(max:252个字节),其中数据段又包含地址段和若干其他特定字段,需要根据功能码进行具体分析具体划分,划分空间最小粒度为一个字节。然后利用BAS算法在各协议子空间中并行搜索。
3)更新算法参数以及比较目标函数大小,具体地,两须之间长度更新公式:dt=0.95dt-1+0.01,步长更新公式δt=0.95δt-1。比较f(xr)和f(xl)的大小,根据公式更新并与目标函数最优值fbst进行比较,进入适应度函数判断,设置终止条件,如果满足则退出搜索算法,进入4)数据整合阶段,否则继续进行搜索。所述适应度函数判断为:计算min(f(xr),f(xl))并将其与目标函数fbst进行比较,如果小于目标函数则令fbst=f(xt),xbst=xt,否则更新算法参数。
所述终止条件为:测试用例最长子串是否超过其子空间最大搜索范围,如果超过范围则停止搜索,输出当前子串,;如果未超过子空间最大搜索范围则当前已搜索完毕的子串从头开始重新搜索直到最长子串搜索完毕。
4)数据整合,具体地,根据协议格式规定,将各自协议子空间内并行搜索得到的最优协议子串进行拼接,得到最终的模糊测试用例,并利用测试用例发送模块将其发送到被测设备中。所述测试用例发送模块为Peach,Scapy等测试用例发包软件。
5)自适应反馈,通过Wireshark抓取被测设备返回报文,分析其中的Error Code异常功能码,通过匹配规则判断测试用例触发异常的类别。其中Modbus/TCP异常功能码包括:01非法的功能码,02非法的数据地址,03非法的数据值。根据异常的类别可以构造相应的自适应优化因子,01异常码增大搜索步长,02和03异常码则是进行反向搜索。具体的:01非法的功能码,说明上一个测试用例的功能码不符合协议格式,在下一次生成时,在功能码子空间中,对应的步长更新变为δt=2δt-1。02非法的数据地址,说明上一个测试用例的数据地址不符合协议格式,由于Modbus/TCP的地址均为连续地址,所以在下一次生成时,在数据子空间中,对应03非法的数据值,说明上一个测试用例的数据值不符合格式,在下一次生成时,在其对应的子空间中与02异常功能码相似,进行反向搜索。
Claims (2)
1.一种针对Modbus/TCP的天牛须模糊测试用例生成方法,其特征在于,利用BAS算法优化搜索空间,生成模糊测试用例,具体包括以下步骤:
1)建立模糊测试目标函数f(xt),初始化BAS算法参数;
2)划分协议字段子空间,在协议字段子空间中利用BAS算法进行并行搜索;
3)更新状态变量xt,计算f(xt)并与目标函数进行比较,更新搜索参数;
4)根据目标函数最大时的各协议字段子空间内搜索路径进行数据整合,构造模糊测试用例并发送给被测设备;
5)设置自适应反馈模块,根据测试结果更新搜索步长,调整搜索路径,进行下一轮搜索;
在所述步骤1)中,设置目标函数f(xt),其具体含义为:同一功能码下构造的测试报文与正常Modbus/TCP报文序列比对的差异情况,差异越大说明模糊测试用例构造的畸形度越高,此处取其负数形式作为目标函数;其中变量xt=[x1,x2,x3,...,xi]T,具体含义为:模糊测试用例,其中最小的单位为1比特,初始化值设设为0;其具体含义为搜索的方向,在此方法中意味着在此bit位上的取值为0还是1,此处定义xl为选择0,xr为选择1;其中dt为两须之间长度,初始值设为3,搜索步长初始值设置为1;对目标函数分别取左右两处xl和xr的值比较大小,之后更新下一步的位置;
在所述步骤3)中,更新算法参数以及比较目标函数大小,具体地,两须之间长度更新公式:dt=0.95dt-1+0.01,步长更新公式δt=0.95δt-1;比较f(xr)和f(xl)的大小,根据公式更新并与目标函数最优值fbst进行比较,进入适应度函数判断,设置终止条件,如果满足则退出搜索算法,进入4)数据整合阶段,否则继续进行搜索;所述适应度函数判断为:计算min(f(xr),f(xl))并将其与目标函数fbst进行比较,如果小于目标函数则令fbst=f(xt),xbst=xt,否则更新算法参数;
在所述步骤5)中,自适应反馈模块包括测试结果分析器和自适应优化因子;所述测试结果分析器通过分析测试结果返回的Error Code判断测试用例触发异常的类别,所述自适应优化因子根据测试结果分析器得出的异常类别指导下一次搜索时的搜索步长和搜索路径。
2.根据权利要求1所述的一种针对Modbus/TCP的天牛须模糊测试用例生成方法,其特征在于,所述步骤2)中的协议字段子空间的产生方式为:对目标协议进行分析,根据协议各个字段的具体含义划分为不同的协议字段子空间,利用BAS算法在各子空间中并行搜索。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910312067.1A CN110134590B (zh) | 2019-04-18 | 2019-04-18 | 一种针对Modbus/TCP的天牛须模糊测试用例生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910312067.1A CN110134590B (zh) | 2019-04-18 | 2019-04-18 | 一种针对Modbus/TCP的天牛须模糊测试用例生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110134590A CN110134590A (zh) | 2019-08-16 |
CN110134590B true CN110134590B (zh) | 2023-04-18 |
Family
ID=67570194
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910312067.1A Active CN110134590B (zh) | 2019-04-18 | 2019-04-18 | 一种针对Modbus/TCP的天牛须模糊测试用例生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110134590B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111666221B (zh) * | 2020-07-03 | 2022-09-27 | 西安邮电大学 | 基于天牛须搜索的软件测试数据集扩增方法 |
CN114978974B (zh) * | 2022-05-20 | 2023-09-19 | 国网重庆市电力公司电力科学研究院 | 无线通信模组测试方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105721255A (zh) * | 2016-04-14 | 2016-06-29 | 北京工业大学 | 基于模糊测试的工控协议漏洞挖掘系统 |
CN107835102A (zh) * | 2017-10-19 | 2018-03-23 | 北京威努特技术有限公司 | 一种针对协议特性分解及分解模糊测试方法 |
CN109040081A (zh) * | 2018-08-10 | 2018-12-18 | 哈尔滨工业大学(威海) | 一种基于bwt的协议字段逆向分析系统及方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102103538A (zh) * | 2011-02-22 | 2011-06-22 | 南京航空航天大学 | 一种基于Agent的码垛机器人控制软件测试方法 |
CN105721230B (zh) * | 2014-11-30 | 2017-03-22 | 中国科学院沈阳自动化研究所 | 一种面向Modbus协议的模糊测试方法 |
US9960962B2 (en) * | 2015-06-10 | 2018-05-01 | Johnson Controls Technology Company | Building automation system with smart communications controller for building equipment |
CN108337266B (zh) * | 2018-03-07 | 2020-08-11 | 中国科学院信息工程研究所 | 一种高效的协议客户端漏洞发掘方法与系统 |
-
2019
- 2019-04-18 CN CN201910312067.1A patent/CN110134590B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105721255A (zh) * | 2016-04-14 | 2016-06-29 | 北京工业大学 | 基于模糊测试的工控协议漏洞挖掘系统 |
CN107835102A (zh) * | 2017-10-19 | 2018-03-23 | 北京威努特技术有限公司 | 一种针对协议特性分解及分解模糊测试方法 |
CN109040081A (zh) * | 2018-08-10 | 2018-12-18 | 哈尔滨工业大学(威海) | 一种基于bwt的协议字段逆向分析系统及方法 |
Non-Patent Citations (1)
Title |
---|
张洪泽 洪征 周胜利 冯文博.基于协议状态机遍历的模糊测试优化方法.计算机工程与应用.2019,全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN110134590A (zh) | 2019-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11818155B2 (en) | Cognitive information security using a behavior recognition system | |
CN109902709B (zh) | 一种基于对抗学习的工业控制系统恶意样本生成方法 | |
Gaur et al. | Analysis of machine learning classifiers for early detection of DDoS attacks on IoT devices | |
Blazek et al. | A novel approach to detection of “denial–of–service” attacks via adaptive sequential and batch–sequential change–point detection methods | |
CN108737410B (zh) | 一种基于特征关联的有限知工业通信协议异常行为检测方法 | |
CN110134590B (zh) | 一种针对Modbus/TCP的天牛须模糊测试用例生成方法 | |
CN109347853B (zh) | 基于深度包解析的面向综合电子系统的异常检测方法 | |
CN111181971B (zh) | 一种自动检测工业网络攻击的系统 | |
Li et al. | A data mining approach to generating network attack graph for intrusion prediction | |
Nakhodchi et al. | Steeleye: An application-layer attack detection and attribution model in industrial control systems using semi-deep learning | |
CN113079150B (zh) | 一种电力终端设备入侵检测方法 | |
CN111224973A (zh) | 一种基于工业云的网络攻击快速检测系统 | |
Sabeel et al. | Building an intrusion detection system to detect atypical cyberattack flows | |
Tan et al. | DDoS detection method based on Gini impurity and random forest in SDN environment | |
Bisikalo et al. | Information technology for TTF optimization of an information system for critical use that operates in aggressive cyber-physical space | |
CN115706671A (zh) | 网络安全防御方法、装置以及存储介质 | |
Dhamor et al. | Dynamic approaches for detection of DDoS threats using machine learning | |
Feng et al. | Vulnerability mining for Modbus TCP based on exception field positioning | |
Fadel et al. | HDLIDP: A Hybrid Deep Learning Intrusion Detection and Prevention Framework. | |
Fukač et al. | Increasing throughput of intrusion detection systems by hash-based short string pre-filter | |
Al-Bakaa et al. | Improving the performance of intrusion detection system through finding the most effective features | |
Schoinianakis et al. | MDiET: Malware Detection in Encrypted Traffic | |
CN113139878A (zh) | 一种配电自动化主站网络安全风险辨识方法及系统 | |
Peng et al. | Eagle: An agile approach to automaton updating in cloud security services | |
Khoa et al. | A deep transfer learning approach for flow-based intrusion detection in SDN-enabled network |
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 |