ossfuzz 是做什么的?
OSS-Fuzz 为开源项目提供免费的持续模糊测试服务。适用于设置持续模糊测试基础设施或注册项目时使用。
概述
OSS-Fuzz 是 Google 发起的一项持续模糊测试服务,旨在通过自动化测试发现开源软件中的安全漏洞和稳定性问题。本技能帮助开发者快速将项目接入 OSS-Fuzz 生态,享受免费的持续模糊测试资源。
主要功能
- 持续模糊测试:自动构建并运行模糊测试,发现潜在的安全缺陷。
- 多语言支持:支持 C/C++、Python、Java、Go、Rust 等主流语言。
- 分布式测试:利用 ClusterFuzz 进行大规模并行测试。
- 自动报告:发现漏洞后自动创建详细报告,包括崩溃堆栈和复现步骤。
- 覆盖率分析:提供代码覆盖率数据,帮助评估测试效果。
使用场景
- 为新的开源项目注册 OSS-Fuzz 服务。
- 为已有项目添加或更新模糊测试配置。
- 集成到 CI/CD 流水线中,实现自动化安全测试。
快速开始
- 确保项目满足 OSS-Fuzz 的基本要求(如公开仓库、开源许可证)。
- 创建
fuzzing分支或直接在主分支上工作。 - 编写模糊测试脚本(如使用 LibFuzzer、AFL 等引擎)。
- 在项目根目录创建
Dockerfile和build.sh,配置构建环境。 - 提交 PR 到 OSS-Fuzz 官方仓库的
projects目录,添加项目元数据。
集成支持
- GitHub Actions:通过 OSS-Fuzz 官方 Action 实现自动构建与测试。
- GitLab CI:使用自定义 CI 配置运行模糊测试。
- 本地测试:通过
docker-compose在本地环境模拟 OSS-Fuzz 构建流程。
注意事项
- 所有项目必须为开源且维护状态良好。
- 需要编写合适的模糊测试用例以达到有效覆盖率。
- 初次集成可能需要数天时间完成基础设施部署。
参考资源
本技能由 trailofbits 维护,旨在简化 OSS-Fuzz 集成流程。