OpenSSF Scorecard / プロジェクトの姿勢

CII-Best-Practices
OpenSSF ベストプラクティスバッジを取得しているか

OpenSSF の「Best Practices Badge」を取得しているかを見るチェックです。取得は完全に任意の自己申告制で、申請していないだけのプロジェクトが大多数です。

何を見るチェックか

OpenSSF Best Practices Badge(旧 CII Best Practices)は、 OSS プロジェクトが自分で質問票に答えて申請するバッジの制度です。

質問はライセンス、ドキュメント、変更の管理、テスト、脆弱性の報告手順、 静的解析、暗号の扱いなど、数十項目にわたります。

バッジには3段階あります。

  • Passing(合格)
  • Silver(銀)
  • Gold(金)

Scorecard は、そのリポジトリがバッジを取得しているかを問い合わせ、 段階に応じて点を付けます。取得していなければ 0点です。

自己申告であり、第三者の監査はありません。 ただし回答は公開されており、誰でも内容を読めます。

点が低いと何を意味するか

点が低いということは、バッジを申請していない、という意味です。それ以上ではありません。

バッジを取得しているプロジェクトについては、次のことが言えます。

  • メンテナーが、開発プロセスを整理して見直す作業を実際に行った
  • その回答が公開されており、誰でも読める
  • 少なくとも、質問票にある項目を意識している

つまりこの項目が示すのは、そのプロジェクトの姿勢です。 実際のコードの状態を測ったものではありません。

誤解しやすい点

0点はほぼ何も意味しません。この項目は特にそうです。

Best Practices Badge を取得しているプロジェクトは、 OSS 全体から見ればごく少数です。理由は単純で、

  • 申請には時間がかかります。 数十項目の質問に答える必要があります
  • 知られていません。 制度自体を知らないメンテナーが多数です
  • 取得しても直接の見返りが少ない。 バッジが増えるだけです

そのため、非常によく保守されている有名なライブラリでも 0点 です。 「取っていない」を「やっていない」と読まないでください。

逆に、バッジがあることも、実態の保証ではありません。 自己申告であり、申請時点の状態です。 申請後に体制が変わっていても、バッジはそのまま残ります。

この項目は、加点材料としては読めるが、減点材料としては読めない、 という非対称な性質を持っています。 0点 のときは判断材料にせず、他の項目を見てください。

採用する側が確認すべきこと

  1. バッジがある場合は、回答そのものを読む。 bestpractices.dev でプロジェクト名を検索すると、 各質問への回答と、その根拠として示された URL が読めます。 バッジの有無より、この回答のほうが情報量があります。 脆弱性の報告手順やリリースの手順が、そこに書かれていることがあります。

  2. バッジが無い場合は、この項目を飛ばす。 0点 が普通です。代わりに次を見てください。

  3. 最終更新の日付を見る。 バッジの回答にも更新日があります。何年も前のままなら、現状とはずれている可能性があります。

メンテナーなら何を改善できるか

bestpractices.dev から申請できます。 GitHub アカウントでログインし、リポジトリを登録して質問票に答える形です。

すぐには終わりません。 Passing で数十項目あり、 それぞれに根拠となる URL を求められます。半日は見ておくとよいでしょう。

取り組む価値があるかどうかの目安。

価値がある場合

  • 企業や公的機関に採用されることを想定している
  • 複数人で開発しており、開発プロセスを言語化しておきたい
  • OSS の運営を引き継げる形にしておきたい

優先度が低い場合

  • 個人が作った小さなライブラリ
  • 実験的な段階のプロジェクト

副次的な効果のほうが大きい制度です。 質問票に答える過程で、 「脆弱性の報告先を書いていない」「リリース手順が書かれていない」 といった抜けが自分で見つかります。

バッジを取らない場合でも、 質問の一覧を チェックリストとして読むだけで役に立ちます。

あわせて読む