
OpenSSF Scorecard - オープンソースのセキュリティ健全性指標
私たちは、オープンソースメンテナーがセキュリティのベストプラクティスを向上させること、そしてオープンソースの利用者が依存関係が安全かどうかを判断することを支援するためにスコアカードを作成しました。
スコアカードは、ソフトウェアセキュリティに関連する多数の重要なヒューリスティック("チェック")を評価し、各チェックに0~10のスコアを割り当てる自動化ツールです。これらのスコアを使用して、プロジェクトのセキュリティ体制を強化するために改善すべき具体的な領域を理解できます。また、依存関係がもたらすリスクを評価し、それらのリスクを受け入れるか、代替ソリューションを評価するか、メンテナーと協力して改善を行うかについて、情報に基づいた決定を下すことができます。
スコアカードのロゴのインスピレーション: "You passed! All D's ... and an A!"
オープンソースプロジェクトのセキュリティ体制に関する分析と信頼の決定を自動化する。
このデータを使用して、世界が依存する重要なプロジェクトのセキュリティ体制を積極的に改善する。
既存のポリシーに対する測定ツールとして機能する
OSS利用者が依存関係に特定の振る舞いを要求する場合、スコアカードを使用してそれらを測定できます。V5リリースでは、サポートされている分析があれば、構造化結果がその方法として見られます。X/10の集計スコアやY/10のメンテナンススコアに依存する代わりに、OSS利用者は依存しているリポジトリがアーカイブされていないこと(これはarchivedプローブでカバーされている)を確認したい場合があります。OpenSSFはプロジェクト向けのセキュリティベースラインでこのアプローチを採用しています。
すべてのプロジェクトが従うべき確定的なレポートや要件であること。
スコアカードは万能なソリューションであることを意図していません。結果を作成するすべてのステップには意見が反映されています。どのチェックを含めるか除外するか、各チェックの重要度、スコアの計算方法などです。チェック自体はヒューリスティックであり、誤検出と見逃しが存在します。
適用可能性、実現可能性、意見の問題など、スコアカードの結果に何を含め、何を除外するかについては多くの議論があります。異なる対象者は行動の異なるサブセットを気にするため、すべての人を満足させるスコアカードを作成することは不可能です。
特に集計スコアは、リポジトリがどの個別の行動を行っているか、行っていないかについて何も教えてくれません。多くのチェックスコアが単一のスコアに集約され、同じスコアに到達する方法は複数あります。新しいヒューリスティックを追加したり、既存のものを改良したりすると、これらのスコアは変化します。
スコアカードは、数千のプロジェクトでセキュリティメトリクスを監視および追跡するために実行されています。スコアカードを使用している主要なプロジェクトは次のとおりです。
スコアカードによって定期的にスキャンされているプロジェクトのスコアを表示するには、ウェブビューアーにアクセスしてください。以下のテンプレートリンク内のプレースホルダーテキスト(プラットフォーム、ユーザー/組織、リポジトリ名)を置き換えて、リポジトリのカスタムスコアカードリンクを生成することもできます。
https://scorecard.dev/viewer/?uri=<github_or_gitlab>.com/<user_name_or_org>/<repository_name>
例:
ウェブビューアーに含まれていないプロジェクトのスコアを表示するには、スコアカード CLI を使用してください。
直接の依存関係に基づいて判断された最も重要な100万のオープンソースプロジェクトに対して毎週スコアカードスキャンを実行し、結果を BigQuery 公開データセット で公開しています。
このデータは公開 BigQuery データセット openssf:scorecardcron.scorecard-v2 で利用可能です。最新の結果は BigQuery ビュー openssf:scorecardcron.scorecard-v2_latest で利用できます。
データは BigQuery Explorer を使用してクエリできます。[データを追加] > [名前でプロジェクトを選択] > 'openssf' と進みます。
たとえば、プロジェクトのスコアが時間とともにどのように変化したかに興味があるかもしれません。```sql
SELECT date, score FROM openssf.scorecardcron.scorecard-v2 WHERE repo.name="github.com/ossf/scorecard" ORDER BY date ASC
最新の結果をJSON形式でGoogle Cloud Storageに抽出するには、[`bq`](https://cloud.google.com/bigquery/docs/bq-command-line-tool) ツールを使用します:```
# Get the latest PARTITION_ID
bq query --nouse_legacy_sql 'SELECT partition_id FROM
openssf.scorecardcron.INFORMATION_SCHEMA.PARTITIONS WHERE table_name="scorecard-v2"
AND partition_id!="__NULL__" ORDER BY partition_id DESC
LIMIT 1'
# Extract to GCS
bq extract --destination_format=NEWLINE_DELIMITED_JSON
'openssf:scorecardcron.scorecard-v2$<partition_id>' gs://bucket-name/filename-*.json
チェック対象のプロジェクト一覧は、次のファイルにあります。
cron/internal/data/projects.csv
こちらのリポジトリ内のファイルにあります。さらに追跡してほしいプロジェクトがあれば、お気軽に
他のプロジェクトを含むプルリクエストをお送りください。現在、このリストは GitHub のみでホストされているプロジェクト から導出されています。近い将来、他のソース管理システムでホストされているプロジェクトも対象に拡大する予定です。
自分が所有する 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 で利用可能にするには、
publish_results: true
を Scorecard GitHub Action の設定で設定します。
REST API で提供されるデータは CDLA Permissive 2.0 の下でライセンスされています。
publish_results: true
を Scorecard GitHub Actions で有効にすると、メンテナーはリポジトリに Scorecard バッジを表示して、その努力をアピールできるようになります。このバッジは、リポジトリへの変更ごとに自動更新されます。詳細は、こちらの OSSF ブログ記事 をご覧ください。
プロジェクトのリポジトリにバッジを含めるには、次の markdown を README に追加するだけです:```
### Scorecard コマンドラインインターフェース
自分が所有していないプロジェクトで Scorecard スキャンを実行するには、コマンドラインインターフェースのインストールオプションを使用します。
#### 前提条件
プラットフォーム: 現在、Scorecard は OSX および Linux プラットフォームをサポートしています。Windows OS を使用している場合は問題が発生する可能性があります。Windows のサポートへの貢献を歓迎します。
言語: Scorecard を実行するには GoLang がインストールされている必要があります (https://golang.org/doc/install)
#### インストール
##### Docker
`scorecard` は Docker コンテナとして利用可能です:```shell
docker pull ghcr.io/ossf/scorecard:latest
特定のスコアカードのバージョン(例:v3.2.1)を使用するには、実行してください:```shell docker pull ghcr.io/ossf/scorecard:v3.2.1
##### スタンドアロン
Scorecardをスタンドアロンでインストールするには:
最新の[リリースページ](https://github.com/ossf/scorecard/releases/latest)にアクセスし、お使いのオペレーティングシステムに適したzipファイルをダウンロードしてください。
バイナリを `GOPATH/bin` ディレクトリに追加します(必要な場合は `go env GOPATH` を使用してディレクトリを確認してください)。
###### ダウンロードしたリリースのSLSA来歴の検証
リリースプロセスでは、OpenSSFの[slsa-framework/slsa-github-generator](https://github.com/slsa-framework/slsa-github-generator)を使用して[SLSA3署名](https://slsa.dev)を生成しています。リリースバイナリを検証するには:
1. [slsa-framework/slsa-verifier#installation](https://github.com/slsa-framework/slsa-verifier#installation)から検証ツールをインストールします。
2. [GitHubリリースページ](https://github.com/GoogleContainerTools/jib/releases/latest)から署名ファイル `attestation.intoto.jsonl` をダウンロードします。
3. 検証ツールを実行します:```shell
slsa-verifier -artifact-path <the-zip> -provenance attestation.intoto.jsonl -source github.com/ossf/scorecard -tag <the-tag>
GitHubは、認証されていないリクエストに対してAPIレート制限を課しています。これらの制限を回避するには、Scorecardを実行する前にリクエストを認証する必要があります。リクエストを認証する方法は2つあります:GitHubの個人用アクセストークンを作成するか、GitHub Appのインストールを作成するかです。
public_repoスコープを選択することをお勧めします。トークンは、以下のコマンドを使用して、ご利用のプラットフォームに応じて GITHUB_AUTH_TOKEN、GITHUB_TOKEN、GH_AUTH_TOKEN、または GH_TOKEN という環境変数に設定してください。```shellexport GITHUB_AUTH_TOKEN=
export GITHUB_AUTH_TOKEN=,
set GITHUB_AUTH_TOKEN= set GITHUB_AUTH_TOKEN=,
または
- [GitHub App インストールを作成する](https://docs.github.com/en/developers/apps/building-github-apps/creating-a-github-app)
より高いレート制限クォータのために。インストール済みの GitHub App とキーファイルがある場合は、上記のプラットフォームに応じたコマンド(`set` または `export`)に従って、以下の3つの環境変数を使用できます。```
GITHUB_APP_KEY_PATH=<path to the key file on disk>
GITHUB_APP_INSTALLATION_ID=<installation id>
GITHUB_APP_ID=<app id>
これらの変数はGitHubのデベロッパー設定ページから取得できます。
Scorecardは、ターゲットリポジトリのURLという1つの引数だけで実行できます。```shell scorecard --repo=github.com/ossf-tests/scorecard-check-branch-protection-e2e
```shell
Starting [CII-Best-Practices]
Starting [Fuzzing]
Starting [Pinned-Dependencies]
Starting [CI-Tests]
Starting [Maintained]
Starting [Packaging]
Starting [SAST]
Starting [Dependency-Update-Tool]
Starting [Token-Permissions]
Starting [Security-Policy]
Starting [Signed-Releases]
Starting [Binary-Artifacts]
Starting [Branch-Protection]
Starting [Code-Review]
Starting [Contributors]
Starting [Vulnerabilities]
Finished [CI-Tests]
Finished [Maintained]
Finished [Packaging]
Finished [SAST]
Finished [Signed-Releases]
Finished [Binary-Artifacts]
Finished [Branch-Protection]
Finished [Code-Review]
Finished [Contributors]
Finished [Dependency-Update-Tool]
Finished [Token-Permissions]
Finished [Security-Policy]
Finished [Vulnerabilities]
Finished [CII-Best-Practices]
Finished [Fuzzing]
Finished [Pinned-Dependencies]
RESULTS
-------
Aggregate score: 7.9 / 10
Check scores:
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| SCORE | NAME | REASON | DOCUMENTATION/REMEDIATION |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| 10 / 10 | Binary-Artifacts | no binaries found in the repo | github.com/ossf/scorecard/blob/main/docs/checks.md#binary-artifacts |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| 9 / 10 | Branch-Protection | branch protection is not | github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection |
| | | maximal on development and all | |
| | | release branches | |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| ? | CI-Tests | no pull request found | github.com/ossf/scorecard/blob/main/docs/checks.md#ci-tests |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| 0 / 10 | CII-Best-Practices | no badge found | github.com/ossf/scorecard/blob/main/docs/checks.md#cii-best-practices |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| 10 / 10 | Code-Review | branch protection for default | github.com/ossf/scorecard/blob/main/docs/checks.md#code-review |
| | | branch is enabled | |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| 0 / 10 | Contributors | 0 different companies found -- | github.com/ossf/scorecard/blob/main/docs/checks.md#contributors |
| | | score normalized to 0 | |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| 0 / 10 | Dependency-Update-Tool | no update tool detected | github.com/ossf/scorecard/blob/main/docs/checks.md#dependency-update-tool |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| 0 / 10 | Fuzzing | project is not fuzzed in | github.com/ossf/scorecard/blob/main/docs/checks.md#fuzzing |
| | | OSS-Fuzz | |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| 1 / 10 | Maintained | 2 commit(s) found in the last | github.com/ossf/scorecard/blob/main/docs/checks.md#maintained |
| | | 90 days -- score normalized to | |
| | | 1 | |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| ? | Packaging | no published package detected | github.com/ossf/scorecard/blob/main/docs/checks.md#packaging |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| 8 / 10 | Pinned-Dependencies | unpinned dependencies detected | github.com/ossf/scorecard/blob/main/docs/checks.md#pinned-dependencies |
| | | -- score normalized to 8 | |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| 0 / 10 | SAST | no SAST tool detected | github.com/ossf/scorecard/blob/main/docs/checks.md#sast |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| 0 / 10 | Security-Policy | security policy file not | github.com/ossf/scorecard/blob/main/docs/checks.md#security-policy |
| | | detected | |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| ? | Signed-Releases | no releases found | github.com/ossf/scorecard/blob/main/docs/checks.md#signed-releases |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| 10 / 10 | Token-Permissions | tokens are read-only in GitHub | github.com/ossf/scorecard/blob/main/docs/checks.md#token-permissions |
| | | workflows | |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
| 10 / 10 | Vulnerabilities | no vulnerabilities detected | github.com/ossf/scorecard/blob/main/docs/checks.md#vulnerabilities |
|---------|------------------------|--------------------------------|---------------------------------------------------------------------------|
GITHUB_AUTH_TOKEN は有効なトークンに設定する必要があります。```shell
docker run -e GITHUB_AUTH_TOKEN=token ghcr.io/ossf/scorecard:latest --show-details --repo=https://github.com/ossf/scorecard
特定のスコアカードバージョン(例:v3.2.1)を使用するには、次のコマンドを実行します:```shell
docker run -e GITHUB_AUTH_TOKEN=token ghcr.io/ossf/scorecard:v3.2.1 --show-details --repo=https://github.com/ossf/scorecard
チェックが失敗する理由の詳細については、--show-details オプションを使用してください:```
./scorecard --repo=github.com/ossf-tests/scorecard-check-branch-protection-e2e --checks Branch-Protection --show-details
```shell
Starting [Pinned-Dependencies]
Finished [Pinned-Dependencies]
RESULTS
-------
|---------|------------------------|--------------------------------|--------------------------------|---------------------------------------------------------------------------|
| SCORE | NAME | REASON | DETAILS | DOCUMENTATION/REMEDIATION |
|---------|------------------------|--------------------------------|--------------------------------|---------------------------------------------------------------------------|
| 9 / 10 | Branch-Protection | branch protection is not | Info: 'force pushes' disabled | github.com/ossf/scorecard/blob/main/docs/checks.md#branch-protection |
| | | maximal on development and all | on branch 'main' Info: 'allow | |
| | | release branches | deletion' disabled on branch | |
| | | | 'main' Info: linear history | |
| | | | enabled on branch 'main' Info: | |
| | | | strict status check enabled | |
| | | | on branch 'main' Warn: status | |
| | | | checks for merging have no | |
| | | | specific status to check on | |
| | | | branch 'main' Info: number | |
| | | | of required reviewers is 2 | |
| | | | on branch 'main' Info: Stale | |
| | | | review dismissal enabled on | |
| | | | branch 'main' Info: Owner | |
| | | | review required on branch | |
| | | | 'main' Info: 'administrator' | |
| | | | PRs need reviews before being | |
| | | | merged on branch 'main' | |
|---------|------------------------|--------------------------------|--------------------------------|---------------------------------------------------------------------------|
メンテナーアノテーションを使用すると、メンテナーはScorecardのチェック結果とともに表示するコンテキストを追加できます。アノテーションは、Scorecardがプロジェクトのセキュリティプラクティスを不完全に評価した場合に、ユーザーに追加情報を提供できます。各チェックのメンテナーアノテーションを表示するには、--show-annotationsオプションを使用します。
利用可能なアノテーションの詳細やアノテーションの作成方法については、設定ドキュメントを参照してください。
GitLabリポジトリでScorecardを実行するには、次の権限を持つGitLabアクセストークンを作成する必要があります。
read_apiread_userread_repositoryGITLAB_AUTH_TOKEN環境変数を設定することで、GitLabリポジトリでScorecardを実行できます。```bash
export GITLAB_AUTH_TOKEN=glpat-xxxx
scorecard --repo gitlab.com///
GitLab CI/CDでScorecardを使用する例については、[こちら](https://gitlab.com/ossf-test/scorecard-pipeline-example)を参照してください。
###### セルフホスト版
私たちはGitLab.comのサポートに重点を置いていますが、ScorecardはセルフホストのGitLabインストールでも動作します。
プラットフォームがサブドメイン(例:`gitlab.foo.com`)でホストされている場合、Scorecardはそのまま動作します。
プラットフォームが何らかのスラッグ(例:`foo.com/bar/`)でホストされている場合は、`GL_HOST`環境変数を設定する必要があります。```bash
export GITLAB_AUTH_TOKEN=glpat-xxxx
export GL_HOST=foo.com/bar
scorecard --repo foo.com/bar/<org>/<project>
GitHub Enterprise ホスト github.corp.com を使用するには、GH_HOST 環境変数を使用します。```shell
export GH_HOST=github.corp.com export GITHUB_AUTH_TOKEN=token
scorecard --repo=github.corp.com/org/repo
scorecard --repo=org/repo
##### パッケージマネージャーの使用
`--npm`、`--pypi`、`--rubygems`、または`--nuget`エコシステムのプロジェクトでは、パッケージマネージャーを使用してScorecardを実行するオプションがあります。パッケージ名を指定して、対応するGitHubソースコードに対してチェックを実行します。
例: `--npm=angular`
注意: パッケージエコシステムフラグは、GitHubリポジトリを見つけるためだけに使用されます。これらのフラグはチェックの最終評価を変更しません。
また、これらのフラグは`--repo`と一緒に使用することはできません。
##### 特定のチェックの実行
特定のチェックのみを実行するには、`--checks`引数にチェック名のリストを追加します。
例: `--checks=CI-Tests,Code-Review`
##### 結果のフォーマット
現在サポートされているフォーマットは`default`(テキスト)と`json`です。
これらは`--format`フラグで指定できます。例: `--format=json`。
## チェック
### Scorecardチェック
以下のチェックはデフォルトで対象プロジェクトに対してすべて実行されます。
名前 | 説明 | リスクレベル | 必要なトークン | GitLabサポート | 備考
--- | --- | --- | --- | --- | --- |
[Binary-Artifacts](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#binary-artifacts) | プロジェクトにチェックインされたバイナリがないか? | 高 | PAT, GITHUB_TOKEN | サポート |
[Branch-Protection](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#branch-protection) | プロジェクトは[ブランチ保護](https://docs.github.com/en/free-pro-team@latest/github/administering-a-repository/about-protected-branches)を使用しているか? | 高 | PAT(`repo`または`repo> public_repo`)、GITHUB_TOKEN | サポート(注記参照) | 一部の設定はメンテナーPATでのみサポート
[CI-Tests](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#ci-tests) | プロジェクトはCI(例:[GitHub Actions](https://docs.github.com/en/free-pro-team@latest/actions)、[Prow](https://github.com/kubernetes/test-infra/tree/master/prow))でテストを実行しているか? | 低 | PAT, GITHUB_TOKEN | サポート
[CII-Best-Practices](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#cii-best-practices) | プロジェクトは[OpenSSF(旧CII)ベストプラクティスバッジ](https://www.bestpractices.dev)を合格、シルバー、またはゴールドレベルで取得しているか? | 低 | PAT, GITHUB_TOKEN | 検証中 |
[Code-Review](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#code-review) | プロジェクトはコードをマージする前にコードレビューを実施しているか? | 高 | PAT, GITHUB_TOKEN | サポート |
[Contributors](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#contributors) | プロジェクトには少なくとも2つの異なる組織からのコントリビューターがいるか? | 低 | PAT, GITHUB_TOKEN | 検証中 |
[Dangerous-Workflow](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#dangerous-workflow) | プロジェクトはGitHub Actionワークフローで危険なコーディングパターンを避けているか? | クリティカル | PAT, GITHUB_TOKEN | 未サポート |
[Dependency-Update-Tool](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#dependency-update-tool) | プロジェクトは依存関係の更新にツールを使用しているか? | 高 | PAT, GITHUB_TOKEN | サポート |
[Fuzzing](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#fuzzing) | プロジェクトはファジングツール(例:[OSS-Fuzz](https://github.com/google/oss-fuzz)、[QuickCheck](https://hackage.haskell.org/package/QuickCheck)、[fast-check](https://fast-check.dev/))を使用しているか? | 中 | PAT, GITHUB_TOKEN | 検証中 |
[License](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#license) | プロジェクトはライセンスを宣言しているか? | 低 | PAT, GITHUB_TOKEN | 検証中 |
[Maintained](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#maintained) | プロジェクトは少なくとも90日以上経過し、メンテナンスされているか? | 高 | PAT, GITHUB_TOKEN | 検証中 |
[Pinned-Dependencies](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#pinned-dependencies) | プロジェクトは[依存関係](https://docs.github.com/en/free-pro-team@latest/github/visualizing-repository-data-with-graphs/about-the-dependency-graph#supported-package-ecosystems)を宣言して固定(ピン)しているか? | 中 | PAT, GITHUB_TOKEN | 検証中 |
[Packaging](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#packaging) | プロジェクトはCI/CDから公式パッケージをビルドして公開しているか(例:[GitHub Publishing](https://docs.github.com/en/free-pro-team@latest/actions/guides/about-packaging-with-github-actions#workflows-for-publishing-packages))? | 中 | PAT, GITHUB_TOKEN | 検証中 |
[SAST](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#sast) | プロジェクトは静的コード解析ツール(例:[CodeQL](https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/enabling-code-scanning-for-a-repository#enabling-code-scanning-using-actions)、[LGTM(非推奨)](https://lgtm.com)、[SonarCloud](https://sonarcloud.io))を使用しているか? | 中 | PAT, GITHUB_TOKEN | 未サポート |
[Security-Policy](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#security-policy) | プロジェクトは[セキュリティポリシー](https://docs.github.com/en/free-pro-team@latest/github/managing-security-vulnerabilities/adding-a-security-policy-to-your-repository)を含んでいるか? | 中 | PAT, GITHUB_TOKEN | 検証中 |
[Signed-Releases](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#signed-releases) | プロジェクトはリリースを暗号化して[署名](https://wiki.debian.org/Creating%20signed%20GitHub%20releases)しているか? | 高 | PAT, GITHUB_TOKEN | 検証中 |
[Token-Permissions](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#token-permissions) | プロジェクトはGitHubワークフロートークンを[読み取り専用](https://docs.github.com/en/actions/reference/authentication-in-a-workflow)として宣言しているか? | 高 | PAT, GITHUB_TOKEN | 未サポート |
[Vulnerabilities](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#vulnerabilities) | プロジェクトに未修正の脆弱性はあるか? [OSVサービス](https://osv.dev)を使用。 | 高 | PAT, GITHUB_TOKEN | 検証中 |
[Webhooks](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md#webhooks) | リポジトリで定義されたwebhookに、リクエストの発信元を認証するためのトークンが設定されているか? | クリティカル | メンテナーPAT(`admin: repo_hook`または`admin> read:repo_hook` [ドキュメント](https://docs.github.com/en/rest/webhooks/repo-config#get-a-webhook-configuration-for-a-repository)) | | 実験的
### 詳細なチェックドキュメント
各チェックの詳細情報、スコアリング基準、および改善手順については、[チェックドキュメントページ](https://github.com/ossf/scorecard/blob/HEAD/docs/checks.md)を参照してください。
### Scorecardチェックの初心者向けガイド
初心者が使用すべきチェックのガイドについては、[Scorecardチェックの初心者向けガイド](https://github.com/ossf/scorecard/blob/HEAD/docs/beginner-checks.md)を参照してください。
## その他の重要な推奨事項
### 二要素認証(2FA)
[二要素認証(2FA)](https://docs.github.com/en/authentication/securing-your-account-with-two-factor-authentication-2fa/about-two-factor-authentication)は、Webサイトやアプリにログインする際に追加のセキュリティ層を提供します。2FAは、パスワードが漏洩した場合でも、SMSや認証アプリ経由のコード、物理セキュリティキーのタッチなど、第二の認証手段を要求することでアカウントを保護します。
可能な限り、重要なアカウントでは2FAを有効にすることを強くお勧めします。2FAはScorecardチェックの対象ではありません。これは、GitHubやGitLabがユーザーアカウントに関するそのデータを公開しないためです。2FAがないアカウントは攻撃に対して非常に脆弱であるため、このデータは常に非公開であるべきだという議論もあります。
公式なチェックではありませんが、すべてのプロジェクトメンテナーは2FAを有効にして、プロジェクトが侵害されるのを防ぐことを推奨します。
#### 2FAの有効化
##### ユーザー向け
[二要素認証の設定](https://docs.github.com/en/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication)に記載されている手順に従ってください。
可能であれば、次のいずれかを使用してください。
- 物理セキュリティキー(推奨)(例:Titan、Yubikey)
- アクセス保護および暗号化されたボールトに保存されたリカバリーコード
最後の手段としてSMSを使用してください。注意:SMSを使用した2FAは[SIMスワップ攻撃](https://en.wikipedia.org/wiki/SIM_swap_scam)に対して脆弱です。
##### Organization向け
1. [Organizationで2FAを必須にする準備](https://docs.github.com/en/organizations/keeping-your-organization-secure/managing-two-factor-authentication-for-your-organization/preparing-to-require-two-factor-authentication-in-your-organization)
2. [Organizationで2FAを必須にする](https://docs.github.com/en/organizations/keeping-your-organization-secure/managing-two-factor-authentication-for-your-organization/requiring-two-factor-authentication-in-your-organization)
## スコアリング
### 総合スコア
各チェックは0から10のスコアを返し、10が最高スコアです。Scorecardはまた、各チェックのリスクで重み付けされた加重平均である総合スコアを生成します。
* 「クリティカル」リスクチェックの重み: 10
* 「高」リスクチェックの重み: 7.5
* 「中」リスクチェックの重み: 5
* 「低」リスクチェックの重み: 2.5
各チェックのリスクレベルについては、[現在のScorecardチェックのリスト](#scorecard-checks)を参照してください。
## 貢献
### 問題の報告
バグと思われるものがある場合は、[GitHubの課題追跡システム](https://github.com/ossf/scorecard/issues)を使用してください。課題を報告する前に、既存の課題を検索して、あなたの問題がすでに報告されていないか確認してください。
### Scorecardへの貢献
貢献する前に、[行動規範](https://github.com/ossf/scorecard/blob/HEAD/CODE_OF_CONDUCT.md)に従ってください。
プロジェクトへの貢献方法については、[貢献](https://github.com/ossf/scorecard/blob/HEAD/CONTRIBUTING.md)ドキュメントを参照してください。
### Scorecardチェックの追加
チェックを追加したい場合は、こちらの[ガイダンス](https://github.com/ossf/scorecard/blob/HEAD/checks/write.md)を参照してください。
### Scorecardコミュニティとの連絡
Scorecardコミュニティに参加したい、または議論したいアイデアがある場合は、[OSSFベストプラクティスワーキンググループ](https://github.com/ossf/wg-best-practices-os-developers)のミーティングでこのプロジェクトについて話し合っています。
成果物 | リンク
--- | ---
Scorecard開発フォーラム | [ossf-scorecard-dev@](https://groups.google.com/g/ossf-scorecard-dev)
Scorecardアナウンスフォーラム | [ossf-scorecard-announce@](https://groups.google.com/g/ossf-scorecard-announce)
コミュニティミーティングVC | [Zoomミーティングへのリンク](https://zoom-lfx.platform.linuxfoundation.org/meeting/95007214146?password=250040c3-80c0-48c4-80c1-07a373116d54)
コミュニティミーティングカレンダー | **_APAC対応_** 隔週木曜日 太平洋時間 13:00-14:00 ([OSSF公開カレンダー](https://calendar.google.com/calendar/u/0/embed?height=600&wkst=1&bgcolor=%238E24AA&showTitle=1&mode=WEEK&showCalendars=0&showTabs=1&showPrint=0&title=OpenSSF+Community+Calendar&src=czYzdm9lZmhwNWk5cGZsdGI1cTY3bmdwZXNAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ&color=%238E24AA)) <br>ビデオ通話: [LFX Zoom](https://zoom-lfx.platform.linuxfoundation.org/meeting/95007214146?password=250040c3-80c0-48c4-80c1-07a373116d54) <br> **_EMEA対応_** 毎4週月曜日 太平洋時間 7:00-8:00 ([OSSF公開カレンダー](https://calendar.google.com/calendar/u/0/embed?height=600&wkst=1&bgcolor=%238E24AA&showTitle=1&mode=WEEK&showCalendars=0&showTabs=1&showPrint=0&title=OpenSSF+Community+Calendar&src=czYzdm9lZmhwNWk5cGZsdGI1cTY3bmdwZXNAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ&color=%238E24AA)) <br> ビデオ通話: [LFX Zoom](https://zoom-lfx.platform.linuxfoundation.org/meeting/93377638314?password=d53af562-d908-4100-8ae1-52686756cc5d)
ミーティングノート | [ノート](https://docs.google.com/document/d/1b6d3CVJLsl7YnTE7ZaZQHdkdYIvuOQ8rzAmvVdypOWM/edit?usp=sharing)
Slackチャンネル | [#scorecard](https://slack.openssf.org/#scorecard)
__メンテナー__は[CODEOWNERSファイル](https://github.com/ossf/scorecard/blob/HEAD/.github/CODEOWNERS)にリストされています。
### セキュリティ問題の報告
セキュリティ問題を報告するには、[こちら](https://github.com/ossf/scorecard/blob/HEAD/SECURITY.md)の指示に従ってください。
### Scorecardプロジェクトミーティングへの参加
#### Zoom
**_APAC対応_** 隔週木曜日 太平洋時間 13:00-14:00 ([OSSF公開カレンダー](https://calendar.google.com/calendar/u/0/embed?height=600&wkst=1&bgcolor=%238E24AA&showTitle=1&mode=WEEK&showCalendars=0&showTabs=1&showPrint=0&title=OpenSSF+Community+Calendar&src=czYzdm9lZmhwNWk5cGZsdGI1cTY3bmdwZXNAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ&color=%238E24AA))
ビデオ通話: [LFX Zoom](https://zoom-lfx.platform.linuxfoundation.org/meeting/95007214146?password=250040c3-80c0-48c4-80c1-07a373116d54)
**_EMEA対応_** 毎4週月曜日 太平洋時間 7:00-8:00 ([OSSF公開カレンダー](https://calendar.google.com/calendar/u/0/embed?height=600&wkst=1&bgcolor=%238E24AA&showTitle=1&mode=WEEK&showCalendars=0&showTabs=1&showPrint=0&title=OpenSSF+Community+Calendar&src=czYzdm9lZmhwNWk5cGZsdGI1cTY3bmdwZXNAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ&color=%238E24AA))
ビデオ通話: [LFX Zoom](https://zoom-lfx.platform.linuxfoundation.org/meeting/93377638314?password=d53af562-d908-4100-8ae1-52686756cc5d)
#### アジェンダ
[アジェンダとミーティングノートはこちら](https://docs.google.com/document/d/1b6d3CVJLsl7YnTE7ZaZQHdkdYIvuOQ8rzAmvVdypOWM/edit?usp=sharing)をご覧ください。
## 経時的なスター獲得数
[](https://starchart.cc/ossf/scorecard)
## FAQ
### FAQ
Scorecardに関するよくある質問への回答は、[FAQ](https://github.com/ossf/scorecard/blob/HEAD/docs/faq.md)を参照してください。
| パッケージマネージャー | 対応ディストリビューション | コマンド |
|---|
| Nix | NixOS | nix-shell -p nixpkgs.scorecard |
| AUR ヘルパー | Arch Linux | AURヘルパーを使用して scorecard をインストールしてください |
| Homebrew | macOS または Linux | brew install scorecard |