harness-writing
编写有效模糊测试 (fuzzing) 脚本的技术。适用于建立新的模糊测试目标或优化现有的脚本代码。
简介
harness-writing 技能提供了一套结构化的方法,用于开发高质量的模糊测试 (fuzzing) 脚本。这些脚本是模糊测试器与受测系统 (SUT) 之间最重要的切入点。一个设计良好的脚本是任何模糊测试活动中最关键的组件,因为它决定了来自 libFuzzer 或 cargo-fuzz 等工具的随机原始数据,如何转换为应用程序可理解的输入。此技能协助开发者避开常见陷阱,例如遗漏代码路径、无法重现的崩溃,或对复杂子系统的测试覆盖率不足。
-
使用标准接口(如 LLVMFuzzerTestOneInput 或 fuzz_target! 宏)来实现 C、C++ 和 Rust 的脚本模式。
-
使用 FuzzedDataProvider 的结构化数据提取策略,将原始字节转换为类型化基本类型、字符串和复杂对象。
-
输入验证逻辑,用于过滤掉无意义或格式错误的输入,确保测试器将资源集中在深度逻辑,而非表面解析错误。
-
整合确定性检查,以确保在发现崩溃后能轻松进行重现。
-
处理交错模糊测试 (interleaved fuzzing) 的进阶技术,通过单个脚本管理多个作业或 API 调用,以触发受测系统内的复杂状态转换。
-
在发起新的模糊测试活动,或现有覆盖率不足以发现深层安全漏洞时,请应用此技术。
-
利用提供的字节转型、大小验证和数据序列化的快速参考模式,以减少重复性代码。
-
确保脚本能有效测试高复杂度区域,例如协议解析器、文件格式处理、加密运算及输入验证常式。
-
限制:此工具不会自动生成特定于复杂逻辑的脚本;它提供手动建立所需的架构框架与代码模式。用户应确保不会跳过已满足覆盖率需求且维护良好的现有基础设施。
-
预期的输入包括目标源代码、API 文档和任何现有的测试装置。预期的输出是稳健且高效的模糊测试入口,能够驱动受测系统进入深层且高风险的代码路径。
仓库统计
- Star 数
- 4,884
- Fork 数
- 424
- Open Issue 数
- 21
- 主要语言
- Python
- 默认分支
- main
- 同步状态
- 空闲
- 最近同步时间
- 2026年4月29日 14:38