基于状态机的TCP模糊测试方法、设备和存储介质技术

技术编号:35174282 阅读:40 留言:0更新日期:2022-10-12 17:40
本发明专利技术涉及信息安全领域,公开了一种基于状态机的TCP模糊测试方法、设备和存储介质。该方法包括:在针对TCP连接状态进行测试时,控制测试对象的TCP连接状态为预设的初始状态;基于第一状态转换用例控制所述测试对象的TCP连接状态从所述初始状态调整至与所述初始状态关联的下一状态,针对每个所述下一状态,在所述测试对象运行对应的第一测试用例,并使用对应的第一状态验证用例对所述测试对象运行完所述第一测试用例之后的状态进行验证;记录第一测试用例、第一状态验证用例以及测试对象运行完第一测试用例之后的状态。本实施例解决了TCP检测中测试用例有效性低、测试结果的覆盖度低的问题。度低的问题。度低的问题。

【技术实现步骤摘要】
基于状态机的TCP模糊测试方法、设备和存储介质


[0001]本专利技术涉及信息安全领域,尤其涉及一种基于状态机的TCP模糊测试方法、设备和存储介质。

技术介绍

[0002]协议漏洞挖掘是保证网络通信安全的重要手段。模糊测试是目前常用的协议漏洞挖掘方法,通过向协议实体输入变异的报文,监控协议实体的运行状况,分析协议实体发生的异常,从而发现潜在的安全漏洞。
[0003]针对TCP(Transmission Control Protocol,传输控制协议)的模糊测试,当测试用例与协议实体状态不匹配时,测试用例会被直接丢弃,目前大部分TCP的模糊测试方法并没有充分考虑TCP每种状态下的有效测试用例,以及状态之间的转换测试用例,导致测试用例有效性低,测试覆盖度低。
[0004]有鉴于此,特提出本专利技术。

技术实现思路

[0005]为了解决上述技术问题,本专利技术提供了一种基于状态机的TCP模糊测试方法、设备和存储介质,解决了TCP检测中测试用例有效性低、测试结果的覆盖度低的问题。
[0006]本专利技术实施例提供了一种基于状态机的TCP模糊测试方法,该方法包括:在针对TCP连接状态进行测试时,控制测试对象的TCP连接状态为预设的初始状态;基于第一状态转换用例控制所述测试对象的TCP连接状态从所述初始状态调整至与所述初始状态关联的下一状态,其中,所述第一状态转换用例与所述初始状态以及所述下一状态相关联;针对每个所述下一状态,在所述测试对象运行对应的第一测试用例,并使用对应的第一状态验证用例对所述测试对象运行完所述第一测试用例之后的状态进行验证,获得第一验证结果,所述第一测试用例以及所述第一状态验证用例与所述下一状态相关联;当所述第一验证结果为第一预设结果时,记录所述第一测试用例、所述第一状态验证用例以及所述测试对象运行完所述第一测试用例之后的状态。
[0007]本专利技术实施例提供了一种电子设备,所述电子设备包括:处理器和存储器;所述处理器通过调用所述存储器存储的程序或指令,用于执行任一实施例所述的基于状态机的TCP模糊测试方法的步骤。
[0008]本专利技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储程序或指令,所述程序或指令使计算机执行任一实施例所述的基于状态机的TCP模糊测试方法的步骤。
[0009]本专利技术实施例具有以下技术效果:
通过为每种TCP连接状态设置对应的测试用例以及状态验证用例,为不同状态之间设置状态转换用例,在针对TCP连接状态进行测试时,基于第一状态转换用例控制所述测试对象的TCP连接状态从所述初始状态调整至与所述初始状态关联的下一状态,针对每个所述下一状态,在所述测试对象运行对应的第一测试用例,并使用对应的第一状态验证用例对所述测试对象运行完所述第一测试用例之后的状态进行验证,获得第一验证结果,当所述第一验证结果为第一预设结果时,记录所述第一测试用例、所述第一状态验证用例以及所述测试对象运行完所述第一测试用例之后的状态,极大地提高了测试用例的有效性以及测试的覆盖度。
附图说明
[0010]为了更清楚地说明本专利技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0011]图1是本专利技术实施例提供的一种基于状态机的TCP模糊测试方法的流程图;图2是本专利技术实施例提供的一种服务端的TCP连接状态之间的迁移关系示意图;图3是本专利技术实施例提供的一种客户端的TCP连接状态之间的迁移关系示意图;图4是本专利技术实施例提供的一种针对TCP连接状态进行测试的流程示意图;图5是本专利技术实施例提供的一种针对TCP连接状态之间的转换进行测试的流程示意图;图6为本专利技术实施例提供的一种电子设备的结构示意图。
具体实施方式
[0012]为使本专利技术的目的、技术方案和优点更加清楚,下面将对本专利技术的技术方案进行清楚、完整的描述。显然,所描述的实施例仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施例,都属于本专利技术所保护的范围。
[0013]本专利技术实施例提供的基于状态机的TCP模糊测试方法可以由电子设备执行。图1是本专利技术实施例提供的一种基于状态机的TCP模糊测试方法的流程图。参见图1,该基于状态机的TCP模糊测试方法具体包括如下步骤:S110、在针对TCP连接状态进行测试时,控制测试对象的TCP连接状态为预设的初始状态。
[0014]其中,测试对象包括服务端和客户端。TCP连接的建立采用客户端

服务端模式,主动发起连接建立的应用进程为客户端,被动等待连接建立的应用进程为服务端。
[0015]建立TCP连接时的状态变迁为:建立连接之前服务端和客户端的TCP连接状态都为CLOSED。服务端创建socket后开始监听,变为LISTEN状态。客户端请求建立连接,向服务端发送SYN报文,客户端的状态变为SYN_SENT。服务端收到客户端的报文后向客户端发送ACK和SYN报文,此时服务端的状态变为SYN_RCVD。然后,客户端收到ACK、SYN,就向服务端发送ACK,客户端状态变为
ESTABLISHED,服务端收到客户端的ACK后也变为ESTABLISHED。此时,3次握手完成,服务端与客户端之间的TCP连接建立完成。
[0016]断开TCP连接时的状态变迁为:由于TCP连接是全双工的,断开连接会比建立连接复杂一些,首先客户端向服务端发送FIN报文,请求断开连接,其状态变为FIN_WAIT1。服务端收到FIN后向客户端发生ACK,服务端状态变为CLOSE_WAIT。客户端收到ACK后就进入FIN_WAIT2状态。此时连接已经断开一半。如果服务端还有数据要发送给客户端,就会继续发送,直到发完后发送FIN报文,此时服务端进入LAST_ACK状态。客户端收到服务端的FIN后,马上发送ACK给服务端,此时客户端进入TIME_WAIT状态,再等待一段时间后进入CLOSED状态。服务端收到客户端的ACK就进入CLOSED状态。
[0017]其中,还有一个状态没有提及:CLOSING状态。CLOSING状态表示客户端发生了FIN,但没有收到服务端的ACK,却收到了服务端的FIN。这种情况发生在服务端发送的ACK丢包的时候,因为网络传输有时会有意外。
[0018]概括性的,服务端的TCP连接状态包括如下几种:S0:CLOSED(没有任何连接状态)S1:LISTEN(侦听来自远方的tcp端口的连接请求)S2:SYN_RCVD(在收到和发送一个连接请求后等待对方对连接请求的确认)S3:ESTABLISHED(代表一个打开的连接)S4:CLOSE_WAIT(等待从本地用户发来的连接中断请求)S5:LAST_ACK(等待原来的发向远程tcp的连接中断请求的确认)本文档来自技高网
...

【技术保护点】

【技术特征摘要】
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;所述初始状态为CLO...

【专利技术属性】
技术研发人员:刘平一马超刘天宇贾先锋赵浩
申请(专利权)人:中汽数据天津有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1