CN105721230B - 一种面向Modbus协议的模糊测试方法 - Google Patents

一种面向Modbus协议的模糊测试方法 Download PDF

Info

Publication number
CN105721230B
CN105721230B CN201410713390.7A CN201410713390A CN105721230B CN 105721230 B CN105721230 B CN 105721230B CN 201410713390 A CN201410713390 A CN 201410713390A CN 105721230 B CN105721230 B CN 105721230B
Authority
CN
China
Prior art keywords
fuzz testing
case
modbus
test case
fuzz
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
CN201410713390.7A
Other languages
English (en)
Other versions
CN105721230A (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.)
Shenyang Institute of Automation of CAS
Original Assignee
Shenyang Institute of Automation of CAS
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 Shenyang Institute of Automation of CAS filed Critical Shenyang Institute of Automation of CAS
Priority to CN201410713390.7A priority Critical patent/CN105721230B/zh
Publication of CN105721230A publication Critical patent/CN105721230A/zh
Application granted granted Critical
Publication of CN105721230B publication Critical patent/CN105721230B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明提供了一种面向Modbus协议的模糊测试方法,能够发现工业控制系统的现场设备对Modbus协议数据的处理缺陷。该方法先通过专家知识划分Modbus协议域为静态与动态部分,动态部分通过异常变异树方法构造测试数据集合,大幅度过滤不易引发故障的模糊测试用例;之后整合已公开的漏洞信息构造测试用例,融合到模糊测试用例;再之后基于公开漏洞信息的相似特征通过遗传算法变异出一个或多个测试用例,融合到模糊测试用例,最终生成面向Modbus协议的模糊测试用例,最后设计模糊测试用例的响应信息识别方法,判断缺陷是否存在。该方法实现的装置工作于Modbus TCP/IP层,只需简单点对点的网络配置,即能有效地发现现场设备对Modbus协议数据的处理缺陷。

Description

一种面向Modbus协议的模糊测试方法
技术领域
本文发明属于工业控制系统的安全技术领域,具体的说是一种面向Modbus协议的模糊测方法。
背景技术
工业控制系统(Industry Control System,ICS)进入电力行业较早,发展时间最长,采用的协议也最多,主要包括:Modbus、DNP3.0、IEC 60870-5-101/104、ICCP(即IEC60870-6或者TASE.2)和IEC 61850等;其它行业的ICS发展相对滞后,使用情况比较类似,主要包括Modbus、OPC等,所以Modbus协议是目前国内工业控制系统采用最多的协议之一,目前Modbus协议已经在石油、电力、能源、冶金等行业的工业控制系统或SCADA系统中进行了广泛应用。
工业控制系统的系统正面临新的安全威胁,针对工控系统的传统简单攻击手段已经演变为高级可持续性威胁(Advanced Persistent Threat,APT)。APT攻击范围广、针对性强,对能源、军工、金融、制造等国家重大基础设施将造成灾难性破坏,已经关系到国家的战略安全。由于目前APT攻击采用了“0-day”漏洞,所以针对APT攻击,没有有效的防御手段,唯一的方式就是在攻击者掌握“0-day”漏洞之前,发现“0-day”漏洞,对现场设备漏洞进行补丁升级。
正由于国内工业控制系统中Modbus协议应用广,且高级可持续性威胁的出现,已经关系到国家的战略安全,目前需要针对Modbus协议进行有效的模糊测试,发现现场设备中关于处理Modbus协议的缺陷,测试设备中关于Modbus的“0-day”漏洞,给出详细出错信息,有利于设备开发人员进行修复或补丁升级。
由于工业现场设备的安全测试与IT系统的安全测试在工业通信协议、工业控制系统漏洞库、测试反馈结果要支持嵌入式电子设备的特殊输出方式等方面存在着不同之处,需要对传统IT系统的模糊测试在以上三方面进行改进,并且要提出更有效的、符合工业专有协议的模糊测试方法。
综上,为了解决面向Modbus协议的模糊测试技术,本文提出了三方面构造模糊测试用例,并通过异常变异树减小冗余测试用例的情况,能智能、高效的发现现场设备中存在的Modbus协议处理缺陷。
发明内容
有鉴于此,本发明的目的是提供一种面向Modbus协议的模糊测试方法,基于人工分析与异常变异树技术,生成模糊测试用例,并设计响应识别模型,发现工业控制系统的现场设备对Modbus协议数据的处理缺陷。
本发明提供了一种面向Modbus协议的模糊测试方法,包括以下步骤:
1)生成三种测试用例:由异常变异树生成的模糊测试用例、基于公开漏洞信息生成的测试用例、基于公开漏洞信息的相似特征生成的测试用例;
2)将三种测试用例进行冗余整合处理,最终生成面向Modbus协议的模糊测试用例;
3)对发送的模糊测试用例,针对响应信息进行判断是否存在缺陷。
所述异常变异树生成的模糊测试用例的生成方法为:
Modbus协议域分析:将Modbus请求与响应报文划分为26类模糊测试用例;
专家知识划分静态与动态协议域:将Modbus协议域分析结果划分为动态与静态部分,所述静态部分不需要组合变异,通过每个类型的模板库生成固定常亮的测试用例;所述动态部分需要组合变异,根据异常变异树的每个属性的变异规定进行每个部分的变异;
协议域通过异常变异树生成模糊测试用例:针对每类功能码确定一个模板报文,静态与动态部分基于模板报文进行模糊测试用例生成。
所述动态部分协议域采用异常变异树方式产生模糊测试用例,其中变异技术产生模糊测试用例中域变化的情况,基于污点数据区域进行裁剪,大大缩减测试用例规模;树形方式对协议域变化情况与协议域格式进行管理,组合生成模糊测试用例。
所述基于公开漏洞信息生成的测试用例给出的具体协议域异常变异特征的描述,生成测试用例,融合到模糊测试用例中,并设置最高优先级。
所述公开漏洞构造测试用例包括:
通过NVD、CVE、中国国家信息安全漏洞库的公开内容,构造Modbus相关的已知漏洞库;
构造已知漏洞特征码为核心的一组交互数据流.
所述基于公开漏洞信息的相似特征生成的测试用例的生成方法为:
相似特征提取:基于协议域分析公开漏洞信息引起故障的特征,提取多个公开漏洞具有相似特征的部分;
在初始特征上变异构造测试用例:规定生成的测试用例的上限,基于遗传算法或第三方工具生成符合上限数量的测试用例。
所述冗余整合处理包括:将模糊测试用例、基于公开漏洞信息的相似特征生成的测试用例、基于公开漏洞信息生成的测试用例进行冗余处理,并设置有效的优先级。
所述响应识别包括:针对以太网信号、工业电平信号,判断响应信号属于哪个测试用例,进而判断漏洞是否存在。
所述判断漏洞存在的方法基于校正模型,实现精确的漏洞识别。
本发明在深入理解Modbus协议及模糊测试技术的基础上设计,有很好的全面性与实用性,能有效降低变异空间,使之能高效的发现现场设备中存在的Modbus缺陷。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图,均应落入本发明的保护范围。
图1为本发明中模糊测方法整体流程图;
图2为本发明中模糊测试方法的详细结构示意图;
图3为本发明中异常变异树组织示意图;
图4为本发明中基于Modbus协议的数据包格式域图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
考虑到工业现场设备的安全测试与IT系统的安全测试在工业通信协议、工业控制系统漏洞库、测试反馈结果要支持嵌入式电子设备的特殊输出方式等方面存在着缺陷,本发明提供了针对这些问题的解决方案,同时引入了异常变异树对协议域中动态与静态部分的不同处理方式,可以在保证测试报文能有效测试目标故障的同时,使模糊测试用例组合空间减少,加快测试效率。
图1是本发明方法的整体测试流程,图2为方法的详细模块结构示意图,以下根据图1的具体实现及图2的具体模块功能,实现待测目标中Modbus协议缺陷的发现,其中待测目标将包含所有支持Modbus协议的嵌入式电子设备,如可编程逻辑控制器(PLC)、分布式控制系统(DCS)、智能嵌入式设备(IED)等。
基于图1,本发明测试用例包含异常变异树生成的模糊测试用例、基于公开漏洞信息生成的测试用例、基于公开漏洞信息的相似特征生成的测试用例三个部分,之后将三个部分进行冗余处理,发送最终的模糊测试用例,对测试数据的响应信息进行漏洞识别处理。
第一部分测试用例,具体地,异常变异树生成的模糊测试用例部分:如图3所示,首先Modbus协议域规定了请求与响应报文均封装为IP头、TCP头、MBAP头(包括事务处理标识符、协议标识符、长度、单元标识符)、功能码、数据;分类Modbus协议为标准协议规定的21类功能码(1~21)、保留扩展功能码(22~64)、保留以备用户所用功能码(65~72)、非法功能功能码(73~119)、内部作用(120~127)、异常应答(128~255),共计26类模糊测试用例;之后确定各个分类中协议域规定的属性类型及范围,针对每个分类划分为静态与动态协议域,如事务处理标识符、协议标识符、单元标识符等划分为静态部分,寄存器地址、寄存器值、输出地址、输出值等划分为动态部分,不考虑功能码的变异情况;其中静态部分不需要组合变异,通过每个类型的模板库生成固定常亮的测试用例;动态部分需要组合变异,根据异常变异树的每个属性的变异规定进行每个部分的变异,如图4所示,常用的构造变异数据报文的依据有:针对缓冲区溢出漏洞主要考虑如“ABAB”“\A\”或“\..\”等污点数据;针对格式化字符串漏洞主要考虑如“%s%d”“%n%d”以及诸如此类的字符串;针对整数溢出主要考虑的方法往往是填充整数的边界值,如-1、0、1、0xff、0x ffff、0x ffffffff等;之后进行组合变异,静态部分与动态部分都能有效降低组合空间,提高测试效率。
第二部分测试用例,具体地,首先根据NVD(美国国家漏洞库)、CVE(公共漏洞和暴露)、中国国家信息安全漏洞库等公开内容,统计Modbus相关的已知漏洞,测试用例基于已知漏洞的特征码为核心,构造特定的测试用例报文。
第三部分测试用例,具体地,基于第二部分分析的已知漏洞的特征码,提取同属于一类的动态协议域之间相似内容或共同的行为特征的特征码,基于遗传算法或第三方工具等方式在提取的共同特征基础上,生成特定常量的测试用例;
具体地,对三部分测试用例进行冗余处理,并设置优先级从高到底依次为基于公开漏洞信息生成的测试用例、基于公开漏洞信息的相似特征生成的测试用例、异常变异树生成的模糊测试用例。
具体地,对已有的模糊测试用例的响应进行判断是否存在缺陷,这里针对以太网信号、工业电平信号,两个信号符合工业现场设备的特性,首先判断响应信号属于哪个测试用例,再之后根据返回信号的值,建立校正模型来精确判断是否存在缺陷,其中可采用非线性回归、多权重、自由定标等方法构造校正模型,实现精确的漏洞识别。

Claims (8)

1.一种面向Modbus协议的模糊测试方法,其特征在于,包括以下步骤:
1)生成三种测试用例:由异常变异树生成的模糊测试用例、基于公开漏洞信息生成的测试用例、基于公开漏洞信息的相似特征生成的测试用例;
2)将三种测试用例进行冗余整合处理,最终生成面向Modbus协议的模糊测试用例;
3)对发送的模糊测试用例,针对响应信息进行判断是否存在缺陷;
所述异常变异树生成的模糊测试用例的生成方法为:
Modbus协议域分析:将Modbus请求与响应报文划分为26类模糊测试用例;
专家知识划分静态与动态协议域:将Modbus协议域分析结果划分为动态与静态部分,所述静态部分不需要组合变异,通过每个类型的模板库生成固定常亮的测试用例;所述动态部分需要组合变异,根据异常变异树的每个属性的变异规定进行每个部分的变异;
协议域通过异常变异树生成模糊测试用例:针对每类功能码确定一个模板报文,静态与动态部分基于模板报文进行模糊测试用例生成。
2.根据权利要求1所述的一种面向Modbus协议的模糊测试方法,其特征在于,所述动态部分协议域采用异常变异树方式产生模糊测试用例,其中变异技术产生模糊测试用例中域变化的情况,基于污点数据区域进行裁剪,大大缩减测试用例规模;树形方式对协议域变化情况与协议域格式进行管理,组合生成模糊测试用例。
3.根据权利要求1所述的一种面向Modbus协议的模糊测试方法,其特征在于,所述基于公开漏洞信息生成的测试用例的生成方法为:通过具体协议域异常变异特征的描述生成测试用例,融合到模糊测试用例中,并设置最高优先级。
4.根据权利要求3所述的一种面向Modbus协议的模糊测试方法,其特征在于,所述公开漏洞信息生成的测试用例包括:
通过NVD、CVE、中国国家信息安全漏洞库的公开内容,构造Modbus相关的已知漏洞库;
构造已知漏洞特征码为核心的一组交互数据流。
5.根据权利要求1所述的一种面向Modbus协议的模糊测试方法,其特征在于,所述基于公开漏洞信息的相似特征生成的测试用例的生成方法为:
相似特征提取:基于协议域分析公开漏洞信息引起故障的特征,提取多个公开漏洞具有相似特征的部分;
在初始特征上变异构造测试用例:规定生成的测试用例的上限,基于遗传算法或第三方工具生成符合上限数量的测试用例。
6.根据权利要求1所述的一种面向Modbus协议的模糊测试方法,其特征在于,所述冗余整合处理包括:将模糊测试用例、基于公开漏洞信息的相似特征生成的测试用例、基于公开漏洞信息生成的测试用例进行冗余处理,并设置有效的优先级。
7.根据权利要求1所述的一种面向Modbus协议的模糊测试方法,其特征在于,所述响应信息包括:以太网信号、工业电平信号,针对上述两个信号分别判断出属于哪个测试用例,进而判断漏洞是否存在。
8.根据权利要求7所述的一种面向Modbus协议的模糊测试方法,其特征在于,所述判断漏洞存在的方法基于校正模型,实现精确的漏洞识别。
CN201410713390.7A 2014-11-30 2014-11-30 一种面向Modbus协议的模糊测试方法 Active CN105721230B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410713390.7A CN105721230B (zh) 2014-11-30 2014-11-30 一种面向Modbus协议的模糊测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410713390.7A CN105721230B (zh) 2014-11-30 2014-11-30 一种面向Modbus协议的模糊测试方法

Publications (2)

Publication Number Publication Date
CN105721230A CN105721230A (zh) 2016-06-29
CN105721230B true CN105721230B (zh) 2017-03-22

Family

ID=56145804

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410713390.7A Active CN105721230B (zh) 2014-11-30 2014-11-30 一种面向Modbus协议的模糊测试方法

Country Status (1)

Country Link
CN (1) CN105721230B (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106330601A (zh) * 2016-08-19 2017-01-11 北京匡恩网络科技有限责任公司 测试用例生成方法及装置
CN108255711A (zh) * 2017-12-29 2018-07-06 湖南优利泰克自动化系统有限公司 一种基于污点分析的plc固件模糊测试系统及测试方法
CN108337266B (zh) * 2018-03-07 2020-08-11 中国科学院信息工程研究所 一种高效的协议客户端漏洞发掘方法与系统
CN108924102B (zh) * 2018-06-21 2020-03-10 电子科技大学 高效的工控协议模糊测试方法
CN109889280B (zh) * 2019-02-22 2021-09-07 信联科技(南京)有限公司 一种nfc设备安全测试方法
CN109922063B (zh) * 2019-03-05 2022-02-22 南方电网科学研究院有限责任公司 多功能电表通信协议模糊测试的污数据生成方法
CN110113227B (zh) * 2019-04-18 2022-08-02 上海大学 一种变分自编码的模糊测试测试用例生成方法
CN110134590B (zh) * 2019-04-18 2023-04-18 上海大学 一种针对Modbus/TCP的天牛须模糊测试用例生成方法
CN111917692A (zh) * 2019-05-10 2020-11-10 北京车和家信息技术有限公司 模糊测试方法、装置、设备及计算机可读存储介质
CN110399300B (zh) * 2019-07-22 2021-06-22 南京大学 一种基于动态类型感知的Python软件模糊测试方法
CN110633221B (zh) * 2019-09-26 2022-06-28 信联科技(南京)有限公司 一种模糊测试自动化漏洞定位方法
CN111159044B (zh) * 2019-12-31 2023-05-23 上海绊糖信息科技有限公司 基于特征类型的自动化移动端rest协议模糊测试方法
CN112235244B (zh) * 2020-09-10 2023-03-24 北京威努特技术有限公司 异常报文的构造方法以及工控网络设备的检测方法、装置和介质
CN112948277A (zh) * 2021-04-30 2021-06-11 上海大学 一种基于耦合自编码器的模糊测试用例生成系统和方法
CN113934621A (zh) * 2021-09-06 2022-01-14 中国科学院信息工程研究所 模糊测试方法、系统、电子设备及介质
CN114491424B (zh) * 2021-12-31 2024-05-03 西安电子科技大学 基于模糊测试的二进制代码裁剪方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101859273A (zh) * 2009-04-07 2010-10-13 西门子(中国)有限公司 一种产生测试用例的方法及装置
CN103136098A (zh) * 2011-11-30 2013-06-05 西门子公司 模糊测试的方法、装置和系统
CN103812729A (zh) * 2014-02-19 2014-05-21 北京理工大学 一种网络协议模糊测试方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101859273A (zh) * 2009-04-07 2010-10-13 西门子(中国)有限公司 一种产生测试用例的方法及装置
CN103136098A (zh) * 2011-11-30 2013-06-05 西门子公司 模糊测试的方法、装置和系统
CN103812729A (zh) * 2014-02-19 2014-05-21 北京理工大学 一种网络协议模糊测试方法和装置

Also Published As

Publication number Publication date
CN105721230A (zh) 2016-06-29

Similar Documents

Publication Publication Date Title
CN105721230B (zh) 一种面向Modbus协议的模糊测试方法
CN111191767B (zh) 一种基于向量化的恶意流量攻击类型的判断方法
Pietre-Cambacédes et al. Cybersecurity myths on power control systems: 21 misconceptions and false beliefs
CN103905464B (zh) 基于形式化方法的网络安全策略验证系统及方法
CN103218398B (zh) 智能变电站scl文件差异性比较方法
CN108810034A (zh) 一种工业控制系统信息资产的安全防护方法
CN107438052A (zh) 一种面向未知工业通信协议规约的异常行为检测方法
CN106330601A (zh) 测试用例生成方法及装置
CN106656657A (zh) 基于工控协议的自适应漏洞挖掘框架
CN106529283B (zh) 一种面向软件定义网络的控制器安全性定量分析方法
CN104144148A (zh) 漏洞扫描方法和服务器、以及风险评估系统
CN108390861A (zh) 一种网络空间工控资产的威胁检测方法
CN103780614A (zh) 一种基于模拟攻击扩展的sql注入漏洞挖掘方法
CN105871861B (zh) 一种自学习协议规则的入侵检测方法
CN107566390A (zh) 一种基于威胁情报的工业控制系统网络安全性分析系统及方法
Otuoze et al. Electricity theft detection framework based on universal prediction algorithm
CN108712369B (zh) 一种工业控制网多属性约束访问控制决策系统和方法
Bhatia et al. Hybrid method of recovery: combining topology and optimization for transportation systems
CN105071991B (zh) 多个防火墙的ip连通性的测试方法
Liu et al. Detection and localization of cyber attacks on water treatment systems: an entropy-based approach
Candelieri et al. Supporting resilience management of water distribution networks through network analysis and hydraulic simulation
CN111625448B (zh) 协议包生成方法、装置、设备及存储介质
CN108564365A (zh) 一种基于区块链的智能电网的交易方法及系统
CN103678547A (zh) 一种自学习的数据库安全审计系统及方法
CN206195821U (zh) 一种工控网络安全检测装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant