Fuzz 测试(模糊测试)全套专业名词详解
2026/7/24 14:04:12 网站建设 项目流程

目录

一、基础核心术语

1. Fuzz Testing / Fuzzing 模糊测试

2. Fuzzer 模糊器

3. Target / SUT(System Under Test)被测目标

二、用例生成相关名词(Fuzz 核心)

1. Mutator 变异器

2. Seed / Corpus 种子语料 / 语料库

3. Generational Fuzz 生成式模糊

4. Mutation-based Fuzz 变异式模糊

三、覆盖率与引导优化名词(智能 Fuzz)

1. Code Coverage 代码覆盖率

2. Feedback-driven Fuzz 反馈引导式模糊

3. Path 代码路径

四、异常捕获、漏洞判定名词

1. Crash 程序崩溃

2. Sanitizer 内存检查消毒器

3. Hang / Timeout 卡死 / 超时

4. Unique Crash 唯一崩溃样本

5. Stack Trace / Backtrace 调用堆栈

五、高级 Fuzz 工程术语

1. Instrumentation 插桩

2. Binary-only Fuzz 无源码模糊测试

3. Harness / Fuzz Harness 测试驱动桩

4. Dictionary 变异字典

5. Deterministic Mutation 确定性变异

6. Crossover / Splicing 样本拼接

六、漏洞类型专属名词(Fuzz 高频挖出)

七、工具生态通用名词


一、基础核心术语

1. Fuzz Testing / Fuzzing 模糊测试

定义:一种自动化软件漏洞挖掘技术,通过向程序接口、文件解析器、网络协议、API 等输入大量非预期、畸形、随机、半随机构造的数据,迫使程序出现崩溃、内存越界、死锁、逻辑异常、权限绕过等漏洞。 核心逻辑:正常输入不会暴露缺陷,异常脏数据才能触发边界缺陷。

2. Fuzzer 模糊器

定义:执行模糊测试的自动化工具程序,负责生成畸形用例、投喂目标程序、监控程序异常、保存崩溃样本。 分类:文件 Fuzzer、网络协议 Fuzzer、API Fuzzer、内核 Fuzzer、Web Fuzzer。

3. Target / SUT(System Under Test)被测目标

定义:被模糊测试的程序、组件、接口、驱动、固件。 例:图片解析库 libpng、HTTP 服务、Windows 驱动、移动端 APP、数据库。

二、用例生成相关名词(Fuzz 核心)

1. Mutator 变异器

定义:对种子用例做修改、篡改,生成畸形新用例的算法 / 模块,是 Fuzz 核心模块。 常见变异方式:

  • 位翻转(Bit Flip):随机修改二进制单个 bit
  • 字节替换:把正常字节替换成 0x00、0xFF、特殊控制字符
  • 增删数据:超长字符串、空数据、截断文件
  • 数值溢出:超大整数、负数、零值

2. Seed / Corpus 种子语料 / 语料库

Seed 种子:格式合法、结构完整的正常样本(如一张正常 png、标准 http 请求),作为变异的原始素材。Corpus 语料库:全部种子 + 变异后有效覆盖新代码路径的优质用例集合。 作用:无种子纯随机生成数据效率极低,基于真实样本变异更容易命中程序解析逻辑。

3. Generational Fuzz 生成式模糊

定义:不依赖种子,根据协议 / 文件格式语法规则,从零生成合法 + 畸形混合用例。 适用场景:已知完整协议规范(如 HTTP、TCP、protobuf)。

4. Mutation-based Fuzz 变异式模糊

定义:行业最主流方案,基于现有种子样本随机篡改生成脏数据,AFL、libFuzzer 均为此类。

三、覆盖率与引导优化名词(智能 Fuzz)

1. Code Coverage 代码覆盖率

定义:衡量 Fuzzer 是否走到程序全部代码分支的指标。 模糊测试核心目标:最大化代码覆盖率,覆盖罕用分支、异常处理逻辑。 细分:行覆盖率、分支覆盖率、边覆盖率(AFL 使用边覆盖)。

2. Feedback-driven Fuzz 反馈引导式模糊

定义:现代高性能 Fuzz 核心机制,工具每次运行用例后,收集代码覆盖率反馈

  • 若新用例走到了之前未覆盖的代码 → 判定为优质用例,存入语料库持续变异;
  • 若重复旧代码路径 → 丢弃,不再重点变异。 代表工具:AFL++、libFuzzer。

3. Path 代码路径

定义:程序执行时经过的一串代码分支组合,不同输入会触发不同路径。Fuzzer 持续探索全新路径以挖掘深层漏洞。

四、异常捕获、漏洞判定名词

1. Crash 程序崩溃

定义:Fuzz 最直观的缺陷现象,程序异常终止。 常见崩溃根源:缓冲区溢出、空指针解引用、释放后使用 UAF、数组越界、除零错误。

2. Sanitizer 内存检查消毒器

定义:编译器插桩工具,在程序运行时实时检测内存违规行为,放大漏洞触发概率,精准定位缺陷。 主流类型:

  • ASAN(AddressSanitizer):检测缓冲区溢出、UAF、空指针、堆破坏(Fuzz 标配)
  • UBSAN(UndefinedBehaviorSanitizer):捕获整数溢出、未定义运算
  • MSAN(MemorySanitizer):检测读取未初始化内存
  • TSAN(ThreadSanitizer):多线程竞争、数据竞态漏洞

3. Hang / Timeout 卡死 / 超时

定义:输入畸形数据后程序进入死循环、无限等待、阻塞,无正常返回,属于高危逻辑漏洞。Fuzzer 通过计时器判定超时卡死。

4. Unique Crash 唯一崩溃样本

定义:去重后的崩溃用例。大量畸形输入可能触发同一处代码漏洞,工具通过崩溃堆栈哈希去重,避免重复分析同一漏洞。

5. Stack Trace / Backtrace 调用堆栈

定义:程序崩溃时记录的函数调用链路,用于定位漏洞发生的具体代码行,是漏洞复现与修复的关键依据。

五、高级 Fuzz 工程术语

1. Instrumentation 插桩

定义:编译阶段或运行时向目标程序插入检测代码(探针),实现两大功能:

  1. 收集代码覆盖率,实现反馈引导;
  2. 配合 Sanitizer 监控内存异常。 分类:编译期插桩(AFL、libFuzzer)、二进制插桩(QEMU、Frida,无源码 Fuzz)。

2. Binary-only Fuzz 无源码模糊测试

定义:没有目标程序源代码,直接对编译后的二进制 exe/dll/elf 进行模糊测试,依靠 QEMU、Frida、Radamsa 等二进制插桩方案。 对比:源码 Fuzz(有源码,编译插桩,效率更高)。

3. Harness / Fuzz Harness 测试驱动桩

定义:一段简短封装代码,作为 Fuzzer 和被测函数之间的桥梁。 作用:Fuzzer 生成二进制字节流,Harness 把字节流传入目标待测试函数,隔离环境、简化测试入口。 示例 libFuzzer 标准 Harness 函数LLVMFuzzerTestOneInput

4. Dictionary 变异字典

定义:人工预设特殊关键词、控制字符、协议标记、危险字符串的文本库,变异器优先使用字典内容替换种子数据,大幅提升命中解析漏洞概率。 例:XML 标签、SQL 特殊字符、超长分隔符、空字节 0x00。

5. Deterministic Mutation 确定性变异

定义:对种子执行一套固定、完整的基础变异操作(逐位翻转、字节替换),确保基础畸形场景全覆盖;与之相对:随机变异(随机篡改,速度更快)。

6. Crossover / Splicing 样本拼接

高级变异策略:将两个不同种子样本的二进制片段拼接融合,生成全新混合样本,用于破解复杂多字段文件 / 协议解析逻辑。

六、漏洞类型专属名词(Fuzz 高频挖出)

  1. Buffer Overflow 缓冲区溢出:写入数据超出内存缓冲区长度,覆盖相邻内存,可执行任意代码。
  2. Use-After-Free (UAF) 释放后重用:堆内存释放后,程序仍保留指针并读写该内存,高危内存破坏漏洞。
  3. Null Pointer Dereference 空指针解引用:程序调用地址为 0 的指针,直接触发程序崩溃。
  4. Heap Corruption 堆破坏:堆内存管理结构被篡改,引发崩溃、权限逃逸。
  5. Integer Overflow 整数溢出:数值运算超出变量存储上限,数值反转,引发缓冲区分配过小漏洞。
  6. Divide-by-Zero 除零错误:除数为 0 触发程序异常终止。

七、工具生态通用名词

  1. AFL++:当下最流行的开源反馈式模糊测试工具,基于 QEMU 二进制插桩,支持源码 / 无源码 Fuzz。
  2. libFuzzer:LLVM 内置轻量级 Fuzzer,集成 Clang 编译器,适合单元函数模糊测试。
  3. Radamsa:独立通用变异器,常搭配脚本实现简易协议 / 文件 Fuzz。
  4. QEMU Mode QEMU 模式:AFL 的二进制模拟器模式,无需源码即可对闭源程序插桩模糊。
  5. Minimization 样本最小化:对触发崩溃的超长畸形用例自动删减无关字节,得到最小可复现样本,方便开发定位漏洞。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询