我们创建 Scorecard 是为了帮助开源维护者改进其安全最佳实践,并帮助开源使用者判断其依赖项是否安全。
Scorecard 是一款自动化工具,它评估与软件安全相关的多项重要启发式指标 (“检查项”),并为每项检查项赋予 0-10 的评分。你可以利用这些评分来了解需要改进的具体领域,从而增强项目的安全态势。你还可以评估依赖项引入的风险,并就接受这些风险、评估替代方案或与维护者合作进行改进做出明智的决策。
Scorecard 标志的灵感来源: "你通过了!全是 D……还有一个 A!"
自动化对开源项目安全态势的分析与信任决策。
利用这些数据主动改善世界所依赖的关键项目的安全态势。
作为现有策略的衡量工具
如果 OSS 使用者需要其依赖项具备某些行为,Scorecard 可用于衡量这些行为。在 V5 版本中,我们将结构化结果视为在存在受支持分析时实现这一目标的方式。OSS 使用者可能不希望依赖 X/10 的聚合分数或 Y/10 的 Maintained 分数,而是希望确保其所依赖的仓库未被归档(这由 archived 探针覆盖)。OpenSSF 在其自身的项目安全基线中采用了这种方法。
成为所有项目都应遵循的权威报告或要求。
Scorecard 并非旨在成为放之四海而皆准的解决方案。我们生成结果的每一步都带有主观判断:包含或排除哪些检查、每项检查的重要性,以及分数如何计算。这些检查本身是启发式的;存在误报和漏报。
无论是由于适用性、可行性还是观点分歧,Scorecard 结果中包含或排除的内容都会引发大量讨论。不可能创建一个让所有人都满意的 Scorecard,因为不同的受众会关注不同子集的行为。
尤其是聚合分数,它完全无法说明某个仓库做了或没做哪些具体行为。许多检查分数被聚合为单一分数,而达到相同分数有多种方式。随着我们添加新的启发式规则或改进现有规则,这些分数也会发生变化。
Scorecard 已在数千个项目上运行,以监控和跟踪安全指标。使用 Scorecard 的知名项目包括:
要查看由 Scorecard 定期扫描的项目的评分,请访问 webviewer。你也可以替换以下模板链接中的占位文本(平台、用户/组织以及仓库名称),为某个仓库生成自定义的 Scorecard 链接:
https://scorecard.dev/viewer/?uri=<github_or_gitlab>.com/<user_name_or_org>/<repository_name>
例如:
要查看未包含在 webviewer 中的项目的评分,请使用 Scorecard CLI。
Scorecard 每周通过
ossf/scorecard-infra 扫描超过 130 万个仓库。结果可通过 REST API 获取。BigQuery 公开数据集已不再可用;详情请参阅
Scorecard 基础设施变更。
要将项目添加到每周扫描中,请遵循
ossf/scorecard-infra 的贡献指南中的说明。
在你拥有的 GitHub 项目上使用 Scorecard 的最简单方式是使用 Scorecard GitHub Action。该 Action 会在任何仓库变更时运行,并发出维护者可在仓库的 Security 标签页中查看的警报。更多信息请参阅 Scorecard GitHub Action 安装说明。
要查询 OSS 项目的预计算评分,请使用 REST API。
根据我们的每周扫描计算出的评分省略了 CI-Tests、
Contributors 和 Dependency-Update-Tool 检查,原因是大规模运行这些检查会产生 API 成本。
API 结果通过 CDN 进行缓存(感谢 Fastly 及其 Fast Forward 计划)。当有新结果可用时,结果会从 CDN 中清除,但如果您发现数据陈旧的问题,请提交 issue。
要使您的项目可在 REST API 上使用,请在 Scorecard GitHub Action 设置中设置
publish_results: true。
REST API 提供的数据依据 CDLA Permissive 2.0 许可。
在 Scorecard GitHub Actions 中启用 publish_results: true
还允许维护者在其仓库上显示 Scorecard 徽章,以展示他们的
辛勤工作。该徽章还会针对仓库的每次更改自动更新。更多详情请参阅这篇 OSSF 博客文章。
要在您项目的仓库中包含徽章,只需将以下 markdown 添加到您的 README 中:
[](https://scorecard.dev/viewer/?uri=github.com/{owner}/{repo})
scorecard mcp 通过 stdio 向 Model Context Protocol (MCP) 客户端提供已发布的 Scorecard 结果和检查文档。它从 REST API 读取结果,因此无需凭据,也不运行任何扫描。在安装 scorecard 之后,将其注册到你的 MCP 客户端,例如:
{
"mcpServers": {
"scorecard": { "command": "scorecard", "args": ["mcp"] }
}
}
有关其提供的工具、客户端设置和注意事项,请参阅 docs/mcp.md。
要对您不拥有的项目运行 Scorecard 扫描,请使用命令行界面安装选项。
平台:目前,Scorecard 支持 OSX 和 Linux 平台。如果您使用的是 Windows 操作系统,可能会遇到问题。欢迎为支持 Windows 做出贡献。
语言:您必须安装 GoLang 才能运行 Scorecard (https://golang.org/doc/install)
scorecard 可作为 Docker 容器使用:
docker pull ghcr.io/ossf/scorecard:latest
要使用特定版本的 scorecard(例如 v3.2.1),请运行:
docker pull ghcr.io/ossf/scorecard:v3.2.1
要将 Scorecard 作为独立程序安装:
访问我们最新的发布页面,下载适用于你操作系统的正确 zip 文件。
将二进制文件添加到你的 GOPATH/bin 目录(如有必要,使用 go env GOPATH 来确定你的目录)。
我们在发布过程中使用 OpenSSF 的 slsa-framework/slsa-github-generator 生成 SLSA3 签名。要验证发布二进制文件:
multiple.intoto.jsonl。