# 1. 覆盖引导 Fuzzing(Coverage-Guided)与生成式 Fuzzing(Generation-Based)的原理差异与适用场景?请分别说明 AFL++ 和 libFuzzer 的工作机制。 A 生成式 Fuzzing 依赖覆盖反馈 B 覆盖引导 Fuzzing 依据新覆盖反馈引导变异,AFL++ 与 libFuzzer 均属此类 ✓ 正确答案 C AFL++ 是进程内链接的库函数 fuzzer D 覆盖引导不适用于格式已知输入
# 2. Fuzzing 语料库(Corpus)的管理,种子选择策略、语料最小化(Corpus Minimization)与覆盖率增长曲线的分析方法? A 语料最小化是剔除冗余输入,保留触发新覆盖的输入 ✓ 正确答案 B 种子越大越好 C 覆盖增长曲线无意义 D 语料库越庞大越好
# 3. Sanitizer(ASAN/MSAN/UBSAN/TSAN)在 Fuzzing 中的作用,如何配置编译选项以最大化 Bug 发现能力?各 Sanitizer 的检测范围? A MSAN 检测整数溢出 B ASAN 检测数据竞争 C ASAN 检测内存错误,UBSAN 检测未定义行为,TSAN 检测数据竞争 ✓ 正确答案 D Sanitizer 只能发现崩溃
# 4. Crash Triage 工程,去重(Dedup)、可复现性验证、严重性分级与修复跟踪的完整流程? A 去重、可复现验证、严重性分级与修复跟踪构成完整闭环 ✓ 正确答案 B 所有崩溃都需单独处理无需去重 C 崩溃无需复现验证 D 严重性分级不重要
# 5. Fuzzing 与 CI/CD 的集成,持续 Fuzzing(Continuous Fuzzing)的策略、资源分配与回归检测机制? A Fuzzing 无法集成到 CI B 持续 Fuzzing 只需运行一次 C 通过 CI 烟雾 fuzz + 独立深度 fuzz + 崩溃固化回归,实现持续发现与防回归 ✓ 正确答案 D 崩溃输入无需固化
# 6. Fuzzing 的覆盖率度量,Edge Coverage、Hit Count Coverage 各自的含义和分析方法? A Edge Coverage 记录控制流边,Hit Count Coverage 还记录执行次数 ✓ 正确答案 B 行覆盖比边覆盖更精确 C Hit Count Coverage 不区分循环次数 D Edge Coverage 只记录函数入口
# 7. Fuzz 的输入生成策略,变异(mutation)与生成(generation)、覆盖率引导(coverage-guided)的原理? A 覆盖率引导将变异/生成与覆盖反馈结合,保留触发新覆盖的输入 ✓ 正确答案 B 生成策略适合格式未知的输入 C 变异策略需要语法知识 D 覆盖率引导与变异无关
# 8. Fuzz 与安全测试的结合,如何用 libFuzzer/AFL 发现内存安全漏洞,语料库与种子如何积累? A 种子积累无助于漏洞发现 B sanitizer 只能发现逻辑错误 C Fuzzer 配合 sanitizer 发现内存漏洞,种子与语料库持续积累提升效率 ✓ 正确答案 D libFuzzer 无法发现内存漏洞
# 9. OpenAPI/Schema 驱动的 API Fuzzing,如何基于接口定义自动生成合法与非法请求? A 无需接口定义 B 只能生成合法请求 C 基于接口定义自动生成合法与非法请求,验证校验与容错 ✓ 正确答案 D 只能测无参接口
# 10. Fuzzing 的目标选择与收益评估,如何从攻击面、历史漏洞与复杂度选择模糊测试目标,投入产出如何评估? A 历史漏洞与 fuzz 无关 B 所有模块 fuzz 价值相同 C 攻击面不重要 D 应优先 fuzz 攻击面大、历史漏洞多、复杂度高的目标 ✓ 正确答案
# 11. 非内存安全语言环境中的 Fuzzing,Python/JS/Java 应用中模糊测试的价值(逻辑错误、异常、资源耗尽)与限制如何应对? A 价值在于发现逻辑错误、异常与资源耗尽,而非内存越界 ✓ 正确答案 B 非内存安全语言无法 fuzz C 只能发现内存漏洞 D 逻辑错误无法用 fuzz 发现
# 12. Fuzzing 在协议测试(Protocol Fuzzing)和 API 测试中的应用,与通用 Fuzzing 的差异和特殊配置? A 与通用 Fuzzing 完全一致 B 需要语法/schema 描述格式,在合法结构内变异,以穿越格式校验 ✓ 正确答案 C 无需状态机处理 D 纯随机字节最有效
# 13. Fuzzing 的局限性,哪些类型的缺陷难以通过 Fuzzing 发现?需要配合哪些其他测试技术? A Fuzz 无需配合其他测试 B Fuzz 能发现所有缺陷 C Fuzz 难以发现"结果错误但不崩溃"的逻辑缺陷,需配合属性测试 ✓ 正确答案 D Fuzz 擅长发现逻辑语义错误
# 14. Fuzz 的工程化,CI 中的持续 fuzz、崩溃去重(dedup)与回归用例固化流程? A 崩溃无需去重 B CI 持续 fuzz + 崩溃去重 + 回归固化形成闭环 ✓ 正确答案 C 崩溃输入无需固化 D fuzz 无法与 CI 集成
# 15. Fuzzing 的字典与结构化模板,如何为协议/文件格式提供种子与语法,提升输入有效性? A 模板让输入更随机 B 字典只用于内存 fuzz C 字典提供有意义关键字,模板保证结构合法,提升输入有效性 ✓ 正确答案 D 字典与模板无作用
# 16. Fuzzing 崩溃的漏洞管理闭环,去重、复现、严重度评估与修复验证如何与安全团队协作? A 去重、复现、分级、修复验证闭环,并与安全团队联动追踪 ✓ 正确答案 B 安全团队无需参与 C 漏洞无需分级 D 修复后无需验证
# 17. Web/API Fuzzing(wfuzz/ffuf/自动化 schema fuzz)与原生 Fuzzing 的差异与适用场景? A 原生 fuzz 工作在 HTTP 层 B 两者完全一致 C Web fuzz 依赖编译插桩 D Web/API fuzz 工作在 HTTP 层以响应为信号,原生 fuzz 在代码层以崩溃为信号 ✓ 正确答案
# 18. Fuzzing 的停止条件与资源分配,覆盖率饱和、新增崩溃率下降时如何决定暂停持续模糊,避免无限消耗算力? A 停止条件无意义 B Fuzz 应无限运行 C 覆盖率饱和说明仍需继续 D 覆盖率饱和与新增崩溃率下降时,应暂停或切换策略避免浪费算力 ✓ 正确答案