用途:该技能指导智能体使用 OSS-Fuzz 基础设施,在开源软件中查找并报告缺陷,覆盖接入新项目、扩展与改进项目模糊测试态势、运行模糊测试活动、修复已损坏的 OSS-Fuzz 项目,以及为项目添加 Chronos 支持。执行此类任务时应同时使用代码分析与模糊测试 harness 编写等相关技能。
主要能力与工作流:接入新项目时,先评估项目是否适合模糊测试(开源、用户规模、可模糊代码如 C/C++),再搭建环境(基于 OSS-Fuzz 基础镜像的 Dockerfile、带插桩的构建脚本、project.yaml),编写 fuzz target,本地运行并确保 check_build 通过。扩展覆盖时,应基于公开覆盖率数据而非主观判断:通过 latest_report_info/<project>.json 指针获取最新 summary.json,解析每文件指标,用 functions 指标判断是否缺少 harness,用 regions/branches 指标判断是否为语料/种子问题;建立已覆盖文件黑名单(行覆盖≥50% 且多数函数已覆盖),只从行覆盖低于 30% 的文件中选目标。对结构化格式可编写种子生成脚本,将有效种子追加到现有语料而非替换。可用 python3 infra/helper.py introspector --coverage-only PROJECT_NAME 本地生成覆盖率报告,例如 python3 infra/helper.py introspector --coverage-only --seconds 30 --out htslib-cov-1 htslib。修复项目需通过 python3 infra/helper.py build_fuzzers PROJECT_NAME 与 python3 infra/helper.py check_build PROJECT_NAME。Chronos 集成需提供 replay_build.sh 与 run_tests.sh,并通过 python3 infra/experimental/chronos/manager.py check-replay PROJECT_NAME 与 check-tests PROJECT_NAME;脚本无网络访问,run_tests.sh 不得改变仓库状态,测试失败时 check-tests 必须失败。
限制:智能体不得提交或推送任何内容到 GitHub,也不得向 OSS-Fuzz 的 GitHub 提交更改,应结束工作交由安全工程师审查。扩展时须验证覆盖率未回退并给出理由;除非另有说明,应聚焦单个 harness 的小改动。公开数据包括构建状态页与 status.json、introspector.oss-fuzz.com 等。具体收费、价格、平台与效果资料暂未提供。