如何执行模糊测试策略以压力测试第三层和第四层(网络和传输)的网络堆栈?我已经查看了生成模糊器的框架,例如SPIKE,但是我认为它们主要关注应用程序层及以上?是否有任何众所周知的技术可以在这些层中对众所周知的协议进行模糊测试,例如TCP?
谢谢。
如何执行模糊测试策略以压力测试第三层和第四层(网络和传输)的网络堆栈?我已经查看了生成模糊器的框架,例如SPIKE,但是我认为它们主要关注应用程序层及以上?是否有任何众所周知的技术可以在这些层中对众所周知的协议进行模糊测试,例如TCP?
谢谢。
fuzz
函数将对其进行模糊处理(您可以将其单独应用于每个层)。这使您可以从仅随机生成IP地址和端口对到创建并发送无意义的数据包的范围内操作。现在,似乎有很多公司使用Tcl/Expect进行自定义自动化测试网络。SIP、H.323、2层和3层协议等。
因此,如果Scapy不能满足您的需求,您可能可以编写或查找使用Expect编写的Tcl程序来完成工作。或者,您可能希望使用Scapy在Python中执行某些操作,并在Tcl中使用Expect执行其他操作。
Tcl长期以来一直被用于网络测试和管理应用程序。早在1990年代就有一本关于如何使用Tcl进行基于SNMP的网络管理的书籍。
Tcl的语法明显很奇怪,但其库非常强大。它具有类似于Python编程语言的标准库所能做的自定义网络行为的框架式能力。
与Python和其他脚本语言不同,Tcl程序有一个非常强大的工具,名为Expect(请参见expect man page)。
Expect有一个方便的功能,它可以自动生成一个Tcl测试脚本。生成的脚本调用Expect函数。在进行录制时,它作为被动中间人,记录对话的双方。就像你在MS Word或Emacs中编辑时记录宏一样。