CN115174441A - 基于状态机的tcp模糊测试方法、设备和存储介质 - Google Patents
基于状态机的tcp模糊测试方法、设备和存储介质 Download PDFInfo
- Publication number
- CN115174441A CN115174441A CN202211081251.8A CN202211081251A CN115174441A CN 115174441 A CN115174441 A CN 115174441A CN 202211081251 A CN202211081251 A CN 202211081251A CN 115174441 A CN115174441 A CN 115174441A
- Authority
- CN
- China
- Prior art keywords
- state
- initial state
- case
- wait
- test
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0811—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/18—Protocol analysers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及信息安全领域,公开了一种基于状态机的TCP模糊测试方法、设备和存储介质。该方法包括:在针对TCP连接状态进行测试时,控制测试对象的TCP连接状态为预设的初始状态;基于第一状态转换用例控制所述测试对象的TCP连接状态从所述初始状态调整至与所述初始状态关联的下一状态,针对每个所述下一状态,在所述测试对象运行对应的第一测试用例,并使用对应的第一状态验证用例对所述测试对象运行完所述第一测试用例之后的状态进行验证;记录第一测试用例、第一状态验证用例以及测试对象运行完第一测试用例之后的状态。本实施例解决了TCP检测中测试用例有效性低、测试结果的覆盖度低的问题。
Description
技术领域
本发明涉及信息安全领域,尤其涉及一种基于状态机的TCP模糊测试方法、设备和存储介质。
背景技术
协议漏洞挖掘是保证网络通信安全的重要手段。模糊测试是目前常用的协议漏洞挖掘方法,通过向协议实体输入变异的报文,监控协议实体的运行状况,分析协议实体发生的异常,从而发现潜在的安全漏洞。
针对TCP(Transmission Control Protocol,传输控制协议)的模糊测试,当测试用例与协议实体状态不匹配时,测试用例会被直接丢弃,目前大部分TCP的模糊测试方法并没有充分考虑TCP每种状态下的有效测试用例,以及状态之间的转换测试用例,导致测试用例有效性低,测试覆盖度低。
有鉴于此,特提出本发明。
发明内容
为了解决上述技术问题,本发明提供了一种基于状态机的TCP模糊测试方法、设备和存储介质,解决了TCP检测中测试用例有效性低、测试结果的覆盖度低的问题。
本发明实施例提供了一种基于状态机的TCP模糊测试方法,该方法包括:
在针对TCP连接状态进行测试时,控制测试对象的TCP连接状态为预设的初始状态;
基于第一状态转换用例控制所述测试对象的TCP连接状态从所述初始状态调整至与所述初始状态关联的下一状态,其中,所述第一状态转换用例与所述初始状态以及所述下一状态相关联;
针对每个所述下一状态,在所述测试对象运行对应的第一测试用例,并使用对应的第一状态验证用例对所述测试对象运行完所述第一测试用例之后的状态进行验证,获得第一验证结果,所述第一测试用例以及所述第一状态验证用例与所述下一状态相关联;
当所述第一验证结果为第一预设结果时,记录所述第一测试用例、所述第一状态验证用例以及所述测试对象运行完所述第一测试用例之后的状态。
本发明实施例提供了一种电子设备,所述电子设备包括:
处理器和存储器;
所述处理器通过调用所述存储器存储的程序或指令,用于执行任一实施例所述的基于状态机的TCP模糊测试方法的步骤。
本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储程序或指令,所述程序或指令使计算机执行任一实施例所述的基于状态机的TCP模糊测试方法的步骤。
本发明实施例具有以下技术效果:
通过为每种TCP连接状态设置对应的测试用例以及状态验证用例,为不同状态之间设置状态转换用例,在针对TCP连接状态进行测试时,基于第一状态转换用例控制所述测试对象的TCP连接状态从所述初始状态调整至与所述初始状态关联的下一状态,针对每个所述下一状态,在所述测试对象运行对应的第一测试用例,并使用对应的第一状态验证用例对所述测试对象运行完所述第一测试用例之后的状态进行验证,获得第一验证结果,当所述第一验证结果为第一预设结果时,记录所述第一测试用例、所述第一状态验证用例以及所述测试对象运行完所述第一测试用例之后的状态,极大地提高了测试用例的有效性以及测试的覆盖度。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种基于状态机的TCP模糊测试方法的流程图;
图2是本发明实施例提供的一种服务端的TCP连接状态之间的迁移关系示意图;
图3是本发明实施例提供的一种客户端的TCP连接状态之间的迁移关系示意图;
图4是本发明实施例提供的一种针对TCP连接状态进行测试的流程示意图;
图5是本发明实施例提供的一种针对TCP连接状态之间的转换进行测试的流程示意图;
图6为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行清楚、完整的描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施例,都属于本发明所保护的范围。
本发明实施例提供的基于状态机的TCP模糊测试方法可以由电子设备执行。图1是本发明实施例提供的一种基于状态机的TCP模糊测试方法的流程图。参见图1,该基于状态机的TCP模糊测试方法具体包括如下步骤:
S110、在针对TCP连接状态进行测试时,控制测试对象的TCP连接状态为预设的初始状态。
其中,测试对象包括服务端和客户端。TCP连接的建立采用客户端-服务端模式,主动发起连接建立的应用进程为客户端,被动等待连接建立的应用进程为服务端。
建立TCP连接时的状态变迁为:
建立连接之前服务端和客户端的TCP连接状态都为CLOSED。服务端创建socket后开始监听,变为LISTEN状态。客户端请求建立连接,向服务端发送SYN报文,客户端的状态变为SYN_SENT。服务端收到客户端的报文后向客户端发送ACK和SYN报文,此时服务端的状态变为SYN_RCVD。然后,客户端收到ACK、SYN,就向服务端发送ACK,客户端状态变为ESTABLISHED,服务端收到客户端的ACK后也变为ESTABLISHED。此时,3次握手完成,服务端与客户端之间的TCP连接建立完成。
断开TCP连接时的状态变迁为:
由于TCP连接是全双工的,断开连接会比建立连接复杂一些,首先客户端向服务端发送FIN报文,请求断开连接,其状态变为FIN_WAIT1。服务端收到FIN后向客户端发生ACK,服务端状态变为CLOSE_WAIT。客户端收到ACK后就进入FIN_WAIT2状态。此时连接已经断开一半。如果服务端还有数据要发送给客户端,就会继续发送,直到发完后发送FIN报文,此时服务端进入LAST_ACK状态。客户端收到服务端的FIN后,马上发送ACK给服务端,此时客户端进入TIME_WAIT状态,再等待一段时间后进入CLOSED状态。服务端收到客户端的ACK就进入CLOSED状态。
其中,还有一个状态没有提及:CLOSING状态。CLOSING状态表示客户端发生了FIN,但没有收到服务端的ACK,却收到了服务端的FIN。这种情况发生在服务端发送的ACK丢包的时候,因为网络传输有时会有意外。
概括性的,服务端的TCP连接状态包括如下几种:
S0:CLOSED(没有任何连接状态)
S1:LISTEN(侦听来自远方的tcp端口的连接请求)
S2:SYN_RCVD(在收到和发送一个连接请求后等待对方对连接请求的确认)
S3:ESTABLISHED(代表一个打开的连接)
S4:CLOSE_WAIT(等待从本地用户发来的连接中断请求)
S5:LAST_ACK(等待原来的发向远程tcp的连接中断请求的确认)
S6:FIN_WAIT_1(等待远程tcp连接中断请求,或先前的连接中断请求的确认)
S7:FIN_WAIT_2(从远程tcp等待连接中断请求)
S8:CLOSING(等待远程tcp对连接中断的确认)
S9:TIME_WAIT(等待足够的时间以确保远程tcp接收到连接中断请求的确认)
对应的,参考如图2所示的一种服务端的TCP连接状态之间的迁移关系示意图。基于图2构建每种状态(对应的状态编号S0至S9)的测试用例和状态验证用例,如表1所示,以及每两种状态之间的状态转换用例,如表2所示。
表1:S0-S9的测试用例及状态验证用例
表2:T0-T12状态转换用例
客户端的TCP连接状态包括如下几种:
S0:CLOSED(没有任何连接状态)
S1:SYN_SENT(在发送连接请求后等待匹配的连接请求)
S2:ESTABLISHED(代表一个打开的连接)
S3:CLOSE_WAIT(等待从本地用户发来的连接中断请求)
S4:LAST_ACK(等待原来的发向远程tcp的连接中断请求的确认)
S5:FIN_WAIT_1(等待远程tcp连接中断请求,或先前的连接中断请求的确认)
S6:FIN_WAIT_2(从远程tcp等待连接中断请求)
S7:CLOSING(等待远程tcp对连接中断的确认)
S8:TIME_WAIT(等待足够的时间以确保远程tcp接收到连接中断请求的确认)
对应的,参考如图3所示的一种客户端的TCP连接状态之间的迁移关系示意图。基于图3构建每种状态(状态编号S0至S8)的测试用例和状态验证用例,如表3所示,以及每两种状态之间的状态转换用例,如表4所示。
表3 S0-S8的测试用例及状态验证用例
表4 T0-T11状态转换用例
S120、基于第一状态转换用例控制所述测试对象的TCP连接状态从所述初始状态调整至与所述初始状态关联的下一状态,其中,所述第一状态转换用例与所述初始状态以及所述下一状态相关联。
参考表2所示,所述初始状态为编号S0代表的状态以及所述下一状态为编号S1代表的状态时,对应的第一状态转换用例为{T0};所述初始状态为编号S1代表的状态以及所述下一状态为编号S2代表的状态时,对应的第一状态转换用例为{T1};所述初始状态为编号S2代表的状态以及所述下一状态为编号S3代表的状态时,对应的第一状态转换用例为{T2};即所述第一状态转换用例与所述初始状态以及所述下一状态相关联。
若通过在测试对象运行所述第一状态转换用例,可使测试对象的TCP连接状态从所述初始状态转换为所述下一状态,则表示所述第一状态转换用例是有效的,同时可说明测试对象符合测试预期。
概括性的,所述测试对象包括服务端;
所述初始状态为CLOSED时,与所述初始状态关联的下一状态为LISTEN;
所述初始状态为LISTEN时,与所述初始状态关联的下一状态为SYN_RCVD;
所述初始状态为SYN_RCVD时,与所述初始状态关联的下一状态为ESTABLISHED;
所述初始状态为ESTABLISHED时,与所述初始状态关联的下一状态为CLOSE_WAIT或者FIN_WAIT_1;
所述初始状态为CLOSE_WAIT时,与所述初始状态关联的下一状态为LAST_ACK;
所述初始状态为LAST_ACK时,与所述初始状态关联的下一状态为CLOSED;
所述初始状态为FIN_WAIT_1时,与所述初始状态关联的下一状态为FIN_WAIT_2、CLOSING或者TIME_WAIT;
所述初始状态为FIN_WAIT_2时,与所述初始状态关联的下一状态为TIME_WAIT;
所述初始状态为CLOSING时,与所述初始状态关联的下一状态为TIME_WAIT;
所述初始状态为TIME_WAIT时,与所述初始状态关联的下一状态为CLOSED。
所述测试对象包括客户端;
所述初始状态为CLOSED时,与所述初始状态关联的下一状态为SYN_SENT;
所述初始状态为SYN_SENT时,与所述初始状态关联的下一状态为ESTABLISHED;
所述初始状态为ESTABLISHED时,与所述初始状态关联的下一状态为CLOSE_WAIT或者FIN_WAIT_1;
所述初始状态为CLOSE_WAIT时,与所述初始状态关联的下一状态为LAST_ACK;
所述初始状态为LAST_ACK时,与所述初始状态关联的下一状态为CLOSED;
所述初始状态为FIN_WAIT_1时,与所述初始状态关联的下一状态为FIN_WAIT_2、CLOSING或者TIME_WAIT;
所述初始状态为FIN_WAIT_2时,与所述初始状态关联的下一状态为TIME_WAIT;
所述初始状态为CLOSING时,与所述初始状态关联的下一状态为TIME_WAIT;
所述初始状态为TIME_WAIT时,与所述初始状态关联的下一状态为CLOSED。
S130、针对每个所述下一状态,在所述测试对象运行对应的第一测试用例,并使用对应的第一状态验证用例对所述测试对象运行完所述第一测试用例之后的状态进行验证,获得第一验证结果,所述第一测试用例以及所述第一状态验证用例与所述下一状态相关联。
参考如上表1所示,若所述下一状态为编号S0代表的状态,则对应的第一测试用例是{S0},对应的第一状态验证用例{A0};若所述下一状态为编号S1代表的状态,则对应的第一测试用例是{S1},对应的第一状态验证用例{A1};若所述下一状态为编号S2代表的状态,则对应的第一测试用例是{S2},对应的第一状态验证用例{A2};即所述第一测试用例以及所述第一状态验证用例与所述下一状态相关联。
例如,初始状态是编号S0代表的状态,通过在测试对象运行第一状态转换用例{T0}使得测试对象的TCP连接状态从编号S0代表的状态变化为编号S1代表的状态,此时在测试对象运行第一测试用例{S1},并使用第一状态验证用例{A1}对所述测试对象运行完第一测试用例{S1}之后的状态进行验证,以确定测试对象是否正常。例如若测试对象运行完第一测试用例{S1}之后的状态仍为编号S1代表的状态,则表示测试对象是正常的,若测试对象运行完第一测试用例{S1}之后的状态不再是编号S1代表的状态,则表示测试对象是异常的。
S140、当所述第一验证结果为第一预设结果时,记录所述第一测试用例、所述第一状态验证用例以及所述测试对象运行完所述第一测试用例之后的状态。
具体的,当所述第一验证结果为表示测试对象异常的第一预设结果时,记录所述第一测试用例、所述第一状态验证用例以及所述测试对象运行完所述第一测试用例之后的状态,以作为对测试对象所存在的漏洞进行排查的参考。
在一些具体实施方式中,当测试对象为服务端时,在针对TCP连接状态进行测试时,设置循环变量i从0到9循环,将测试对象的TCP连接状态调整至编号S0代表的状态,利用对应的状态转换用例,将测试对象的TCP连接状态从编号S0代表的状态调整至编号Si代表的状态,对于每个编号Si(i=0,1,2,...,9)代表的状态,使用测试用例{Si},每使用一个测试用例,使用对应的状态验证用例{Ai}检查测试对象是否正常。当确定测试对象出现异常时,停止当前测试流程,并记录相应的测试用例{Si}、状态验证用例{Ai}和测试对象的当前状态以供排查。
当测试对象为客户端时,在针对TCP连接状态进行测试时,设置循环变量i从0到8循环,将测试对象的TCP连接状态调整至编号S0代表的状态,利用对应的状态转换用例,将测试对象的TCP连接状态从编号S0代表的状态调整至编号Si代表的状态,对于每个编号Si(i=0,1,2,...,8)代表的状态,使用测试用例{Si},每使用一个测试用例,使用对应的状态验证用例{Ai}检查测试对象是否正常。当确定测试对象出现异常时,停止当前测试流程,并记录相应的测试用例{Si}、状态验证用例{Ai}和测试对象的当前状态以供排查。
概括性的,参考如图4所示的一种针对TCP连接状态进行测试的流程示意图,具体包括410、测试对象的Si状态测试。420、将测试对象调整至状态S0。430、使用状态转换用例Ti将测试对象调整至状态Si。440、使用状态测试用例进行测试。450、使用状态验证用例进行测试。460、记录测试对象的状态和测试结果。
进一步的,基于状态机的TCP模糊测试方法还包括:
在针对TCP连接状态之间的转换进行测试时,控制测试对象的TCP连接状态为状态转换路径对应的前状态;
针对每个所述状态转换路径,在所述测试对象运行第二状态转换用例,以控制所述测试对象的TCP连接状态从所述前状态调整至所述状态转换路径对应的后状态,并使用所述后状态对应的第二状态验证用例对所述测试对象运行完所述第二状态转换用例之后的状态进行验证,获得第二验证结果;
当所述第二验证结果为第二预设结果时,记录所述第二状态转换用例、所述第二状态验证用例以及所述测试对象运行完所述第二状态转换用例之后的状态;
其中,所述初始状态以及与所述初始状态关联的下一状态组成一条状态转换路径,所述初始状态为状态转换路径对应的前状态,所述下一状态为状态转换路径对应的后状态。
在一些具体实施方式中,当测试对象为服务端时,在针对TCP连接状态之间的转换进行测试时,即Ti状态转换测试(S前->S后),设置循环变量i从0到12循环,将测试对象调整至Ti所需初始状态S前,对于每个状态转换路径Ti(i=0,1,2,...,12)使用状态转换用例{Ti},每使用一个状态转换用例,使用与S后状态对应的验证用例{A后}检查测试对象是否正常,当测试对象出现异常时,停止当前测试,记录相应的状态转换用例{Ti}、状态验证用例{A后}和测试对象的当前状态以供排查。
当测试对象为客户端时,在针对TCP连接状态之间的转换进行测试时,即Ti状态转换测试(S前->S后),设置循环变量i从0到11循环,将测试对象调整至Ti所需初始状态S前,对于每个状态转换路径Ti(i=0,1,2,...,11)使用状态转换用例{Ti},每使用一个状态转换用例,使用与S后状态对应的验证用例{A后}检查测试对象是否正常,当测试对象出现异常时,停止当前测试,记录相应的状态转换用例{Ti}、状态验证用例{A后}和测试对象的当前状态以供排查。
对应的,参考如图5所示的一种针对TCP连接状态之间的转换进行测试的流程示意图,具体包括510、测试对象的状态转换测试Ti。520、将测试对象调整至状态S前。530、使用状态转换用例Ti,将测试对象调整至状态S后。540、使用状态验证用例进行验证。550、记录测试对象的状态和测试结果。
本发明实施例的技术方案通过为每种TCP连接状态设置对应的测试用例以及状态验证用例,为不同状态之间设置状态转换用例,在针对TCP连接状态进行测试时,基于第一状态转换用例控制所述测试对象的TCP连接状态从所述初始状态调整至与所述初始状态关联的下一状态,针对每个所述下一状态,在所述测试对象运行对应的第一测试用例,并使用对应的第一状态验证用例对所述测试对象运行完所述第一测试用例之后的状态进行验证,获得第一验证结果,当所述第一验证结果为第一预设结果时,记录所述第一测试用例、所述第一状态验证用例以及所述测试对象运行完所述第一测试用例之后的状态,极大地提高了测试用例的有效性以及测试的覆盖度。
图6为本发明实施例提供的一种电子设备的结构示意图。如图6所示,电子设备400包括一个或多个处理器401和存储器402。
处理器401可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备400中的其他组件以执行期望的功能。
存储器402可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器401可以运行所述程序指令,以实现上文所说明的本发明任意实施例的基于状态机的TCP模糊测试方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如初始外参、阈值等各种内容。
在一个示例中,电子设备400还可以包括:输入装置403和输出装置404,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。该输入装置403可以包括例如键盘、鼠标等等。该输出装置404可以向外部输出各种信息,包括预警提示信息、制动力度等。该输出装置404可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图6中仅示出了该电子设备400中与本发明有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备400还可以包括任何其他适当的组件。
除了上述方法和设备以外,本发明的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本发明任意实施例所提供的基于状态机的TCP模糊测试方法的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本发明实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本发明的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本发明任意实施例所提供的基于状态机的TCP模糊测试方法的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
需要说明的是,本发明所用术语仅为了描述特定实施例,而非限制本申请范围。如本发明说明书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法或者设备中还存在另外的相同要素。
还需说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。除非另有明确的规定和限定,术语“安装”、“相连”、“连接”等应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案。
Claims (6)
1.一种基于状态机的TCP模糊测试方法,其特征在于,包括:
在针对TCP连接状态进行测试时,控制测试对象的TCP连接状态为预设的初始状态;
基于第一状态转换用例控制所述测试对象的TCP连接状态从所述初始状态调整至与所述初始状态关联的下一状态,其中,所述第一状态转换用例与所述初始状态以及所述下一状态相关联;
针对每个所述下一状态,在所述测试对象运行对应的第一测试用例,并使用对应的第一状态验证用例对所述测试对象运行完所述第一测试用例之后的状态进行验证,获得第一验证结果,所述第一测试用例以及所述第一状态验证用例与所述下一状态相关联;
当所述第一验证结果为第一预设结果时,记录所述第一测试用例、所述第一状态验证用例以及所述测试对象运行完所述第一测试用例之后的状态。
2.根据权利要求1所述的方法,其特征在于,还包括:
在针对TCP连接状态之间的转换进行测试时,控制测试对象的TCP连接状态为状态转换路径对应的前状态;
针对每个所述状态转换路径,在所述测试对象运行第二状态转换用例,以控制所述测试对象的TCP连接状态从所述前状态调整至所述状态转换路径对应的后状态,并使用所述后状态对应的第二状态验证用例对所述测试对象运行完所述第二状态转换用例之后的状态进行验证,获得第二验证结果;
当所述第二验证结果为第二预设结果时,记录所述第二状态转换用例、所述第二状态验证用例以及所述测试对象运行完所述第二状态转换用例之后的状态;
其中,所述初始状态以及与所述初始状态关联的下一状态组成一条状态转换路径,所述初始状态为状态转换路径对应的前状态,所述下一状态为状态转换路径对应的后状态。
3.根据权利要求1所述的方法,其特征在于,所述测试对象包括服务端;
所述初始状态为CLOSED时,与所述初始状态关联的下一状态为LISTEN;
所述初始状态为LISTEN时,与所述初始状态关联的下一状态为SYN_RCVD;
所述初始状态为SYN_RCVD时,与所述初始状态关联的下一状态为ESTABLISHED;
所述初始状态为ESTABLISHED时,与所述初始状态关联的下一状态为CLOSE_WAIT或者FIN_WAIT_1;
所述初始状态为CLOSE_WAIT时,与所述初始状态关联的下一状态为LAST_ACK;
所述初始状态为LAST_ACK时,与所述初始状态关联的下一状态为CLOSED;
所述初始状态为FIN_WAIT_1时,与所述初始状态关联的下一状态为FIN_WAIT_2、CLOSING或者TIME_WAIT;
所述初始状态为FIN_WAIT_2时,与所述初始状态关联的下一状态为TIME_WAIT;
所述初始状态为CLOSING时,与所述初始状态关联的下一状态为TIME_WAIT;
所述初始状态为TIME_WAIT时,与所述初始状态关联的下一状态为CLOSED。
4.根据权利要求1所述的方法,其特征在于,所述测试对象包括客户端;
所述初始状态为CLOSED时,与所述初始状态关联的下一状态为SYN_SENT;
所述初始状态为SYN_SENT时,与所述初始状态关联的下一状态为ESTABLISHED;
所述初始状态为ESTABLISHED时,与所述初始状态关联的下一状态为CLOSE_WAIT或者FIN_WAIT_1;
所述初始状态为CLOSE_WAIT时,与所述初始状态关联的下一状态为LAST_ACK;
所述初始状态为LAST_ACK时,与所述初始状态关联的下一状态为CLOSED;
所述初始状态为FIN_WAIT_1时,与所述初始状态关联的下一状态为FIN_WAIT_2、CLOSING或者TIME_WAIT;
所述初始状态为FIN_WAIT_2时,与所述初始状态关联的下一状态为TIME_WAIT;
所述初始状态为CLOSING时,与所述初始状态关联的下一状态为TIME_WAIT;
所述初始状态为TIME_WAIT时,与所述初始状态关联的下一状态为CLOSED。
5.一种电子设备,其特征在于,所述电子设备包括:
处理器和存储器;
所述处理器通过调用所述存储器存储的程序或指令,用于执行如权利要求1至4任一项所述的基于状态机的TCP模糊测试方法的步骤。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储程序或指令,所述程序或指令使计算机执行如权利要求1至4任一项所述的基于状态机的TCP模糊测试方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211081251.8A CN115174441B (zh) | 2022-09-06 | 2022-09-06 | 基于状态机的tcp模糊测试方法、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211081251.8A CN115174441B (zh) | 2022-09-06 | 2022-09-06 | 基于状态机的tcp模糊测试方法、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115174441A true CN115174441A (zh) | 2022-10-11 |
CN115174441B CN115174441B (zh) | 2022-12-13 |
Family
ID=83481037
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211081251.8A Active CN115174441B (zh) | 2022-09-06 | 2022-09-06 | 基于状态机的tcp模糊测试方法、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115174441B (zh) |
Citations (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102087631A (zh) * | 2011-03-09 | 2011-06-08 | 中国人民解放军国发科学技术大学 | 一种面向状态协议实现软件的模糊测试方法 |
CN102624574A (zh) * | 2011-01-27 | 2012-08-01 | 西门子公司 | 一种对协议实现进行安全测试的方法及装置 |
CN103441990A (zh) * | 2013-08-09 | 2013-12-11 | 中国人民解放军理工大学 | 基于状态融合的协议状态机自动推断方法 |
CN104142888A (zh) * | 2014-07-14 | 2014-11-12 | 北京理工大学 | 一种有状态协议的规则化状态机模型设计方法 |
CN105763392A (zh) * | 2016-02-19 | 2016-07-13 | 中国人民解放军理工大学 | 一种基于协议状态的工控协议模糊测试方法 |
CN108255711A (zh) * | 2017-12-29 | 2018-07-06 | 湖南优利泰克自动化系统有限公司 | 一种基于污点分析的plc固件模糊测试系统及测试方法 |
CN109525457A (zh) * | 2018-11-14 | 2019-03-26 | 中国人民解放军陆军工程大学 | 一种基于状态迁移遍历的网络协议模糊测试方法 |
CN110232012A (zh) * | 2018-03-06 | 2019-09-13 | 国家计算机网络与信息安全管理中心 | 一种基于xml的模糊测试语言协议测试脚本和测试引擎 |
CN111240883A (zh) * | 2020-01-16 | 2020-06-05 | 北京工业大学 | 基于有限状态机的系统诊断方法、装置、设备及存储介质 |
CN111552635A (zh) * | 2020-04-03 | 2020-08-18 | 深圳壹账通智能科技有限公司 | 一种数据检测方法、设备、服务器及可读存储介质 |
CN112019403A (zh) * | 2020-08-24 | 2020-12-01 | 杭州弈鸽科技有限责任公司 | 一种物联网消息协议状态机的跨平台自动化挖掘方法与系统 |
CN112181833A (zh) * | 2020-09-28 | 2021-01-05 | 全球能源互联网研究院有限公司 | 一种智能化模糊测试方法、装置及系统 |
CN112395209A (zh) * | 2021-01-21 | 2021-02-23 | 博智安全科技股份有限公司 | 工控协议模糊测试用例生成方法、装置、设备及存储介质 |
CN112653693A (zh) * | 2020-12-21 | 2021-04-13 | 哈尔滨工大天创电子有限公司 | 一种工控协议分析方法、装置、终端设备及可读存储介质 |
CN112804220A (zh) * | 2020-12-31 | 2021-05-14 | 北京天融信网络安全技术有限公司 | 一种防火墙测试方法、装置、电子设备及存储介质 |
CN113328914A (zh) * | 2021-05-31 | 2021-08-31 | 山石网科通信技术股份有限公司 | 工控协议的模糊测试方法、装置、存储介质及处理器 |
CN113326181A (zh) * | 2020-02-29 | 2021-08-31 | 华为技术有限公司 | 有状态网络协议的模糊测试方法、装置及存储介质 |
CN113572760A (zh) * | 2021-07-22 | 2021-10-29 | 全球能源互联网研究院有限公司 | 一种设备协议漏洞检测方法及装置 |
CN114064451A (zh) * | 2021-09-29 | 2022-02-18 | 深圳市易聆科网络安全有限公司 | 一种iec104协议的模糊测试方法及系统 |
CN114138671A (zh) * | 2021-12-13 | 2022-03-04 | 北京邮电大学 | 一种协议的测试方法、装置、电子设备及存储介质 |
CN114501458A (zh) * | 2022-01-27 | 2022-05-13 | 重庆邮电大学 | 基于扩展有限状态机的wia-pa协议模糊测试数据生成方法 |
-
2022
- 2022-09-06 CN CN202211081251.8A patent/CN115174441B/zh active Active
Patent Citations (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102624574A (zh) * | 2011-01-27 | 2012-08-01 | 西门子公司 | 一种对协议实现进行安全测试的方法及装置 |
CN102087631A (zh) * | 2011-03-09 | 2011-06-08 | 中国人民解放军国发科学技术大学 | 一种面向状态协议实现软件的模糊测试方法 |
CN103441990A (zh) * | 2013-08-09 | 2013-12-11 | 中国人民解放军理工大学 | 基于状态融合的协议状态机自动推断方法 |
CN104142888A (zh) * | 2014-07-14 | 2014-11-12 | 北京理工大学 | 一种有状态协议的规则化状态机模型设计方法 |
CN105763392A (zh) * | 2016-02-19 | 2016-07-13 | 中国人民解放军理工大学 | 一种基于协议状态的工控协议模糊测试方法 |
CN108255711A (zh) * | 2017-12-29 | 2018-07-06 | 湖南优利泰克自动化系统有限公司 | 一种基于污点分析的plc固件模糊测试系统及测试方法 |
CN110232012A (zh) * | 2018-03-06 | 2019-09-13 | 国家计算机网络与信息安全管理中心 | 一种基于xml的模糊测试语言协议测试脚本和测试引擎 |
CN109525457A (zh) * | 2018-11-14 | 2019-03-26 | 中国人民解放军陆军工程大学 | 一种基于状态迁移遍历的网络协议模糊测试方法 |
CN111240883A (zh) * | 2020-01-16 | 2020-06-05 | 北京工业大学 | 基于有限状态机的系统诊断方法、装置、设备及存储介质 |
CN113326181A (zh) * | 2020-02-29 | 2021-08-31 | 华为技术有限公司 | 有状态网络协议的模糊测试方法、装置及存储介质 |
CN111552635A (zh) * | 2020-04-03 | 2020-08-18 | 深圳壹账通智能科技有限公司 | 一种数据检测方法、设备、服务器及可读存储介质 |
CN112019403A (zh) * | 2020-08-24 | 2020-12-01 | 杭州弈鸽科技有限责任公司 | 一种物联网消息协议状态机的跨平台自动化挖掘方法与系统 |
CN112181833A (zh) * | 2020-09-28 | 2021-01-05 | 全球能源互联网研究院有限公司 | 一种智能化模糊测试方法、装置及系统 |
CN112653693A (zh) * | 2020-12-21 | 2021-04-13 | 哈尔滨工大天创电子有限公司 | 一种工控协议分析方法、装置、终端设备及可读存储介质 |
CN112804220A (zh) * | 2020-12-31 | 2021-05-14 | 北京天融信网络安全技术有限公司 | 一种防火墙测试方法、装置、电子设备及存储介质 |
CN112395209A (zh) * | 2021-01-21 | 2021-02-23 | 博智安全科技股份有限公司 | 工控协议模糊测试用例生成方法、装置、设备及存储介质 |
CN113328914A (zh) * | 2021-05-31 | 2021-08-31 | 山石网科通信技术股份有限公司 | 工控协议的模糊测试方法、装置、存储介质及处理器 |
CN113572760A (zh) * | 2021-07-22 | 2021-10-29 | 全球能源互联网研究院有限公司 | 一种设备协议漏洞检测方法及装置 |
CN114064451A (zh) * | 2021-09-29 | 2022-02-18 | 深圳市易聆科网络安全有限公司 | 一种iec104协议的模糊测试方法及系统 |
CN114138671A (zh) * | 2021-12-13 | 2022-03-04 | 北京邮电大学 | 一种协议的测试方法、装置、电子设备及存储介质 |
CN114501458A (zh) * | 2022-01-27 | 2022-05-13 | 重庆邮电大学 | 基于扩展有限状态机的wia-pa协议模糊测试数据生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115174441B (zh) | 2022-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10614463B1 (en) | System and method for facilitating programmatic verification of transactions | |
US20100023454A1 (en) | Transaction Authorization | |
JP4315696B2 (ja) | ホスト端末エミュレーションプログラム、中継用プログラムおよびホスト端末エミュレーション方法 | |
US6349336B1 (en) | Agent/proxy connection control across a firewall | |
US9521119B2 (en) | Extensible access control architecture | |
US8468235B2 (en) | System for extranet security | |
US7743160B2 (en) | System and method of delaying connection acceptance to support connection request processing at layer-7 | |
US11245537B2 (en) | System and method for a local server with self-signed certificates | |
CN114143034A (zh) | 一种网络访问安全性检测方法及装置 | |
US9225703B2 (en) | Protecting end point devices | |
CN112671907A (zh) | 终端设备调试方法及装置、终端设备、存储介质 | |
CN111294386A (zh) | 服务器通信方法、装置和电子设备 | |
CN114938288B (zh) | 一种数据访问方法、装置、设备以及存储介质 | |
CN114124556B (zh) | 一种网络访问控制方法、装置、设备及存储介质 | |
CN111726328B (zh) | 用于对第一设备进行远程访问的方法、系统以及相关设备 | |
CN115134344A (zh) | 一种虚拟机控制台的控制方法及组件 | |
CN115174441B (zh) | 基于状态机的tcp模糊测试方法、设备和存储介质 | |
KR101463873B1 (ko) | 정보 유출 차단 장치 및 방법 | |
CN114422139A (zh) | Api网关请求安全验证方法、装置、电子设备及计算机可读介质 | |
CN112910915A (zh) | 可信连接认证方法、装置、设备和计算机可读存储介质 | |
CN114866247B (zh) | 一种通信方法、装置、系统、终端及服务器 | |
CN116094743A (zh) | 一种信息发送方法、信息接收方法及装置 | |
US11070615B2 (en) | Method, device and computer program product for transaction negotiation | |
CN107800715A (zh) | 一种Portal认证方法及接入设备 | |
CN114448706A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |