本技能提供一套进攻性模糊测试方法论,用于安全测试中的漏洞挖掘。
用途与流程:核心工作流为研究目标→选择分析方式→编写 harness→准备种子语料→插桩→模糊测试→崩溃分类→报告。强调先梳理文件、网络、IPC、系统调用、IOCTL 等输入面,优先关注已修补代码、复杂解析器、新增代码与输入入口;内核模块需关注 copy_from_user 之外的 DMA-BUF、缺页处理、VM 操作结构等。
模糊器类型:按覆盖与速度分为黑盒(Peach、Boofuzz)、灰盒(AFL++、Honggfuzz、libFuzzer、WinAFL)、快照(Nyx、wtf、Snapchange)、白盒(KLEE、QSYM、SymSan)以及组合式;灰盒还有定向、语法、混合执行、内核等子类。
主要能力:给出 AFL++、libFuzzer、Honggfuzz 的插桩与构建命令,libFuzzer、HF_ITER、AFL 持久模式及 macOS Mach IPC 的 harness 示例;提供 afl-cmin/afl-tmin 语料最小化、并行与 CmpLog 启动方式、字典与定向模糊、快照加速、崩溃最小化与符号化、按覆盖分桶;并列出 ASan/HWASan/MSan/TSan/UBSan/KASAN 等 oracle 选择。
适用场景:Linux 内核(syzkaller 配置、syz-execprog 复现)、EDR/Windows 扫描引擎(mpengine.dll、过滤端口、IOCTL、WinDbg)、Rust(cargo fuzz、Miri)、嵌入式与纯二进制(LibAFL、Retrowrite、Nautilus)、各语言生态及 CI/CD(ClusterFuzzLite)。
限制:多数内容需按目标调整,未提供通用一键方案;部分工具、命令与平台细节需自行验证,资料未给出价格、部署成本与效果指标。