攻击性模糊测试
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/offensive-fuzzing-hcws
技能介绍
模糊测试的常见卡点
攻击性模糊测试常卡在输入面遗漏、目标覆盖不足、崩溃漏报和停滞瓶颈上。输入面只盯 copy_from_user 会漏掉 DMA-BUF 操作、页错误处理、VM 操作结构体和分配回调;黑盒 fuzzer 覆盖差但快,白盒覆盖好却慢,工具选择不当直接拖慢进度;启动后长时间无新崩溃,可能缺字典、CmpLog 或导向策略;崩溃分类依赖正确的 sanitizer 和内核日志,选错 oracle 会漏掉内存安全或内核 UB 问题。
技能的核心工作流
该技能围绕输入面侦察、插桩构建、Harness 编写、语料构建、启动、监控和分类七步展开:
- 输入面侦察:映射文件、网络、IPC、系统调用和 IOCTL,优先覆盖修补过、复杂解析器、新增代码和输入入口;内核模块需查看 DMA-BUF 操作、VM 操作结构体等。
- 插桩与构建:Windows 用 MSVC 启用
Address Sanitizer,覆盖内存、未初始化读、并发和 UB 等 oracle。 - Harness 编写:支持 libFuzzer、Honggfuzz
HF_ITER、AFL++ 持久模式、macOS Mach 消息 fuzzing,快照场景用 Nyx 或 wtf。 - 语料构建:从测试套件、bug 报告和真实样本取种子,用
afl-cmin和afl-tmin裁剪。 - 启动与监控:支持 AFL++ 并行、libFuzzer、二进制 QEMU、快照和 ensemble 共享语料;停滞时启用 CmpLog、加字典、切换导向或 concolic。
- 崩溃分类:按 bug 类选 oracle,内核用 KASAN/KMSAN/KCSAN,二进制用 QASAN,逻辑错误用 differential 或幂等 oracle。
适用边界
该技能需要源码或二进制处理能力,依赖工具链配置和 sanitizer 支持;Windows 内核需 WinDbg 和 .symfix,Linux 内核需 decode_stacktrace.sh;Rust 需聚焦 unsafe 块,Go/Python/JS/Wasm/合约有各自工具;CI 用 ClusterFuzzLite 缓存语料。
使用场景
- 内核模块模糊测试时,需要覆盖DMA-BUF操作、VM操作结构体等`copy_from_user`外的输入面
- 启动AFL++并行fuzzing后停滞,需要启用CmpLog或添加字典恢复覆盖
- Windows EDR扫描引擎模糊测试时,需要用WTF快照捕获mpengine.dll初始化后的状态
- Rust项目模糊测试时,需要聚焦`Vec::from_raw_parts`等unsafe块的漏洞
适合人员
- 从事内核驱动开发与安全审计的工程师,需要覆盖DMA-BUF等特殊输入面的模糊测试
- 负责Windows扫描引擎优化的研发人员,需要用WTF快照fuzzing提升mpengine.dll稳定性
- 处理Rust项目内存安全的开发者,需要聚焦unsafe块的模糊测试验证
- 搭建CI持续模糊测试的DevOps工程师,需要集成ClusterFuzzLite缓存语料