Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
criticality_score — 根据仓库、贡献者和依赖项指标计算开源项目的关键性评分,以确定安全改进的优先级。 | Kitploit
工具/GitHubGitHub/ossf/criticality_score
信息收集实用工具与框架供应链安全
GitHubossf/criticality_score

criticality_score

根据仓库、贡献者和依赖项指标计算开源项目的关键性评分,以确定安全改进的优先级。

查看仓库
1.5k1418个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

开源项目关键性评分(测试版)

OpenSSF Scorecard

本项目由 保障关键项目工作组的成员维护。

目标

  1. 为每个开源项目生成一个关键性评分。

  2. 创建一份开源社区所依赖的关键项目列表。

  3. 利用这些数据主动改善这些关键项目的安全态势。

关键性评分

项目的关键性评分定义了项目的影响力和重要性。 它是一个介于 0(最不重要) 和 1(最重要) 之间的数字。它基于以下 算法 由 Rob Pike 提出:

我们使用以下默认参数来推导一个 开源项目的关键性评分:

参数(Si)权重(αi)最大阈值(Ti)描述理由
created_since1120项目创建以来的时间(以月为单位)项目越老,被广泛使用或依赖的可能性越高。
updated_since-1120项目最后更新以来的时间(以月为单位)没有近期提交、未维护的项目被人依赖的可能性较低。
contributor_count25000项目贡献者(有提交)的数量不同贡献者的参与表明项目的重要性。
org_count110贡献者所属的不同组织的数量表明跨组织的依赖性。
commit_frequency11000过去一年中每周的平均提交次数更高的代码变更率在一定程度上表明项目的重要性。此外,也更容易受到漏洞的影响。
recent_releases_count0.526过去一年中的发布次数频繁的发布表明用户依赖。由于该指标并非总是被使用,因此权重较低。
closed_issues_count0.55000过去 90 天内关闭的问题数量表明贡献者参与度高,且专注于关闭用户问题。由于该指标依赖于项目贡献者,因此权重较低。
updated_issues_count0.55000过去 90 天内更新过的问题数量表明贡献者参与度高。由于该指标依赖于项目贡献者,因此权重较低。
comment_frequency115过去 90 天内每个问题的平均评论数表明用户活跃度高且依赖性强。
dependents_count2500000项目在提交消息中被提及的次数表明代码库的使用情况,通常与版本更新相关。该参数适用于所有语言,包括没有包依赖图的 C/C++(尽管有点简陋)。计划在不久的将来加入包依赖树。

注意:

  • 您可以按照下面的说明在运行时覆盖这些默认值。
  • 我们欢迎社区提供改进这些参数的想法。
  • 每一条理由规则总是会有例外情况。

用法

root@kitploit:~
$ go install github.com/ossf/criticality_score/v2/cmd/criticality_score@latest

$ export GITHUB_TOKEN=...         # requires a GitHub token to work
$ gcloud auth login --update-adc  # optional, add -depsdev-disable to skip

$ criticality_score -gcp-project-id=[your projectID] https://github.com/kubernetes/kubernetes
repo.name: kubernetes
repo.url: https://github.com/kubernetes/kubernetes
repo.language: Go
repo.license: Apache License 2.0
legacy.created_since: 87
legacy.updated_since: 0
legacy.contributor_count: 3999
legacy.watchers_count: 79583
legacy.org_count: 5
legacy.commit_frequency: 97.2
legacy.recent_releases_count: 70
legacy.updated_issues_count: 5395
legacy.closed_issues_count: 3062
legacy.comment_frequency: 5.5
legacy.dependents_count: 454393
default_score: 0.99107

评分可以通过使用 -scoring-config 参数并提供 不同的配置文件来指定评分的计算方式,从而更改评分。

默认情况下,使用 original_pike.yml 配置来计算评分。 不过,也可以提供其他配置文件来生成不同的评分。有关更多信息,请参见 config/scorer。

您可以自由复制其中一个配置,并根据需要调整权重和阈值, 以满足您的需求。

身份验证

在运行 criticality score 之前,您需要:

  • 对于 GitHub 仓库,您需要 创建一个 GitHub 访问令牌 并将其设置在环境变量 GITHUB_AUTH_TOKEN 中。 这有助于避免 GitHub 的 API 速率限制 对未认证请求的影响。
root@kitploit:~
# For posix platforms, e.g. linux, mac:
export GITHUB_AUTH_TOKEN=<your access token>

# For windows:
set GITHUB_AUTH_TOKEN=<your access token>

格式化结果

目前有三种格式:text、json 和 csv。未来可能会增加其他格式。

可以通过 -format 标志指定这些格式。

其他命令

criticality score 项目还提供了其他用于生成和处理 关键性评分数据的命令。

  • enumerate_github: 一个用于准确收集具有最少星标数的 GitHub 仓库集合的工具
  • collect_signals: 一个通过利用 Scorecard 项目 的基础设施来大规模收集原始信号的工作程序。
  • scorer: 一个根据输入的 CSV 文件重新计算关键性评分的工具。

公共数据

如果您想查看带有关键性评分的重点项目列表, 我们会以 csv 格式和 BigQuery 数据集的形式发布这些数据。

这些数据是使用运行在 GCP 中的 criticality score 项目生产实例生成的。 有关部署方式的详细信息,请参见 infra 目录。

注意:目前,这些列表仅来自托管在 GitHub 上的项目。 我们计划在不久的将来扩展这些列表,以涵盖托管在其他 源代码控制系统上的项目。

CSV 数据

这些数据托管在 Google Cloud Storage 上,可以通过以下方式下载:

  • 网络浏览器:commondatastorage.googleapis.com/ossf-criticality-score/index.html
  • gsutil 命令行工具:gsutil ls gs://ossf-criticality-score/

BigQuery 数据集

这些数据可在公共的 BigQuery 数据集 中获取。

使用 GCP 账户,您可以跨数据运行查询。例如,以下查询将返回按评分排名的前 100 个仓库:

root@kitploit:~
  SELECT repo.url, default_score
    FROM `openssf.criticality_score_cron.criticality-score-v0-latest`
ORDER BY default_score DESC
   LIMIT 100;

参与贡献

如果您想参与其中,或者有一些想法想要交流,我们会在 保障关键项目工作组 的会议中讨论这个项目。

有关会议日程和会议邀请,请参见 社区日历。

有关如何贡献的指导,请参见 参与贡献 文档。

下载工具