CN109818973B - 一种基于串接方式的协议模糊测试方法 - Google Patents
一种基于串接方式的协议模糊测试方法 Download PDFInfo
- Publication number
- CN109818973B CN109818973B CN201910189084.0A CN201910189084A CN109818973B CN 109818973 B CN109818973 B CN 109818973B CN 201910189084 A CN201910189084 A CN 201910189084A CN 109818973 B CN109818973 B CN 109818973B
- Authority
- CN
- China
- Prior art keywords
- message
- test
- target end
- address
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Maintenance And Management Of Digital Transmission (AREA)
Abstract
本发明涉及一种基于串接方式的协议模糊测试方法,解决了传统模糊测试工具中的测试功能局限、测试效率低、测试深度不够的问题,其中,串接测试是基于已经建立的连接,避免了传统测试需要重复建立连接,缩短了测试时间,提高了测试效率;而且串接测试具备对客户端和服务端同时测试的能力,弥补了传统模糊测试引擎只能测试服务端的缺陷,提升了测试的可用性,不仅如此,基于匹配的模糊测试机制,允许模糊测试从希望介入的地方和时间开始,提升了测试的灵活性,进而能够挖掘出更多的潜在漏洞。
Description
技术领域
本发明涉及一种基于串接方式的协议模糊测试方法,属于气象雷达信号检测技术领域。
背景技术
工业控制***是我国重要基础设施自动化生产的基础组件,安全的重要性可见一斑,然而受到核心技术限制、***结构复杂、缺乏安全与管理标准等诸多因素影响,随时可能遭受来自敌对势力、商业间谍、网络犯罪团伙的破坏,从而产生了日益严重的安全威胁,针对这些安全威胁,目前模糊测试工具就应运而生,用来挖掘设备的未知漏洞并验证已知漏洞。
传统的模糊测试工具主要针对服务端进行测试,不具备对客户端的测试能力,攻击方容易利用客户端的潜在漏洞对服务端发起攻击。传统的模糊测试工具是通过模拟协议客户端对服务端进行变异测试来挖掘漏洞,这种测试方式每测试一个用例需要建立一次会话连接,测试效率低下。对于某些会话建立过程需要加密签名认证的工控协议,传统的模糊测试工具很难建立起完整的会话过程,不能达到对上层协议测试的目的,也就不能挖掘出更深层次的潜在漏洞。
发明内容
本发明所要解决的技术问题是提供一种能够解决传统模糊测试工具中测试功能局限、测试效率低、测试深度不够问题的基于串接方式的协议模糊测试方法。
本发明为了解决上述技术问题采用以下技术方案:本发明设计了一种基于串接方式的协议模糊测试方法,通过串接于终端区域与服务器区域之间通信链路上的模糊测试装置,实现对终端与服务器的两向测试,测试方法由模糊测试装置执行如下步骤:
步骤A.由终端区域与服务器区域之间的通信链路上捕获报文,并进入步骤B;
步骤B.针对所捕获的报文进行匹配,判断该报文是否符合预设测试要求,是则将该报文作为待处理报文,并进入步骤C,否则按该报文所对应的目标端地址,继续发送该报文,并返回步骤A;
步骤C.根据该测试要求,调取对应变异类型、以及相对应的监测策略,然后采用该变异类型针对待处理报文进行变异处理,获得变异报文,并按该待处理报文所对应的目标端地址,继续发送该变异报文,然后进入步骤D;
步骤D.由模糊测试装置监测该目标端,判断监测结果是否与监测策略相符合,是则表示该测试要求所测试的目标端工作正常;否则表示该测试要求所测试的目标端工作异常。
作为本发明的一种优选技术方案,所述步骤B包括如下步骤:
步骤B1.针对所捕获的报文,判断该报文的上下行方向是否符合预设测试要求中的上下行方向,是则进入步骤B2;否则返回步骤A;
步骤B2.针对该报文进行解析,获得该报文所对应的起始端地址、目标端地址,并判断是否符合该测试要求中的起始端地址、目标端地址,是则进入步骤B3;否则返回步骤A;
步骤B3.判断该报文的长度是否符合该测试要求中的报文长度,是则将该报文作为待处理报文,并进入步骤C,否则按该报文所对应的目标端地址,继续发送该报文,并返回步骤A。
作为本发明的一种优选技术方案,所述步骤B2中,针对所捕获的报文进行解析,获得该报文中二层的MAC和三层的IP,并与所述测试要求中客户端、服务器端的MAC、IP依次进行匹配,实现该报文所对应起始端地址、目标端地址与该测试要求中起始端地址、目标端地址是否符合的判断。
作为本发明的一种优选技术方案,所述步骤B2中,针对所捕获的报文进行解析,获得该报文中二层的MAC、三层的IP和四层的port,并与所述测试要求中客户端、服务器端的MAC、IP、port依次进行匹配,实现该报文所对应起始端地址、目标端地址与该测试要求中起始端地址、目标端地址是否符合的判断。
作为本发明的一种优选技术方案,所述步骤C中变异类型包括结构化变异或错误注入,其中错误注入的变异值来源于数据库或变异函数的参数。
作为本发明的一种优选技术方案,所述步骤D包括如下步骤:
步骤D1.若该目标端接收、并根据该变异报文获得响应结果,则该响应结果向该待处理报文所对应的起始端地址方向进行发送,由模糊测试装置对该响应结果进行截获,并进入步骤D2;
若该目标端接收该变异报文,但无响应结果,则由模糊测试装置向该目标端发送符合预设测试要求的正常报文,即该变异报文执行变异操作之前的报文,该目标端接收该正常报文,并判断该目标端是否根据该正常报文获得响应结果,是则由模糊测试装置对该响应结果进行截获,并进入步骤D2;否则进入步骤D3;
步骤D2.判断所获响应结果是否与监测策略相符合,是则表示该测试要求所测试的目标端工作正常;否则表示该测试要求所测试的目标端工作异常;
步骤D3.由模糊测试装置判断该目标端的进程是否存活,是则表示该测试要求所测试的目标端工作正常,否则表示该测试要求所测试的目标端工作异常。
本发明所述一种基于串接方式的协议模糊测试方法,采用以上技术方案与现有技术相比,具有以下技术效果:
本发明所设计基于串接方式的协议模糊测试方法,解决了传统模糊测试工具中的测试功能局限、测试效率低、测试深度不够的问题,其中,串接测试是基于已经建立的连接,避免了传统测试需要重复建立连接,缩短了测试时间,提高了测试效率;而且串接测试具备对客户端和服务端同时测试的能力,弥补了传统模糊测试引擎只能测试服务端的缺陷,提升了测试的可用性,同时,还能在协议客户端与服务端建立起完整的会话的基础上对两端同时测试,而且能够在此会话基础上进行成千上万次的变异测试;不仅如此,基于匹配的模糊测试机制,允许模糊测试从希望介入的地方和时间开始,提升了测试的灵活性,进而能够挖掘出更多的潜在漏洞。
附图说明
图1是本发明设计基于串接方式的协议模糊测试方法的流程图;
图2是本发明设计基于串接方式的协议模糊测试方法应用的硬件拓扑示意图;
图3是本发明设计中模糊测试装置的应用实施例结构设计示意图。
具体实施方式
下面结合说明书附图对本发明的具体实施方式作进一步详细的说明。
本发明设计了一种基于串接方式的协议模糊测试方法,通过串接于终端区域与服务器区域之间通信链路上的模糊测试装置,实现对终端与服务器的两向测试,实际应用当中,对于模糊测试装置相对于终端区域、服务器区域的连接拓扑结构诸如图2设计,终端区域与服务器区域分别依次通过交换机、路由器后对接模糊测试装置,即实现模糊测试装置串接于终端区域与服务器区域之间通信链路上,并且实际应用中,模糊测试装置的结构设计参照如图3设计。
本发明所设计一种基于串接方式的协议模糊测试方法,实际应用当中,如图1所示,测试方法由模糊测试装置执行如下步骤。
步骤A.由终端区域与服务器区域之间的通信链路上捕获报文,并进入步骤B。
步骤B.针对所捕获的报文进行匹配,判断该报文是否符合预设测试要求,是则将该报文作为待处理报文,并进入步骤C,否则按该报文所对应的目标端地址,继续发送该报文,并返回步骤A。
上述步骤B实际应用中,具体执行如下步骤。
步骤B1.针对所捕获的报文,判断该报文的上下行方向是否符合预设测试要求中的上下行方向,是则进入步骤B2;否则返回步骤A。
步骤B2.针对所捕获的报文进行解析,获得该报文中二层的MAC和三层的IP,并与所述测试要求中客户端、服务器端的MAC、IP依次进行匹配,实现该报文所对应起始端地址、目标端地址与该测试要求中起始端地址、目标端地址是否符合的判断,是则进入步骤B3;否则返回步骤A。
上述步骤B2在实际应用中,对于某些应用层的协议,还要解析到四层的port,即针对所捕获的报文进行解析,获得该报文中二层的MAC、三层的IP和四层的port,并与所述测试要求中客户端、服务器端的MAC、IP、port依次进行匹配,实现该报文所对应起始端地址、目标端地址与该测试要求中起始端地址、目标端地址是否符合的判断。
步骤B3.判断该报文的长度是否符合该测试要求中的报文长度,是则将该报文作为待处理报文,并进入步骤C,否则按该报文所对应的目标端地址,继续发送该报文,并返回步骤A。
步骤C.根据该测试要求,调取对应变异类型、以及相对应的监测策略,然后采用该变异类型针对待处理报文进行变异处理,获得变异报文,并按该待处理报文所对应的目标端地址,继续发送该变异报文,然后进入步骤D。
上述步骤C中,变异类型包括结构化变异或错误注入,其中错误注入的变异值来源于数据库(fault=″Integer.Unsigned16;″)或变异函数的参数([‘θe ff’,’θa θa’]。
步骤D.由模糊测试装置监测该目标端,判断监测结果是否与监测策略相符合,是则表示该测试要求所测试的目标端工作正常;否则表示该测试要求所测试的目标端工作异常。
实际应用中,上述步骤D具体执行如下步骤。
步骤D1.若该目标端接收、并根据该变异报文获得响应结果,则该响应结果向该待处理报文所对应的起始端地址方向进行发送,由模糊测试装置对该响应结果进行截获,并进入步骤D2。
若该目标端接收该变异报文,但无响应结果,则由模糊测试装置向该目标端发送符合预设测试要求的正常报文,即该变异报文执行变异操作之前的报文,该目标端接收该正常报文,并判断该目标端是否根据该正常报文获得响应结果,是则由模糊测试装置对该响应结果进行截获,并进入步骤D2;否则进入步骤D3。
步骤D2.判断所获响应结果是否与监测策略相符合,是则表示该测试要求所测试的目标端工作正常;否则表示该测试要求所测试的目标端工作异常。
步骤D3.由模糊测试装置判断该目标端的进程是否存活,是则表示该测试要求所测试的目标端工作正常,否则表示该测试要求所测试的目标端工作异常。
将上述所设计基于串接方式的协议模糊测试方法,设计测试脚本如下:
<?xml version=″1.θ″encoding=″UTF-8″?>
<script name=″ModbusTCP.ReadCoils.Test″version=″2.θ.θ″>
<test>
<send_match channel=″DEFAULT″>
<PDU name=″Read_Coils_Request″protocol=″ModbusTCP″>
<field name=″transaction_identifier″type=″Unsigned16″mutate=″replace([‘θe ff’,’θa θa’]);″fault=″Integer.Unsigned16;″>ff ff</field>
………
<field name=″function_code″type=″Unsigned8″constraint=″check();″>θ1</field>
</PDU>
</send_match>
<recv_match channel=″DEFAULT″>
<PDU name=″Read_Coils_Response″protocol=″ModbusTCP″>
<field name=″transaction_identifier″type=″Unsigned16″mutate=″replace();″fault=″Integer.Unsigned16;″>ff ff</field>
………
<field name=″function_code″type=″Unsigned8″constraint=″check($check_param,[‘θ1’,’θ2’]);″>θ1
</field>
</PDU>
</recv_match>
</test>
其中,<send_match>节点负责处理客户端到服务端方向的网络报文,<recv_match>节点反之。其中constraint="check();"用来匹配满足特定功能的报文,mutate="replace();"用来对匹配的报文做变异。
本双向测试脚本对客户端到服务端的报文、服务端到客户端的报文都能进行变异测试,从而具备对客户端和服务端的双向测试能力。而且,本脚本引入基于匹配的模糊测试机制,即只有当正常通信过程中出现了满足check()函数条件的报文,测试引擎才进行变异测试,这就允许模糊测试从任何希望介入的地方和时间开始,具有更好的灵活性。
将上述所设计基于串接方式的协议模糊测试方法进行具体应用,以Modbus/TCP协议串接测试为例来说明本发明的完整测试流程:
1、将modbus被测设备服务端、安装了客户端工具的终端分别与测试装置的两个网口连接,启动测试装置的报文转发进程,保障客户端跟服务端的网络能连通。
2、分别启动modbus服务端程序和客户端工具,保障两端的read_coils功能(功能码01)能够正常工作。
3、在测试装置上启动串接测试任务,测试功能码为01的响应报文,对其序号字段(transaction_identifier)做变异,然后发送到客户端,同时探测客户端进程是否存活,如果存活,客户端与服务端的通信会继续,则执行下一个用例;如果不存活,则在测试报告中记录该漏洞。
4、测试功能码为01的请求报文,对其序号字段(transaction_identifier)做变异,然后发送到服务端,同时探测服务端进程是否存活,如果存活,客户端与服务端的通信会继续,则执行下一个用例;如果不存活,则在测试报告中记录该漏洞。
5、直到执行完该任务下所有的测试用例,完成测试任务。
上述技术方案所设计基于串接方式的协议模糊测试方法,解决了传统模糊测试工具中的测试功能局限、测试效率低、测试深度不够的问题,其中,串接测试是基于已经建立的连接,避免了传统测试需要重复建立连接,缩短了测试时间,提高了测试效率;而且串接测试具备对客户端和服务端同时测试的能力,弥补了传统模糊测试引擎只能测试服务端的缺陷,提升了测试的可用性,同时,还能在协议客户端与服务端建立起完整的会话的基础上对两端同时测试,而且能够在此会话基础上进行成千上万次的变异测试;不仅如此,基于匹配的模糊测试机制,允许模糊测试从希望介入的地方和时间开始,提升了测试的灵活性,进而能够挖掘出更多的潜在漏洞。
上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。
Claims (4)
1.一种基于串接方式的协议模糊测试方法,其特征在于:通过串接于终端区域与服务器区域之间通信链路上的模糊测试装置,实现对终端与服务器的两向测试,测试方法由模糊测试装置执行如下步骤:
步骤A.由终端区域与服务器区域之间的通信链路上捕获报文,并进入步骤B;
步骤B.针对所捕获的报文进行匹配,判断该报文是否符合预设测试要求,是则将该报文作为待处理报文,并进入步骤C,否则按该报文所对应的目标端地址,继续发送该报文,并返回步骤A;
上述步骤B包括如下步骤:
步骤B1.针对所捕获的报文,判断该报文的上下行方向是否符合预设测试要求中的上下行方向,是则进入步骤B2;否则返回步骤A;
步骤B2.针对该报文进行解析,获得该报文所对应的起始端地址、目标端地址,并判断是否符合该测试要求中的起始端地址、目标端地址,是则进入步骤B3;否则返回步骤A;
步骤B3.判断该报文的长度是否符合该测试要求中的报文长度,是则将该报文作为待处理报文,并进入步骤C,否则按该报文所对应的目标端地址,继续发送该报文,并返回步骤A;
步骤C.根据该测试要求,调取对应变异类型、以及相对应的监测策略,然后采用该变异类型针对待处理报文进行变异处理,获得变异报文,并按该待处理报文所对应的目标端地址,继续发送该变异报文,然后进入步骤D;
步骤D.由模糊测试装置监测该目标端,判断监测结果是否与监测策略相符合,是则表示该测试要求所测试的目标端工作正常;否则表示该测试要求所测试的目标端工作异常;
上述步骤D包括如下步骤:
步骤D1.若该目标端接收、并根据该变异报文获得响应结果,则该响应结果向该待处理报文所对应的起始端地址方向进行发送,由模糊测试装置对该响应结果进行截获,并进入步骤D2;若该目标端接收该变异报文,但无响应结果,则由模糊测试装置向该目标端发送符合预设测试要求的正常报文,即该变异报文执行变异操作之前的报文,该目标端接收该正常报文,并判断该目标端是否根据该正常报文获得响应结果,是则由模糊测试装置对该响应结果进行截获,并进入步骤D2;否则进入步骤D3;
步骤D2.判断所获响应结果是否与监测策略相符合,是则表示该测试要求所测试的目标端工作正常;否则表示该测试要求所测试的目标端工作异常;
步骤D3.由模糊测试装置判断该目标端的进程是否存活,是则表示该测试要求所测试的目标端工作正常,否则表示该测试要求所测试的目标端工作异常。
2.根据权利要求1所述一种基于串接方式的协议模糊测试方法,其特征在于,所述步骤B2中,针对所捕获的报文进行解析,获得该报文中二层的MAC和三层的IP,并与所述测试要求中客户端、服务器端的MAC、IP依次进行匹配,实现该报文所对应起始端地址、目标端地址与该测试要求中起始端地址、目标端地址是否符合的判断。
3.根据权利要求1所述一种基于串接方式的协议模糊测试方法,其特征在于,所述步骤B2中,针对所捕获的报文进行解析,获得该报文中二层的MAC、三层的IP和四层的port,并与所述测试要求中客户端、服务器端的MAC、IP、port依次进行匹配,实现该报文所对应起始端地址、目标端地址与该测试要求中起始端地址、目标端地址是否符合的判断。
4.根据权利要求1所述一种基于串接方式的协议模糊测试方法,其特征在于,所述步骤C中变异类型包括结构化变异或错误注入,其中错误注入的变异值来源于数据库或变异函数的参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910189084.0A CN109818973B (zh) | 2019-03-13 | 2019-03-13 | 一种基于串接方式的协议模糊测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910189084.0A CN109818973B (zh) | 2019-03-13 | 2019-03-13 | 一种基于串接方式的协议模糊测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109818973A CN109818973A (zh) | 2019-05-28 |
CN109818973B true CN109818973B (zh) | 2021-06-04 |
Family
ID=66608917
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910189084.0A Active CN109818973B (zh) | 2019-03-13 | 2019-03-13 | 一种基于串接方式的协议模糊测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109818973B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111367815B (zh) * | 2020-03-24 | 2022-03-15 | 中国电子科技网络信息安全有限公司 | 一种基于人机协同的软件漏洞模糊测试方法 |
CN115001829B (zh) * | 2022-06-07 | 2024-06-07 | 中国软件评测中心(工业和信息化部软件与集成电路促进中心) | 协议漏洞挖掘方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102075508A (zh) * | 2010-09-02 | 2011-05-25 | 北京神州绿盟信息安全科技股份有限公司 | 针对网络协议的漏洞挖掘***和方法 |
CN103023710A (zh) * | 2011-09-21 | 2013-04-03 | 阿里巴巴集团控股有限公司 | 一种安全测试***和方法 |
CN105099811A (zh) * | 2015-06-03 | 2015-11-25 | 北京金山安全软件有限公司 | 一种接口测试方法和装置 |
CN106713284A (zh) * | 2016-12-02 | 2017-05-24 | 国网浙江省电力公司电力科学研究院 | 一种工控安全检测***及工控*** |
-
2019
- 2019-03-13 CN CN201910189084.0A patent/CN109818973B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102075508A (zh) * | 2010-09-02 | 2011-05-25 | 北京神州绿盟信息安全科技股份有限公司 | 针对网络协议的漏洞挖掘***和方法 |
CN103023710A (zh) * | 2011-09-21 | 2013-04-03 | 阿里巴巴集团控股有限公司 | 一种安全测试***和方法 |
CN105099811A (zh) * | 2015-06-03 | 2015-11-25 | 北京金山安全软件有限公司 | 一种接口测试方法和装置 |
CN106713284A (zh) * | 2016-12-02 | 2017-05-24 | 国网浙江省电力公司电力科学研究院 | 一种工控安全检测***及工控*** |
Also Published As
Publication number | Publication date |
---|---|
CN109818973A (zh) | 2019-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10873594B2 (en) | Test system and method for identifying security vulnerabilities of a device under test | |
Izhikevich et al. | {LZR}: Identifying unexpected internet services | |
CN110209583B (zh) | 安全测试方法、装置、***、设备和存储介质 | |
CN108737417A (zh) | 一种面向工业控制***的脆弱性检测方法 | |
CN103916384A (zh) | 一种面向gap隔离交换设备的渗透测试方法 | |
CN109818973B (zh) | 一种基于串接方式的协议模糊测试方法 | |
CN111510436B (zh) | 网络安全*** | |
CN114244570B (zh) | 终端非法外联监测方法、装置、计算机设备和存储介质 | |
CN105827613A (zh) | 一种针对变电站工控设备信息安全的测试方法及*** | |
EP4072066A1 (en) | Method for automatic derivation of attack paths in a network | |
CN110691097A (zh) | 一种基于hpfeeds协议的工控蜜罐的***及其工作方法 | |
US20230261940A1 (en) | Network Intention Monitoring Method, Network Intention Monitoring System, and Storage Medium | |
Kang et al. | Cyber threats and defence approaches in SCADA systems | |
CN103067216B (zh) | 跨安全区的反向通信方法、装置及*** | |
Paul et al. | Towards the protection of industrial control systems–conclusions of a vulnerability analysis of profinet IO | |
CN111683044A (zh) | 一种正向隔离装置策略自动检测方法及装置 | |
CN111698110A (zh) | 一种网络设备性能分析方法、***、设备及计算机介质 | |
CN110753014A (zh) | 基于流量转发的威胁感知方法、设备、装置及存储介质 | |
Ishibashi et al. | Which packet did they catch? Associating NIDS alerts with their communication sessions | |
JP5402304B2 (ja) | 診断プログラム、診断装置、診断方法 | |
CN111585972B (zh) | 面向网闸的安全防护方法、装置及网络*** | |
CN113676940A (zh) | 用于5g电网切片的隔离测试方法以及隔离测试*** | |
WO2012128883A1 (en) | Verifying availability and reachability through a network device | |
CN110943893A (zh) | 服务器间连通性的验证方法及装置 | |
Albadri | Development of a network packet sniffing tool for internet protocol generations |
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 |