CN110618942A - 一种工业控制协议细粒度控制的快速测试方法 - Google Patents
一种工业控制协议细粒度控制的快速测试方法 Download PDFInfo
- Publication number
- CN110618942A CN110618942A CN201910890048.7A CN201910890048A CN110618942A CN 110618942 A CN110618942 A CN 110618942A CN 201910890048 A CN201910890048 A CN 201910890048A CN 110618942 A CN110618942 A CN 110618942A
- Authority
- CN
- China
- Prior art keywords
- test case
- function code
- firewall
- test
- industrial control
- 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.)
- Pending
Links
- 238000010998 test method Methods 0.000 title claims abstract description 7
- 238000012360 testing method Methods 0.000 claims abstract description 51
- 230000006870 function Effects 0.000 claims abstract description 35
- 238000013515 script Methods 0.000 claims abstract description 16
- 238000004088 simulation Methods 0.000 claims abstract description 7
- BUGBHKTXTAQXES-UHFFFAOYSA-N Selenium Chemical compound [Se] BUGBHKTXTAQXES-UHFFFAOYSA-N 0.000 claims abstract description 5
- 229910052711 selenium Inorganic materials 0.000 claims abstract description 5
- 239000011669 selenium Substances 0.000 claims abstract description 5
- 238000000034 method Methods 0.000 claims description 8
- 238000004891 communication Methods 0.000 claims description 7
- 230000006399 behavior Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
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/3688—Test management for test execution, e.g. scheduling of test suites
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)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种工业控制协议细粒度控制的快速测试方法,包括以下步骤:S1、将数据应用单元解析后的每个功能码与地址组合成一个测试用例,在testlink上创建测试用例集合,对每个测试用例进行编号并通过python语言编写自动化的测试用例脚本;S2、防火墙采用web登录,通过selenium获取页面控件值,模拟用户操作,在防火墙设备上创建每个测试用例相对应的规则;S3、通过Windows模拟工具模拟不同类型的功能码,得到相应的功能码报文;S4、令功能码报文通过防火墙,通过测试用例脚本校验功能码报文与防火墙规则的匹配结果;S5、执行所有测试用例脚本后,将匹配结果回填到testlink并生成测试报告。
Description
技术领域
本发明涉及信息网络领域,尤其涉及一种工业控制协议细粒度控制的快速测试方法。
背景技术
随着信息技术的发展,工业控制系统逐步走向联网化。很多工业控制协议逐渐运行于工业以太网上,针对工业控制协议的解析与控制也更加重要。
工控网络中对于工控协议的细粒度控制要求更高,一旦有非法的行为出现,可能对工控网络造成破坏。目前,针对工业控制协议的细粒度识别都是基于手工测试,但是由于工控协议解析命令操作较多,手动测试耗费人力较大,并且人工操作有可能出现失误,当工业控制协议命令操作数目较大时,对测试时间及产品发布影响很大,因此使用自动化测试工业控制协议具有较高的应用价值。
发明内容
本发明目的是针对上述问题,提供一种可以实现自动化测试的工业控制协议细粒度控制的快速测试方法。
为了实现上述目的,本发明的技术方案是:
一种工业控制协议细粒度控制的快速测试方法,包括以下步骤:
S1、将数据应用单元解析后的每个功能码与地址组合成一个测试用例,在testlink上创建测试用例集合,对每个测试用例进行编号并通过python语言编写自动化的测试用例脚本;
S2、防火墙采用web登录,通过selenium获取页面控件值,模拟用户操作,在防火墙设备上创建每个测试用例相对应的规则;
S3、通过Windows模拟工具模拟不同类型的功能码,得到相应的功能码报文;
S4、令功能码报文通过防火墙,通过测试用例脚本校验功能码报文与防火墙规则的匹配结果;
S5、执行所有测试用例脚本后,将匹配结果回填到testlink并生成测试报告。
进一步的,所述步骤S1中的数据应用单元为Modbus通信帧。
进一步的,所述Modbus通信帧解析后分为功能码、地址、数据。
进一步的,所述步骤S3中的Windows模拟工具为modbus模拟器。
进一步的,所述步骤S4中,当功能码报文与防火墙规则不匹配时,其匹配结果为失败;当功能码报文与防火墙规则匹配时,其匹配结果为通过。
与现有技术相比,本发明具有的优点和积极效果是:
本发明通过工业控制协议的功能码,使用模拟工具自动发送所有类型功能码报文,节省了人力点击客户端工具所耗费的时间,并且避免了人力操作过程中出现失误等状况,有效提高了其测试效率以及测试准确度;另一方面,本发明可以自动创建防火墙规则,并且通过测试用例脚本自动校验匹配结果,一键式输出测试报告,其测试结果一目了然,降低了测试难度,使得不熟悉工业控制协议的人也可以轻易的完成测试操作,给人们的操作带来了便利。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的框架流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
如图1所示,经研究发现,深度解析后的工业控制协议具有规整性,如Modbus协议(一种用于工控系统的串行通信协议)。Modbus通信帧被称为应用数据单元(ApplicationData Unit,ADU)。其格式如下:
附加地址 | 功能码 | 数据 | 差错校验 |
解析后可能分为功能码,地址,数据等。其规则可能具有如下形式:
Drop | sip | dir | Dip | func | address | data |
即动作(drop),源地址(sip),方向(dir),目的地址(dip),功能码(func),地址(address),数据(data)。
Modbus通讯规约定义功能号为1到127,为了遍历Modbus协议的所有功能码及地址是否与防火墙设备规则匹配,首先使用自动化生成各种功能码与地址的组合,在防火墙设备上创建相对应的规则,然后利用modbus工具模拟发送各种功能码报文,查看报文是否匹配防火墙规则;这一整套流程均采用自动化的方式实现,执行脚本后,最后直接输出所有功能码是否通过测试的报告。
本技术方案使用selenium+pywinauto+testlink的方式实现,首先在testlink上创建测试用例集合,每个功能码与地址组合成一个用例,获取用例编号,编写自动化用例脚本。搭建好实际环境,防火墙采用web登录,第一步,通过selenium获取页面控件值,模拟用户操作,配置协议深度解析相关规则,第二步,通过python语言编写脚本点击Windows工具(modbus模拟器),模拟不同类型功能码,产生相应报文,报文通过防火墙后,通过脚本校验规则匹配结果,批量执行所有脚本后,生成测试报告,并回填结果到testlink,给相关测试人员发送测试报告邮件。
本发明通过工业控制协议的功能码,使用模拟工具自动发送所有类型功能码报文,节省了人力点击客户端工具所耗费的时间,并且避免了人力操作过程中出现失误等状况,有效提高了其测试效率以及测试准确度;另一方面,本发明可以自动创建防火墙规则,并且通过测试用例脚本自动校验匹配结果,一键式输出测试报告,其测试结果一目了然,降低了测试难度,使得不熟悉工业控制协议的人也可以轻易的完成测试操作,给人们的操作带来了便利。
Claims (5)
1.一种工业控制协议细粒度控制的快速测试方法,其特征在于:包括以下步骤:
S1、将数据应用单元解析后的每个功能码与地址组合成一个测试用例,在testlink上创建测试用例集合,对每个测试用例进行编号并通过python语言编写自动化的测试用例脚本;
S2、防火墙采用web登录,通过selenium获取页面控件值,模拟用户操作,在防火墙设备上创建每个测试用例相对应的规则;
S3、通过Windows模拟工具模拟不同类型的功能码,得到相应的功能码报文;
S4、令功能码报文通过防火墙,通过测试用例脚本校验功能码报文与防火墙规则的匹配结果;
S5、执行所有测试用例脚本后,将匹配结果回填到testlink并生成测试报告。
2.如权利要求1所述的工业控制协议细粒度控制的快速测试方法,其特征在于:所述步骤S1中的数据应用单元为Modbus通信帧。
3.如权利要求2所述的工业控制协议细粒度控制的快速测试方法,其特征在于:所述Modbus通信帧解析后分为功能码、地址、数据。
4.如权利要求1所述的工业控制协议细粒度控制的快速测试方法,其特征在于:所述步骤S3中的Windows模拟工具为modbus模拟器。
5.如权利要求1所述的工业控制协议细粒度控制的快速测试方法,其特征在于:所述步骤S4中,当功能码报文与防火墙规则不匹配时,其匹配结果为失败;当功能码报文与防火墙规则匹配时,其匹配结果为通过。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910890048.7A CN110618942A (zh) | 2019-09-20 | 2019-09-20 | 一种工业控制协议细粒度控制的快速测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910890048.7A CN110618942A (zh) | 2019-09-20 | 2019-09-20 | 一种工业控制协议细粒度控制的快速测试方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110618942A true CN110618942A (zh) | 2019-12-27 |
Family
ID=68923713
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910890048.7A Pending CN110618942A (zh) | 2019-09-20 | 2019-09-20 | 一种工业控制协议细粒度控制的快速测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110618942A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111444108A (zh) * | 2020-04-14 | 2020-07-24 | 北京天地和兴科技有限公司 | 一种基于s7工业协议的行为审计自动化测试方法 |
CN111464552A (zh) * | 2020-04-11 | 2020-07-28 | 北京天地和兴科技有限公司 | 一种基于包过滤规则的防火墙自动化测试系统 |
CN113110993A (zh) * | 2021-04-12 | 2021-07-13 | 深圳市吉祥腾达科技有限公司 | 自动化测试平台集成对接testlink系统的方法 |
CN115801643A (zh) * | 2022-10-28 | 2023-03-14 | 北京六方云信息技术有限公司 | 协议解析功能的测试方法、装置、终端设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101631108A (zh) * | 2008-07-16 | 2010-01-20 | 国际商业机器公司 | 为网络服务器的防火墙产生规则文件的方法和系统 |
CN103077114A (zh) * | 2012-12-27 | 2013-05-01 | 武汉烽火富华电气有限责任公司 | 基于测温装置通信协议的自动化测试方法 |
CN104820635A (zh) * | 2015-04-07 | 2015-08-05 | 南京国电南自电网自动化有限公司 | 一种基于动态脚本语义解析的自闭环规约健壮性测试方法 |
CN108062033A (zh) * | 2017-11-29 | 2018-05-22 | 杭州九略智能科技有限公司 | 基于Linux系统的工业协议自动化仿真测试系统及方法 |
-
2019
- 2019-09-20 CN CN201910890048.7A patent/CN110618942A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101631108A (zh) * | 2008-07-16 | 2010-01-20 | 国际商业机器公司 | 为网络服务器的防火墙产生规则文件的方法和系统 |
CN103077114A (zh) * | 2012-12-27 | 2013-05-01 | 武汉烽火富华电气有限责任公司 | 基于测温装置通信协议的自动化测试方法 |
CN104820635A (zh) * | 2015-04-07 | 2015-08-05 | 南京国电南自电网自动化有限公司 | 一种基于动态脚本语义解析的自闭环规约健壮性测试方法 |
CN108062033A (zh) * | 2017-11-29 | 2018-05-22 | 杭州九略智能科技有限公司 | 基于Linux系统的工业协议自动化仿真测试系统及方法 |
Non-Patent Citations (1)
Title |
---|
张仁斌等: ""基于Modbus功能码细粒度过滤算法的研究"", 《计算机应用研究》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111464552A (zh) * | 2020-04-11 | 2020-07-28 | 北京天地和兴科技有限公司 | 一种基于包过滤规则的防火墙自动化测试系统 |
CN111444108A (zh) * | 2020-04-14 | 2020-07-24 | 北京天地和兴科技有限公司 | 一种基于s7工业协议的行为审计自动化测试方法 |
CN113110993A (zh) * | 2021-04-12 | 2021-07-13 | 深圳市吉祥腾达科技有限公司 | 自动化测试平台集成对接testlink系统的方法 |
CN115801643A (zh) * | 2022-10-28 | 2023-03-14 | 北京六方云信息技术有限公司 | 协议解析功能的测试方法、装置、终端设备及存储介质 |
CN115801643B (zh) * | 2022-10-28 | 2023-09-22 | 北京六方云信息技术有限公司 | 协议解析功能的测试方法、装置、终端设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110618942A (zh) | 一种工业控制协议细粒度控制的快速测试方法 | |
US8336102B2 (en) | Delivering malformed data for fuzz testing to software applications | |
CN107220539B (zh) | 基于需求的ima安全验证分析方法 | |
CN111464552B (zh) | 一种基于包过滤规则的防火墙自动化测试系统 | |
CN102123058A (zh) | 一种对网络协议解码器进行测试的测试设备和方法 | |
CN113572726B (zh) | 一种多模态网络控制-数据平面一致性校验方法及装置 | |
US20150286555A1 (en) | System and method for converting the business processes to test-centric activity diagrams | |
CN106330483A (zh) | 信息获取方法、客户端设备和服务端设备 | |
CN113157385A (zh) | 一种基于图神经网络的智能合约漏洞自动化检测方法 | |
CN104899134A (zh) | 域名注册服务器自动化测试系统和方法 | |
Zolotukhin et al. | Using Intelligent Testing as a Tool to Improve the Quality of Transport Information Systems | |
EP1780946B1 (en) | Consensus testing of electronic system | |
CN103902429A (zh) | 在自动化测试中进行预警的方法、服务器和系统 | |
CN110266554B (zh) | 一种私有通信协议的测试方法 | |
CN115658549B (zh) | 一种对源代码形式化验证方法 | |
CN103856373B (zh) | 基于HTTP协议变异的Web系统健壮性测试方法 | |
CN110798371A (zh) | 一种私有通信协议的测试方法 | |
CN116346660A (zh) | 基于依赖替换服务的数据处理方法、装置、设备及介质 | |
CN115934559A (zh) | 表单智能测试系统的测试方法 | |
US20160224456A1 (en) | Method for verifying generated software, and verifying device for carrying out such a method | |
Lee et al. | Development of verification and conformance testing tools for a railway signaling communication protocol | |
CN101159633B (zh) | 在计算机上模拟组网环境的单板软件测试方法及系统 | |
CN108366040B (zh) | 一种可编程防火墙的逻辑代码检测方法、装置及电子设备 | |
JP2021129203A (ja) | 通信解析装置、通信解析プログラム及び通信解析方法 | |
CN106992980B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191227 |