如果用户经常通过电脑访问互联网,他们必须接触到远程服务软件。一般来说,使用远程数据交换的软件系统统称为远程服务软件。这种软件通常工作在电脑上,叫做服务器,而用户在使用这些软件时,通常通过客户电脑上的客户端与这些软件进行交互。服务端程序的漏洞常常通过网络协议模糊测试挖掘出来,其中以浏览器漏洞最为典型。
网络协议模糊测试。
强制性或基于变异的模糊测试,在挖掘文件处理软件的漏洞时,模糊测试器使用不同的方法对文件进行变异,然后将变异的文件提交给目标软件进行处理。然而,在网络模糊测试的环境下,测试人员通常使用嗅探软件捕捉数据包,然后将捕捉到的数据包进行变异,最后发送给目标程序。当然,情况并不总是那么简单。如果远程服务程序能够保护基本的重复攻击,那么简单的变异模糊测试将很难产生令人满意的结果。类似地,如果目标程序能够对数据进行校验和检查,那么基于变异模糊测试也很难产生令人满意的效果。总而言之,基于变异的模糊测试在文件模糊测试领域得到了很好的应用,但是在网络协议模糊测试领域并不十分出色。
智能强模糊测试和基于生成的模糊测试
对于智能强制模糊测试,测试人员必须花一些时间研究协议的规范。智能模糊测试器还是模糊测试引擎,所以还是会强制攻击目标软件。但是,测试人员在正确配置测试文件后,可以使测试过程更加智能化。一般来说,这些配置文件包含描述协议语言的元数据。如果要模糊测试像FTP这样的网络协议,智能模糊测试通常是。最佳方法。如果测试人员能够在配置文件中正确使用协议的各种命令(如USER、PASS、CWD等。),他们将能够对目标软件进行非常彻底的测试。基于生成的模糊测试器的开发可以建立在已经存在的模糊测试器框架上(如PEACH等),当然也可以从零开始创建。通常,特定协议的模糊测试器不能用于测试其他协议。使用特定协议的模糊测试器时,需要做的工作是选择测试目标,配置测试参数,然后进行测试。
修改客户端变异模糊测试
模糊测试中常见的问题之一是,随着模糊测试器复杂性的提高,开发难度开始接近开发完整客户端的难度。因此,一些测试人员提出了一个简化方案,修改客户端的源代码,使其成为模糊测试器。事实上,该方案不是在模糊器中达成完整的协议,而是将模糊测试器嵌入客户端程序中。这样,模糊测试器可以使用原协议代码,从而将模糊测试器开发人员的工作量少到最小。目前,一些测试人员已经以这种方式开发了一些工作。例如,GOBBLES编写的sshutheopenSH漏洞使用工具。总之,这种方法更适合像SH这样复杂的协议。