※実務1年未満の駆け出しエンジニアが勉強のためにまとめた記事です。
悪意なく多分に間違いが含まれている可能性があります。
※2 scorecardのスコアを出していますが、それによりlog4j2のセキュリティが脆弱であることを意味する、log4j2を批判しているわけではありません。
※3 導入情報が日本語で見つからなかったので頑張って英訳しましたが間違いがある可能性があります。
以上のことなどを踏まえて、注意して読んでいただければ幸いです。
【豆知識】OpenSSFとscorecardとは?なぜOSSの評価が必要なのか?
【OpenSSFとscorecardとは?】
OpenSSFとは?
Linux Foundationの傘下にある組織。
OSS導入時の安全性の検証作業の効率化などを行っています。
scorecardとは?
OpenSSFが開発したOSSのGithubリポジトリをセキュリティ的にチェックするアプリ。
使用者目線ではあるOSSの導入の根拠に使えます。
開発者目線では自身の開発するOSSのセキュリティ上の安全性をアピールできます。
また、自身のOSSの既存の脆弱性の発見に使うことができます。
【なぜOSSの評価が必要なのか?】
企業のプロダクトにOSSを組み込むことが近年増えています。
それにより、企業には組み込みたいOSSのセキュリティ上の安全性を検証する必要性が生まれました。
しかし、大規模なOSSの評価には膨大な時間がかかります。
scorecardはそんなセキュリティ検証を自動化してくれるツールです。
すでの多くの人気OSSはscorecardを導入済み(らしい)です。
scorecardをMacで使ってみた
Linux、Windowsでも使えるようですが、今回はMacで行いました。
MacのバージョンはMacOS Catalina 10.15.7になります。
【必要なもの】
・GOの実行環境
Homebrewをインストール済みでしたら以下のコードで自動で入ります。
brew install go
Homebrewがインストールされていない場合、以下のサイトから手動でインストールしてください。
私の環境ではうまく手動導入できなかったので、Homebrewから導入しました。
導入完了の確認はターミナルで以下を実行してください。
go -version
・scorecard本体
今回はローカルでコマンドを使って操作しますので、scorecardのGithubからファイルをダウンロードします。
各OS毎にダウンロードファイルは違いますので、御自身の環境に対応したものを選択してください。
解答したファイルの中にあるバイナリファイルをusr/local/go/binにコピーしてください。
もしusr/localへの行き方がわからないならこちらです。
※Win、LinuxはGoがインストールされたディレクトリのbinフォルダと読み替えてください。
・Github Access Token
こちらのページを参考にGithubのAccessTokenを入手しておく必要があります。
AccessTokenを作成する際には、「public_repo」にチェックをつけて作成してください。
私は検証に使いたかったので、1日で期限切れになるAccessTokenを作成しました。
作成したAccessTokenは環境変数に登録しておきます。
ターミナルで以下のコマンドを実行してください。
export GITHUB_AUTH_TOKEN=ここにアクセストークンを入力
scorecardを実行する
ここまでの環境準備が整っていれば、あとは簡単なコマンドを入力するだけでscorecardを利用することができます。
例えばlog4j2のリポジトリをチェックしたいならこちらのコマンドになります。
(実行すると終了までに少し時間がかかります。)
scorecard --repo=https://github.com/apache/logging-log4j2
結果はこちらになります。
コードをマージする前にレビューしてる?
ワークフローで変なコーディングしてない?
みたいなことをチェックしているそうなのですが、実際に開発に携わっていない+該当箇所のコードを読んでいないので、正確なところがどうなのかはわかりません。
はい。ここが重要です。
scorecardで出てきたscoreをきちんと読めないのであれば、それは意味がないでしょう!
でも大丈夫、Linux Foundationならね。
近年のセキュリティ知識と、OpenSSFについて(たぶん)まとまっています。
英語ができるようであれば14−18時間程度で読めます。
(私はまだ途中までです。)
DeepLなどに入れると割と自然な日本語で読めます。
前提知識としては情報セキュリティマネジメントなどのIPA初級の知識か、各種クラウドのセキュリティ関連の資格の1番簡単なやつの知識があれば良さそうです。
まとめ
近年企業ではOSSの採用が増えている。そのためセキュリティチェックを効率よく行わなくてはいけない。
その補助ツールとしてscorecardが使える。
scorecardはLinuxFoundation参加のOpenSSF開発で信頼性も高そう。
ただし、scorecardの数値を適切に評価して活用するにはエンジニアとしての高い素養が必要。
#### おまけ