【模糊测试】课堂笔记

模糊测试

模糊测试过程通常是自动化的。这个过程经典地分为以下几个阶段。

  • 准备:这是第一阶段,重点是 SUT 输入和输出格式的识别和规范。基于此,规范可以减少生成初始无效模糊数据的可能性并创建有效且精确的输入。
  • Fuzz Data Generation:在这个阶段,生成SUT的输入数据,同时考虑到前一阶段识别的输入格式。通常,数据的生成是通过更改特定数据来完成的。首先,选择一个种子(即原始输入);接下来,模糊器通过在种子中插入小的修改来创建新的模糊数据。这一代是模糊测试的一个关键方面,因为漏洞搜索的性能与这些输入的质量直接相关[11]、[15],尤其是初始种子的选择[49]。
  • 执行:在这个阶段,通过使用指定的媒体(通信包、输入文件、环境变量、模拟输入等)将先前生成的数据发送到SUT。
  • 监控:在此阶段,监控 SUT 的输出和行为,以检测可能与触发漏洞相关的意外输出或崩溃。这是模糊测试的核心基础之一,缺乏监控功能可能会导致漏洞发现结果不佳。
  • 分析:在此阶段,分析崩溃和监控阶段提供的输入,以确定哪些测试用例导致漏洞或异常行为触发。
  • Bug Reporting:最后,当fuzzing过程完成时,报告在监控阶段发现并稍后分析的漏洞。此外,保存触发的测试用例,以便重复测试和重现崩溃,从而更深入地分析漏洞。

你可能感兴趣的:(网络安全,笔记)