【グライプ】

Grype とは?

最終更新:
💡 ソフトウェアの部品を、既知の脆弱性情報と照合する

Anchoreが開発を支援するオープンソースの脆弱性スキャナー。コンテナイメージ・ファイルシステム・SBOMに含まれるパッケージを、既知の脆弱性情報と照合する。

📌 このページのポイント
Grype:既知の脆弱性との照合 コンテナ イメージ Syft 部品を収集 SBOM 部品表 Grype 既知の情報と 照合する 照合結果 深刻度など 影響を確認 脆弱性 データベース 更新して使う これはSBOMを使う流れの一例 検出がないことは、安全の証明ではない
部品表を保存して、後から脆弱性情報と照合できる。Grypeへイメージやディレクトリを直接渡す方法もあり、Syftを先に実行することが必須ではない。
ひよこ ひよこ
Grypeって、どんなツールなの?
ペンギン先生 ペンギン先生
コンテナイメージやファイルシステム、SBOMにあるパッケージを、既知の脆弱性データベースと照合するツールだよ。AlpineやDebianなどのOSパッケージだけでなく、Pythonなどの言語のパッケージも対象になるんだ
ひよこ ひよこ
Syftとセットじゃないと使えないの?
ペンギン先生 ペンギン先生
Grypeへイメージやディレクトリを直接渡すこともできるよ。Syftはソフトウェアの構成部品を記録するSBOMを作るツールで、その出力をGrypeへ渡せる。部品の収集と照合を分けると、同じSBOMを後で更新された脆弱性情報と照合できるんだ
ひよこ ひよこ
どうやって入力するの?
ペンギン先生 ペンギン先生
公式の例では「grype alpine:latest」でイメージ、「grype sbom:./sbom.json」でSyftのSBOMを渡すよ。実際に何を読むかは入力形式や環境による。検査結果にはパッケージ名・バージョン・脆弱性ID・深刻度・修正情報などが出るんだ
ひよこ ひよこ
深刻度に合わせてCIを失敗させられる?
ペンギン先生 ペンギン先生
「--fail-on high」を指定すると、High以上の深刻度の脆弱性が見つかった場合に終了コード2を返すよ。CI側でその終了コードを失敗として扱う設定と組み合わせる。CVSSの数値を直接指定するオプションではないんだ
ひよこ ひよこ
何も見つからなければ安全なの?
ペンギン先生 ペンギン先生
全ての危険がないという証明にはならないよ。収集できた部品と既知の情報が対象だから、データベースを更新し、結果の照合方法や対象バージョンを確認することが大切。検出した候補も、実際の環境での影響や修正情報を確かめよう
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Grype」って出てきたら「ソフトウェアの部品を、既知の脆弱性情報と照合するツール」と思えばだいたいOK!
📖 おまけ:英語の意味
「Grype」 = 脆弱性スキャナーの名称
💬 Anchoreのオープンソースプロジェクトの名前だよ。Syftで部品表を作り、Grypeで既知の脆弱性と照合する組み合わせが使えるんだ

参考資料

← 用語集にもどる