CN111628900A - 基于网络协议的模糊测试方法、装置和计算机可读介质 - Google Patents

基于网络协议的模糊测试方法、装置和计算机可读介质 Download PDF

Info

Publication number
CN111628900A
CN111628900A CN201910150143.3A CN201910150143A CN111628900A CN 111628900 A CN111628900 A CN 111628900A CN 201910150143 A CN201910150143 A CN 201910150143A CN 111628900 A CN111628900 A CN 111628900A
Authority
CN
China
Prior art keywords
message
network protocol
triggered
server
new network
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
Application number
CN201910150143.3A
Other languages
English (en)
Other versions
CN111628900B (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.)
Siemens AG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Priority to CN201910150143.3A priority Critical patent/CN111628900B/zh
Publication of CN111628900A publication Critical patent/CN111628900A/zh
Application granted granted Critical
Publication of CN111628900B publication Critical patent/CN111628900B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/24Negotiation of communication capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/18Protocol analysers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Maintenance And Management Of Digital Transmission (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本公开涉及模糊测试技术,尤其涉及一种基于网络协议的模糊测试方法、装置和计算机可读介质,以优化测试过程。本发明实施例提供的模糊测试方法包括:模糊测试工具(20)接收来自客户端(10)且欲发送至服务器(30)的报文,其中报文符合一种网络协议;对报文进行变异;将变异后的报文发送至服务器(30);获取变异后服务器(30)和客户端(10)之间传送的符合网络协议的至少一个第二报文;基于至少一个第二报文判断是否有新的网络协议流程被触发;若有新的网络协议流程被触发,则对应于新的网络协议流程生成变异组;在变异组中记录所进行的变异的信息。

Description

基于网络协议的模糊测试方法、装置和计算机可读介质
技术领域
本发明涉及模糊测试技术(Fuzzing),尤其涉及一种基于网络协议的模糊测试方法、装置和计算机可读介质。
背景技术
模糊测试(Fuzzing)作为一种自动测试技术,广泛用于检测软件、硬件的漏洞。测试过程中,可将非预期的随机数据输入软件或硬件中,以监测崩溃等异常、失败的内置代码断言或者用于寻找潜在的内存泄露。
模糊测试的一个问题是:随机生成的测试用例一般执行时间较长,因而测试者通常都会努力生成更有效的测试用例,以通过数量有限的测试用例在目标软件或硬件中触发新的内部状态,从而产生更多独立的崩溃。
按照输入源的不同,模糊测试可分为基于文件的模糊测试和基于网络协议的模糊测试等。其中,基于文件的模糊测试包括结构模糊测试(constructional fuzzing)、基因算法模糊测试(genetic algorithms fuzzing)等。该类测试中,通常进行某种编译时插桩(compile-time instrumentation,CTI),然后使用基因算法来监测代码执行流程。而在基于网络协议的模糊测试中,绝大多数情况下无法进行编译时插桩,因而与基于文件的模糊测试相比通常效率较低且暴力(比如:从00到FF依次遍历这种做法通常被认为是“暴力”的)。
现有基于网络协议的模糊测试主要包括:暴力模糊测试(dummy Fuzzing)和结构模糊测试(constructional Fuzzing)。在暴力模糊测试中,可以在网络中抓取一个普通的通信作为变异种子(mutation weed),进而基于该变异种子随机改变协议字节以生成各个测试用例。暴力模糊测试不需要事先了解测试目标,但需要投入更多的分析以检测崩溃,也会产生大量重复的测试结果。在结构模糊测试中,首先需要分析协议结构,进而改变协议结构的内容。这需要对测试目标和专业工具有深入的了解。采用结构模糊测试,无需大量分析,重复的测试数结果也会减少。
上述两种基于网络协议的模糊测试各自存在缺点。暴力模糊测试效率低下,绝大多数的测试结果级别较低。而结构模糊测试的结果过分依赖于测试者对协议的了解以及测试技能。
发明内容
本发明实施例提供了一种基于网络协议的模糊测试方法,采用了中间人技术(manin the middle,MITM)技术优化测试过程。
第一方面,提供一种基于网络协议的模糊测试方法,该方法可由一个作为中间人的模糊测试工具执行。包括:接收来自一个客户端且欲发送至一个服务器的一个第一报文,其中所述第一报文符合一种网络协议;对所述第一报文进行变异;将变异后的所述第一报文发送至所述服务器;获取在变异后的所述第一报文被发送后所述服务器和所述客户端之间传送的符合所述网络协议的至少一个第二报文;基于所述至少一个第二报文判断是否有新的网络协议流程被触发;若有新的网络协议流程被触发,则对应于所述新的网络协议流程生成一个变异组,并在生成的变异组中记录所进行的变异的信息。
第二方面,提供一种基于网络协议的模糊测试工具,包括:一个接收模块,被配置为接收来自一个客户端且欲发送至一个服务器的一个第一报文,其中所述第一报文符合一种网络协议;一个变异模块,被配置为对所述第一报文进行变异;一个发送模块,被配置为将变异后的所述第一报文发送至所述服务器;所述接收模块,进一步被配置为获取在变异后的所述第一报文被发送后所述服务器和所述客户端之间传送的符合所述网络协议的至少一个第二报文;一个处理模块,被配置为:基于所述至少一个第二报文判断是否有新的网络协议流程被触发;若有新的网络协议流程被触发,则对应于所述新的网络协议流程计生成一个变异组,以及在所述新的变异组记录所进行的变异的信息。
第三方面,提供一种基于网络协议的模糊测试工具,包括:至少一个存储器,用于存储计算机可读代码;至少一个处理器,用于执行所述至少一个存储器存储的所述计算机可读代码,以执行第一方面所提供的方法。
第四方面,提供过一种存储介质,所述存储介质存储有计算机可读代码,当所述计算机可读代码被至少一个处理器执行时,使得所述至少一个处理器执行第一方面所提供的方法。
其中,作为中间人的模糊测试工具对来自客户端且发送至服务器报文进行变异后发送至服务器,之后观察在此次变异后客户端和服务器之间的网络流量。当确定有新的网络协议流程被触发时,对应于该新的网络协议流程生成一个变异组,并在生成的变异组中记录此次所进行的变异的信息。之后返回变异的步骤。这样不断的重复,每当有新的网络协议流程被触发,则生成新的变异组并记录变异信息,可以高效地获取大量有效的变异,避免了生成大量随机的测试用例,提高了模糊测试的有效性。
在上述各方面中,若模糊测试工具确定没有新的网络协议流程被触发,则可进一步判断所述至少一个第二报文所属的协议流程所对应的变异组中变异的信息记录数是否达到预定阈值,若没有达到预定阈值,则在所述至少一个第二报文所属的协议流程所对应的已有的变异组中记录所进行的变异的信息。这样,可对于每一种变异获取足够的变异的样本或信息,以便生成有效的测试用例。
在上述各方面中,模糊测试工具在基于所述至少一个第二报文判断是否有新的网络协议流程被触发时,可分析所述至少一个第二报文的报文结构;确定所述至少一个第二报文的报文结构与以往报文的报文结构的差异程度;基于所述差异程度判断是否有新的网络协议流程被触发。由于不同的网络协议流程中发送的报文的报文结构通常会有较大差别,因此,可依据报文结果的差异程度来较准确地判断是否有新的网络协议流程被触发。
其中,具体地,模糊测试工具可在确定所述差异程度时,基于以下规则,即:元数据与其他组成部分相比,对所述差异程度的影响更大,其中,元数据可包括错误码、返回值类型等。其中,考虑到对于不同的网络协议流程,元数据通常会有较大差别,因此,在根据报文结构判断差异程度时,优先考虑元数据,可使得判断结果更准确。
附图说明
图1为本发明实施例提供的基于网络协议的模糊测试系统的结构示意图。
图2为本发明实施例提供的基于网络协议的模糊测试方法中各设备之间交互的流程图。
图3为本发明实施例提供的基于网络协议的模糊测试方法中模糊测试工具的处理流程图。
图4为本发明实施例提供的模糊测试工具的一种结构示意图。
图5为本发明实施例提供的模糊测试工具的另一种结构示意图。
附图标记列表:
Figure BDA0001981295070000031
Figure BDA0001981295070000041
具体实施方式
如前所述,目前模糊测试的一个问题是,随机生成的测试用例数量众多,但有效性不高。因此如何生成有效的测试用例,通过数量有限的测试用例在目标软件或硬件中触发新的内部状态,产生更多的崩溃是模糊测试性能提升的一个目标。
本发明实施例提供了一种基于网络协议的模糊测试方法,采用了中间人技术(manin the middle,MITM)技术优化测试过程。其中,作为中间人的模糊测试工具对来自客户端且发送至服务器报文进行变异后发送至服务器(待测试的目标软件或硬件运行于服务器中),之后观察在此次变异后客户端和服务器之间的网络流量。当确定有新的网络协议流程被触发时,对应于该新的网络协议流程生成一个变异组,并在生成的变异组中记录此次所进行的变异的信息。之后返回变异的步骤。这样不断的重复,每当有新的网络协议流程被触发,则生成新的变异组并记录变异信息,可以高效地获取大量有效的变异,避免了生成大量随机的测试用例,提高了模糊测试的有效性。
并且,由于采用中间人技术,由模糊测试工具作为中间人,而不是作为客户端来向服务器发送报文,从而使得网络协议的各个流程覆盖更全面,极大地增加了有效测试用例的数量。这是因为:以往的模糊测试过程中,通常由模糊测试工具作为客户端发送报文。而模糊测试工具作为一个仿真的工具,无法像一个真实的客户端那样,准确地生成符合网络协议的报文,对网络协议的不同协议流程的覆盖也不全面。而本发明实施例中,模糊测试工具作为中间人,报文在服务器和真实的客户端之间传送,作为真实的客户端,其对网络协议的实现是准确、全面的,从而能够更快速、全面地触发新的网络协议流程,使得在较短的时间内,能够生成大量有效的测试用例。
为了使本发明实施例的目的、技术方案和优点更加清楚明白,以下参照附图对本发明实施例进一步详细说明。其中,后续描述的实施例仅仅是本发明实施例的一部分,而非全部的实施例。
图1为本发明实施例提供的基于网络协议的模糊测试系统的结构示意图。如图1所示,系统100包括:客户端10,模糊测试工具20和服务器30,客户端10与服务器30之间基于某一种网络协议进行通信。其中,服务器30中运行的用于处理该网络协议的软件或硬件为测试对象。
其中,模糊测试工具20位于真正的客户端10和服务器30之间,与以往绝大多数模糊测试不同的是,以往的模糊测试工具20自身作为客户端来向服务器30发送报文。而本发明实施例中,模糊测试工具20作为一个中间人代理,在测试对象服务器30和真正的客户端10之间转发报文(packet),对报文进行分析、变异,以及在变异后观察客户端10与服务器30之间的网络流量(network flow)。与以往模糊测试方法相比,由于真正的客户端在实现上比模糊测试工具功能更全,对协议的支持更好,能够触发更多的协议流程的分支,因此,基于真正的客户端与服务器之间的网络流量来进行模糊测试,能够更容易地产生大量有效的测试用例。
下面,对系统100的各个组成部分分别加以详细说明。
1、客户端10
客户端10向服务器30发送符合某一种网络协议的报文。
这里,可通过在客户端10一侧运行守护进程(daemon process)来连续地发起客户端10一侧的通信。或者也可以在网络中发送虚假的起始报文来发起客户端10的通信。具体采用哪种方式可视网络环境而定。
2、模糊测试工具20
模糊测试工具20监测客户端10与服务器30之间的通信,以及对该通信进行变异。在客户端10发起通信并向服务器30发送报文之后,模糊测试工具20即可对两者之间传送的报文进行变异。考虑到对后续报文的分析,可选择恰当的变异算法检测报文结构,以及对报文进行变异处理。在对报文进行变异之后,模糊测试工具20可作为普通的代理进行报文转发,并监测客户端10和服务器30之间的通信。其中,模糊测试工具20抓取客户端10和服务器30之间传送的报文,对抓取的报文进行分析以判断是否有新的网络协议流程被触发。若有新的网络协议流程被触发,则对应于该新的网络协议流程生成一个变异组,并在该生成的变异组中增加所进行的变异的信息,比如:变异后的报文,或者进行变异的方法等。
具体地,可采用如下方式之一将模糊测试工具20设置为中间人代理:
1)端口转发;
2)地址解析协议(Address Resolution Protocol,ARP)欺骗(spoofing);
3)路由,等。
3、服务器30
服务器30接收来自模糊测试工具20的变异后的报文并按照上述网络协议进行处理和响应。
下面,结合图2和图3,对本发明实施例提供的模糊测试方法200加以说明。
如图2所示,客户端10作为中间人代理,在真正的客户端10和服务器30之间转发报文、监测通信,对报文进行变异等。
其中,在步骤S201中,模糊测试工具20接收来自客户端10且欲发送至服务器30的一个报文(这里记为“第一报文”),其中该第一报文符合上述网络协议,可以是一个初始请求的报文,也可以是后续请求的报文,或者其他报文,比如回复服务器请求的回复报文等。在客户端30和服务器30之间通常会传送多种网络协议的报文,在一轮测试中,我们可仅针对一种网络协议。
在步骤S202中,模糊测试工具20对步骤S201中接收的第一报文进行变异。
在步骤S203中,模糊测试工具20将变异后的第一报文发送至服务器30。
模糊测试工具20可对从客户端10接收的且发送至服务器30的报文进行多种变异,在进行一种变异后观察客户端10与服务器30之间的通信,直至重启下一种变异或者结束模糊测试。通常在网络通信过程中,一个协议流程开始后,如果没有后续报文的触发,可能存在一段时间不会有报文的传送,这时可重新触发客户端10发送新的初始请求的报文。
在步骤S204中,模糊测试工具201获取在第一变异后的第一报文被发送后服务器30和客户端10传送的符合上述网络协议的至少一个后续报文(这里为区分于第一报文,将后续报文记为“第二报文”),比如一个时间段内服务器30和客户端30之间传送的全部报文或部分报文,来观察服务器30与客户端10之间的通信,并生成变异组。
其中,步骤S204可包括如下子步骤:
在子步骤S2041中,模糊测试工具20获取变异后服务器30和客户端10之间传送的符合所述网络协议的至少一个第二报文,其中该至少一个第二报文可以是服务器30发送至客户端10的,也可以是客户端10发送至服务器30的。
在子步骤S2042中,模糊测试工具20基于获取到的至少一个第二报文判断是否有新的网络协议流程被触发,若有新的网络协议流程被触发,则执行子步骤S2043,否则执行子步骤S2045。
其中,模糊测试工具20可根据收到的一个报文或几个报文来进行分析判断。其中,模糊测试工具20可采用如下方式之一进行判断:
方式一、编译时插桩
在该方式下,测试流程类似于基于文件的模糊测试。采用该种方式要求在待测试的程序编译过程中,使用特殊的编译器,使得编译出来的程序不仅能正常执行,而且会对程序执行到哪一段汇编代码进行记录。对这样的程序进行模糊测试,如果编译后的报文触发了程序的新的执行流程,则测试人员通过之前编译时的记录是可以知道的。
方式二、采用非监督学习的方法进行聚类
其中,可以采用方式三对获取报文的报文结构进行分析。并将分析得到的结果作为机器学习算法的输入。
方式三、分析报文的报文结构,比如获取报文的类型或者元数据等信息,并基于此获取的至少一个第二报文与以往报文的报文结构的差异程度,进而基于该差异程度判断是否有新的网络协议流程被触发。这里,以往报文可以是在第二报文之前客户端30与服务器30之间传送的报文。比如:一个报文有60字节,按结构分为12个部分,可选地,我们认为若该报文与以往一个报文超过1个部分不同,即确定这两个报文分别对应于两个不同的协议流程。此外,还可定义不同的结构部分的权重不同,比如,在确定差异程度时,元数据,比如:错误码、返回值类型,与其他组成部分相比,对差异程度的影响更大。当基于多个后续的报文进行判断时,可在对每一个报文分析的基础上进行报文统计,并基于统计结果判断是否有新的网络协议流程被触发。比如:平均每个报文与以往报文相比,有10%的部分不同,则确定有新的网络协议流程被触发。对于完全未知的协议,可通过变异,在一定程度上探测出报文结构。一个报文中可包括元数据和元数据以外的普通数据。比如:如果一个报文的一个字段代表报文长度,那么对该字段进行任何修改都会触发异常,这样的字段即为“元数据”;而对于元数据之外的普通数据,通过修改很难触发异常,这样的数据即为元数据以外的普通数据。在变异时,通过选取合适的算法,可以更明确地确定一个标记报文中哪部分是元数据,哪部分是普通数据。
在子步骤S2043中,对应于该新的网络协议流程生成一个变异组,并在子步骤S2044中,在生成的变异组中记录所进行的变异的信息。之后返回步骤S201和步骤S202,直至测试流程结束。其中,每一次返回后所进行的变异均不同。
下面表中给出了变异组的一个示例。
Figure BDA0001981295070000081
在子步骤S2045中,模糊测试工具20判断至少一个第二报文所属的协议流程所对应的变异组中变异的信息记录数是否达到预定阈值,若没有达到预定阈值,则执行子步骤S2046;若已达到预定阈值,则可丢弃该变异的信息并返回步骤S201和S202。
在子步骤S2046,模糊测试工具20在至少一个第二报文所属的协议流程所对应的已有的变异组中记录所进行的变异的信息。比如:以上述变异组2为例,基于第二种变异生成了该变异组2,但是该变异组2中仅有第二种变异的信息。此时若进行第八种变异,且基于该第八种变异后获取的后续报文确定触发了变异组2所对应的协议流程,即协议流程2,这时进一步判断该变异组中仅记录了一条变异的信息,而预先设定对于每一个变异组最多记录8条变异的信息,则在变异组2中记录第八种变异的信息。子步骤S2046之后,返回步骤S201和步骤S202。
图4为本发明实施例提供的模糊测试工具20的一种结构示意图。如图4所示,模糊测试工具20可包括:
一个接收模块201,被配置为接收来自一个客户端10且欲发送至一个服务器30的一个第一报文,其中第一报文符合一种网络协议;
一个变异模块202,被配置为对第一报文进行变异;
一个发送模块203,被配置为将变异后的第一报文发送至服务器30;
接收模块201,进一步被配置为获取在变异后的第一报文被发送后服务器30和客户端10之间传送的符合网络协议的至少一个第二报文;
一个处理模块204,被配置为:基于至少一个第二报文判断是否有新的网络协议流程被触发;若有新的网络协议流程被触发,则对应于新的网络协议流程计生成一个变异组,以及在新的变异组记录所进行的变异的信息。
可选地,处理模块204还被配置为:
若没有新的网络协议流程被触发,则判断至少一个第二报文所属的协议流程所对应的变异组中变异的信息记录数是否达到预定阈值,
若没有达到预定阈值,则在至少一个第二报文所属的协议流程所对应的已有的变异组中记录所进行的变异的信息。
可选地,处理模块204在基于至少一个第二报文判断是否有新的网络协议流程被触发时,具体被配置为:
分析至少一个第二报文的报文结构;
确定至少一个第二报文的报文结构与以往报文的报文结构的差异程度;
基于差异程度判断是否有新的网络协议流程被触发。
可选地,处理模块204在确定至少一个第二报文的报文结构与以往报文的报文结构的差异程度时,具体被配置为:在确定差异程度时,元数据与其他组成部分相比,对差异程度的影响更大。
图5为本发明实施例提供的模糊测试工具20的另一种结构示意图。如图5所示,在此结构下,模糊测试工具20可包括:至少一个存储器205,用于存储计算机可读代码;至少一个处理器206,用于执行存储器205存放的计算机可读代码,从而执行图2或图3中所示的模糊测试工具20的处理流程。其中,图4中示出的各个模块可视为存储器205中存储的计算机可读代码编写的程序模块,当这些程序模块被处理器206调用时,能够执行前述方法中模糊测试工具20的处理流程。此外,模糊测试工具20还可包块一个通信模块207,用于在至少一个处理器206的控制下一与客户端10以及服务器20通信。可选地,至少一个存储器205,至少一个处理器206以及通信模块207之间可通过总线208通信。
此外,本发明实施例还提供一种计算机可读介质,该计算机可读介质存储有计算机可读代码,当该计算机可读代码被至少一个处理器执行时,实现前述图2或图3所示的方法。
需要说明的是,上述各流程和各系统结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由至少两个物理实体实现,或者,可以由至少两个独立设备中的某些部件共同实现。
以上各实施例中,硬件单元可以通过机械方式或电气方式实现。例如,一个硬件单元可以包括永久性专用的电路或逻辑(如专门的处理器,现场可编程门阵列(Field-Programmable Gate Array,FPGA)或专用集成电路(Application Specific IntegratedCircuits,ASIC)等)来完成相应操作。硬件单元还可以包括可编程逻辑或电路(如通用处理器或其它可编程处理器),可以由软件进行临时的设置以完成相应操作。具体的实现方式(机械方式、或专用的永久性电路、或者临时设置的电路)可以基于成本和时间上的考虑来确定。
上文通过附图和优选实施例对本发明实施例进行了详细展示和说明,然而本发明实施例不限于这些已揭示的实施例,基于上述实施例本领域技术人员可以知晓,可以组合上述不同实施例中的代码审核手段得到本发明更多的实施例,这些实施例也在本发明实施例的保护范围之内。

Claims (10)

1.基于网络协议的模糊测试方法,其特征在于,包括:
一个模糊测试工具(20)接收来自一个客户端(10)且欲发送至一个服务器(30)的一个第一报文,其中所述第一报文符合一种网络协议;
对所述第一报文进行变异;
将变异后的所述第一报文发送至所述服务器(30);
获取在变异后的所述第一报文被发送后所述服务器(30)和所述客户端(10)之间传送的符合所述网络协议的至少一个第二报文;
基于所述至少一个第二报文判断是否有新的网络协议流程被触发;
若有新的网络协议流程被触发,则
对应于所述新的网络协议流程生成一个变异组;
在生成的变异组中记录所进行的变异的信息。
2.如权利要求1所述的方法,还包括:
若没有新的网络协议流程被触发,则判断所述至少一个第二报文所属的协议流程所对应的变异组中变异的信息记录数是否达到预定阈值,
若没有达到预定阈值,则在所述至少一个第二报文所属的协议流程所对应的已有的变异组中记录所进行的变异的信息。
3.如权利要求1或2所述的方法,其特征在于,基于所述至少一个第二报文判断是否有新的网络协议流程被触发,包括:
分析所述至少一个第二报文的报文结构;
确定所述至少一个第二报文的报文结构与以往报文的报文结构的差异程度;
基于所述差异程度判断是否有新的网络协议流程被触发。
4.如权利要求3所述的方法,其特征在于,确定所述至少一个第二报文的报文结构与以往报文的报文结构的差异程度,包括:
在确定所述差异程度时,元数据与其他组成部分相比,对所述差异程度的影响更大。
5.基于网络协议的模糊测试工具(20),其特征在于,包括:
一个接收模块(201),被配置为接收来自一个客户端(10)且欲发送至一个服务器(30)的一个第一报文,其中所述第一报文符合一种网络协议;
一个变异模块(202),被配置为对所述第一报文进行变异;
一个发送模块(203),被配置为将变异后的所述第一报文发送至所述服务器(30);
所述接收模块(201),进一步被配置为获取在变异后的所述第一报文被发送后所述服务器(30)和所述客户端(10)之间传送的符合所述网络协议的至少一个第二报文;
一个处理模块(204),被配置为:
基于所述至少一个第二报文判断是否有新的网络协议流程被触发;
若有新的网络协议流程被触发,则
对应于所述新的网络协议流程计生成一个变异组,以及
在所述新的变异组记录所进行的变异的信息。
6.如权利要求5所述的模糊测试工具(20),所述处理模块(204)还被配置为:
若没有新的网络协议流程被触发,则判断所述至少一个第二报文所属的协议流程所对应的变异组中变异的信息记录数是否达到预定阈值,
若没有达到预定阈值,则在所述至少一个第二报文所属的协议流程所对应的已有的变异组中记录所进行的变异的信息。
7.如权利要求5或6所述的模糊测试工具(20),其特征在于,所述处理模块(204)在基于所述至少一个第二报文判断是否有新的网络协议流程被触发时,具体被配置为:
分析所述至少一个第二报文的报文结构;
确定所述至少一个第二报文的报文结构与以往报文的报文结构的差异程度;
基于所述差异程度判断是否有新的网络协议流程被触发。
8.如权利要求7所述的模糊测试工具(20),其特征在于,所述处理模块(204)在确定所述至少一个第二报文的报文结构与以往报文的报文结构的差异程度时,具体被配置为:在确定所述差异程度时,元数据与其他组成部分相比,对所述差异程度的影响更大。
9.基于网络协议的模糊测试工具(20),其特征在于,包括:
至少一个存储器(205),用于存储计算机可读代码;
至少一个处理器(206),用于执行所述至少一个存储器(205)存储的所述计算机可读代码,以执行如权利要求1-4任一项所述的方法。
10.存储介质,其特征在于,所述存储介质存储有计算机可读代码,当所述计算机可读代码被至少一个处理器执行时,使得所述至少一个处理器执行如权利要求1~4任一项所述的方法。
CN201910150143.3A 2019-02-28 2019-02-28 基于网络协议的模糊测试方法、装置和计算机可读介质 Active CN111628900B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910150143.3A CN111628900B (zh) 2019-02-28 2019-02-28 基于网络协议的模糊测试方法、装置和计算机可读介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910150143.3A CN111628900B (zh) 2019-02-28 2019-02-28 基于网络协议的模糊测试方法、装置和计算机可读介质

Publications (2)

Publication Number Publication Date
CN111628900A true CN111628900A (zh) 2020-09-04
CN111628900B CN111628900B (zh) 2023-08-29

Family

ID=72270750

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910150143.3A Active CN111628900B (zh) 2019-02-28 2019-02-28 基于网络协议的模糊测试方法、装置和计算机可读介质

Country Status (1)

Country Link
CN (1) CN111628900B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112685301A (zh) * 2020-12-28 2021-04-20 浙江国利网安科技有限公司 模糊测试方法及装置
CN113765718A (zh) * 2021-09-10 2021-12-07 烽火通信科技股份有限公司 一种面向quic协议的测试拓扑构建方法及装置
CN113986712A (zh) * 2021-09-10 2022-01-28 深圳开源互联网安全技术有限公司 一种基于http/2的模糊测试方法和装置
CN114205340A (zh) * 2021-12-23 2022-03-18 绿盟科技集团股份有限公司 一种基于智能电力设备的模糊测试方法及装置
CN115396347A (zh) * 2022-08-15 2022-11-25 中国人民解放军国防科技大学 一种基于中间人的路由协议模糊测试方法及系统
WO2023155699A1 (zh) * 2022-02-15 2023-08-24 中兴通讯股份有限公司 空口协议安全漏洞的挖掘方法、装置、移动终端

Citations (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004112313A2 (fr) * 2003-06-18 2004-12-23 Lenovo (Beijing) Limited Equipement de securite reseau et son procede de production
US20090077383A1 (en) * 2007-08-06 2009-03-19 De Monseignat Bernard System and method for authentication, data transfer, and protection against phishing
CN101902367A (zh) * 2009-05-31 2010-12-01 西门子(中国)有限公司 一种产生测试用例的方法及装置
CN102624574A (zh) * 2011-01-27 2012-08-01 西门子公司 一种对协议实现进行安全测试的方法及装置
CN103036730A (zh) * 2011-09-29 2013-04-10 西门子公司 一种对协议实现进行安全测试的方法及装置
US20130117847A1 (en) * 2011-11-07 2013-05-09 William G. Friedman Streaming Method and System for Processing Network Metadata
CN103136098A (zh) * 2011-11-30 2013-06-05 西门子公司 模糊测试的方法、装置和系统
US20130340083A1 (en) * 2012-06-19 2013-12-19 Lucian Petrica Methods, systems, and computer readable media for automatically generating a fuzzer that implements functional and fuzz testing and testing a network device using the fuzzer
CN103812729A (zh) * 2014-02-19 2014-05-21 北京理工大学 一种网络协议模糊测试方法和装置
CN104796240A (zh) * 2015-04-30 2015-07-22 北京理工大学 一种有状态网络协议的模糊测试系统
US20150319072A1 (en) * 2014-05-05 2015-11-05 Ixia Methods, systems, and computer readable media for providing fuzz testing functionality
CN105095075A (zh) * 2015-07-16 2015-11-25 北京理工大学 基于有限状态机网络协议半合法化模糊测试用例生成方法
CN105245403A (zh) * 2015-10-27 2016-01-13 国网智能电网研究院 一种基于模糊测试的电网工控协议漏洞挖掘系统和方法
CN105763392A (zh) * 2016-02-19 2016-07-13 中国人民解放军理工大学 一种基于协议状态的工控协议模糊测试方法
US9432394B1 (en) * 2015-03-16 2016-08-30 Ixia Methods, systems, and computer readable media for converging on network protocol stack vulnerabilities using fuzzing variables, vulnerability ratings and progressive convergence
US20160277541A1 (en) * 2015-03-16 2016-09-22 Ixia Methods, systems, and computer readable media for simplistic visual representation of complex interdependent network protocol fields for network protocol fuzzing and graphical framework for reporting instantaneous system level progress
CN106649075A (zh) * 2015-10-30 2017-05-10 西门子公司 模糊测试方法和装置
WO2017117459A1 (en) * 2015-12-31 2017-07-06 F5 Networks, Inc. Transparent control and transfer of network protocols
CN107046526A (zh) * 2016-12-28 2017-08-15 北京邮电大学 基于Fuzzing算法的分布式异构网络漏洞挖掘方法
US10164848B1 (en) * 2014-06-09 2018-12-25 Amazon Technologies, Inc. Web service fuzzy tester
CN109347696A (zh) * 2018-09-30 2019-02-15 中国人民解放军国防科技大学 一种基于分级变异的网络协议模糊测试方法

Patent Citations (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004112313A2 (fr) * 2003-06-18 2004-12-23 Lenovo (Beijing) Limited Equipement de securite reseau et son procede de production
US20090077383A1 (en) * 2007-08-06 2009-03-19 De Monseignat Bernard System and method for authentication, data transfer, and protection against phishing
CN101902367A (zh) * 2009-05-31 2010-12-01 西门子(中国)有限公司 一种产生测试用例的方法及装置
CN102624574A (zh) * 2011-01-27 2012-08-01 西门子公司 一种对协议实现进行安全测试的方法及装置
CN103036730A (zh) * 2011-09-29 2013-04-10 西门子公司 一种对协议实现进行安全测试的方法及装置
US20130117847A1 (en) * 2011-11-07 2013-05-09 William G. Friedman Streaming Method and System for Processing Network Metadata
CN103136098A (zh) * 2011-11-30 2013-06-05 西门子公司 模糊测试的方法、装置和系统
US20130340083A1 (en) * 2012-06-19 2013-12-19 Lucian Petrica Methods, systems, and computer readable media for automatically generating a fuzzer that implements functional and fuzz testing and testing a network device using the fuzzer
CN103812729A (zh) * 2014-02-19 2014-05-21 北京理工大学 一种网络协议模糊测试方法和装置
US20150319072A1 (en) * 2014-05-05 2015-11-05 Ixia Methods, systems, and computer readable media for providing fuzz testing functionality
US10164848B1 (en) * 2014-06-09 2018-12-25 Amazon Technologies, Inc. Web service fuzzy tester
US9432394B1 (en) * 2015-03-16 2016-08-30 Ixia Methods, systems, and computer readable media for converging on network protocol stack vulnerabilities using fuzzing variables, vulnerability ratings and progressive convergence
US20160277541A1 (en) * 2015-03-16 2016-09-22 Ixia Methods, systems, and computer readable media for simplistic visual representation of complex interdependent network protocol fields for network protocol fuzzing and graphical framework for reporting instantaneous system level progress
CN104796240A (zh) * 2015-04-30 2015-07-22 北京理工大学 一种有状态网络协议的模糊测试系统
CN105095075A (zh) * 2015-07-16 2015-11-25 北京理工大学 基于有限状态机网络协议半合法化模糊测试用例生成方法
CN105245403A (zh) * 2015-10-27 2016-01-13 国网智能电网研究院 一种基于模糊测试的电网工控协议漏洞挖掘系统和方法
CN106649075A (zh) * 2015-10-30 2017-05-10 西门子公司 模糊测试方法和装置
WO2017117459A1 (en) * 2015-12-31 2017-07-06 F5 Networks, Inc. Transparent control and transfer of network protocols
CN105763392A (zh) * 2016-02-19 2016-07-13 中国人民解放军理工大学 一种基于协议状态的工控协议模糊测试方法
CN107046526A (zh) * 2016-12-28 2017-08-15 北京邮电大学 基于Fuzzing算法的分布式异构网络漏洞挖掘方法
CN109347696A (zh) * 2018-09-30 2019-02-15 中国人民解放军国防科技大学 一种基于分级变异的网络协议模糊测试方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112685301A (zh) * 2020-12-28 2021-04-20 浙江国利网安科技有限公司 模糊测试方法及装置
CN113765718A (zh) * 2021-09-10 2021-12-07 烽火通信科技股份有限公司 一种面向quic协议的测试拓扑构建方法及装置
CN113986712A (zh) * 2021-09-10 2022-01-28 深圳开源互联网安全技术有限公司 一种基于http/2的模糊测试方法和装置
CN113765718B (zh) * 2021-09-10 2023-06-09 烽火通信科技股份有限公司 一种面向quic协议的测试拓扑构建方法及装置
CN114205340A (zh) * 2021-12-23 2022-03-18 绿盟科技集团股份有限公司 一种基于智能电力设备的模糊测试方法及装置
CN114205340B (zh) * 2021-12-23 2024-04-02 绿盟科技集团股份有限公司 一种基于智能电力设备的模糊测试方法及装置
WO2023155699A1 (zh) * 2022-02-15 2023-08-24 中兴通讯股份有限公司 空口协议安全漏洞的挖掘方法、装置、移动终端
CN115396347A (zh) * 2022-08-15 2022-11-25 中国人民解放军国防科技大学 一种基于中间人的路由协议模糊测试方法及系统
CN115396347B (zh) * 2022-08-15 2024-02-06 中国人民解放军国防科技大学 一种基于中间人的路由协议模糊测试方法及系统

Also Published As

Publication number Publication date
CN111628900B (zh) 2023-08-29

Similar Documents

Publication Publication Date Title
CN111628900B (zh) 基于网络协议的模糊测试方法、装置和计算机可读介质
CN109951500B (zh) 网络攻击检测方法及装置
CN106254153B (zh) 一种网络异常监控方法和装置
US11159542B2 (en) Cloud view detection of virtual machine brute force attacks
US7954161B1 (en) Mechanism for characterizing soft failures in systems under attack
US20130332456A1 (en) Method and system for detecting operating systems running on nodes in communication network
US20100169973A1 (en) System and Method For Detecting Unknown Malicious Code By Analyzing Kernel Based System Actions
CN111488577B (zh) 一种基于人工智能的模型建立方法和风险评估方法及装置
CN110417747B (zh) 一种暴力破解行为的检测方法及装置
CN108241580B (zh) 客户端程序的测试方法及终端
US20110209001A1 (en) Time modulated generative probabilistic models for automated causal discovery
CN110798426A (zh) 一种洪水类DoS攻击行为的检测方法、系统及相关组件
CN109460662B (zh) 一种基于路径反馈的Javascript引擎模糊测试方法和装置
CN113934621A (zh) 模糊测试方法、系统、电子设备及介质
CN115695031A (zh) 主机失陷检测方法、装置及设备
Zhang et al. MT4NS: Metamorphic testing for network scanning
CN113722717B (zh) 一种安全漏洞测试方法、装置、设备及可读存储介质
CN112398839B (zh) 工控漏洞挖掘方法及装置
JPWO2019043804A1 (ja) ログ分析装置、ログ分析方法及びプログラム
CN112749410B (zh) 一种数据库安全保护方法及装置
CN116260643A (zh) 一种物联网web服务的安全测试方法、装置及设备
CN108650274B (zh) 一种网络入侵检测方法及系统
US7653742B1 (en) Defining and detecting network application business activities
CN113872931B (zh) 一种端口扫描行为的检测方法及系统、服务器、代理节点
Biao et al. FFUZZ: A Fast Fuzzing Test Method for Stateful Network Protocol Implementation

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