比较
为开源项目选择安全扫描器
AI 审计、模糊测试和基于规则的静态分析会发现不同类型的漏洞。安全防护完善的大多数项目会使用多种工具。以下介绍每种工具最适合的用途。
ossscanner.org
独立使用威胁模型对任意公开仓库进行 AI 审计,配备独立验证代理,并提供根因、引入问题的提交、候选补丁和 SARIF。免费提供快速扫描;已登记项目可每周进行深度扫描。
- 最适合
- 几分钟内即可为任何项目获取经过验证、解释清楚的发现,无需进行任何设置。
- 局限
- 仅进行静态阅读,不会构建或运行代码。使用公开可用的模型,而非 Claude Mythos。模型输出可能有误。
Anthropic OSS Scanner
AnthropicAnthropic 最强大的模型(包括 Claude Mythos)免费定期扫描,需主动选择加入。扫描在离线沙箱中进行,并根据项目的 Dockerfile 构建项目。通过电子邮件发送未经审查的报告,其中包含复现程序和补丁。
- 最适合
- 能够处理持续产生的高质量报告的关键基础设施项目。
- 局限
- 逐个案例接受申请;需要拉取请求、Dockerfile,以及维护者手动验证。结果仅通过电子邮件提供。
OSS-Fuzz
Google面向关键开源项目的持续覆盖引导模糊测试,支持自动崩溃分流和漏洞报告创建。
- 最适合
- 使用 C、C++、Rust 或 Go 编写的解析器和库中的内存安全漏洞;每次崩溃都可复现。
- 局限
- 需要编写模糊测试目标并集成构建流程;只能发现模糊测试器能够触达的问题,极少发现逻辑或身份验证漏洞。
CodeQL
GitHub使用查询语言和丰富的安全查询库进行语义代码分析。公开仓库可通过 GitHub 代码扫描免费使用。
- 最适合
- 在 CI 中以及每个拉取请求中发现已知漏洞模式和数据流问题。
- 局限
- 只能发现其查询所描述的问题;新型逻辑漏洞和项目特有问题需要自定义查询。
Semgrep
Semgrep, Inc.基于模式的快速静态分析,配备社区规则和自定义规则;开源引擎可在本地或 CI 中运行。
- 最适合
- 强制执行安全编码规则并快速发现常见错误。
- 局限
- 基于规则:对已知模式的召回率高,但对意图或上下文的理解有限。
Claude Security
AnthropicAnthropic 的商业产品,借助 Claude 模型帮助企业发现并修复自身代码中的漏洞。
- 最适合
- 将 AI 安全审查纳入软件开发生命周期的公司。
- 局限
- 商业产品;面向企业,而非个人开源项目维护者。
AI 审计 vs 模糊测试 vs 静态分析
模糊测试器使用数百万个生成的输入来执行代码,在可复现的内存破坏问题方面无可匹敌,但前提是测试框架能够触达相关代码。CodeQL 和 Semgrep 这类基于规则的分析器会针对已知模式检查每一行代码,成本低廉,并且每次提交都会运行。AI 审计工具像代码审查者一样阅读代码:它们能理解意图、发现授权或逻辑缺陷,并解释根本原因——但它们的结论具有概率性,需要验证。
因此,ossscanner.org 会运行第二个智能体来证伪每个潜在漏洞报告,然后才予以展示;我们也建议将其与 CI 分析和模糊测试结合使用。
适合小型项目的实用配置
- 启用 CodeQL 代码扫描(公开仓库可免费使用)。
- 在 ossscanner.org 上免费扫描,并注册每周深度扫描。
- 将我们的 SARIF 上传到 GitHub,让 AI 发现的问题显示在 CodeQL 警报旁边。
- 添加威胁模型,让每个扫描器都了解范围内的内容。
- 如果你处理不可信的二进制格式,请添加模糊测试目标,并考虑使用 OSS-Fuzz。
- 如果你的项目属于关键基础设施,请申请加入 Anthropic OSS Scanner。