Syft および Grype のスキャン設定

概要

Code Risk Analyzer(CRA) がサポート終了 となる中、SyftおよびGrypeによるスキャンは、CRAの機能の大部分を提供する代替手段となります。

このスキャンは、PR(アプリプレビュー)、CI、およびCCパイプラインで利用可能なコンプライアンスチェック段階の一部です。

Syft

Syftは、コンテナイメージやファイルシステムからSBOMを生成するためのCLIツールです。

ソフトウェア部品表(SBOM)とは、ソフトウェアを構成するすべてのライブラリおよびコンポーネントを詳細に列挙したリストのことです。

SBOMについて詳しく知りたい場合は、「 ソフトウェア部品表( SBOM)」をご覧ください。

Grype

Grype は、コンテナイメージ、ファイルシステム、および SBOM をスキャンして既知の脆弱性を検出するための CLI ツールです。

脆弱性スキャンとは、ソフトウェアパッケージやその依存関係に含まれる既知のセキュリティ上の脆弱性を特定するプロセスです。

Syft および Grype スキャンの有効化と設定

SyftによるSBOM生成およびGrypeによるSBOM検証を有効にするには、パイプラインまたはトリガーのプロパティに「 opt-in-syft-grype 」をテキストプロパティとして追加し、その値を空でない文字列( 0 を除く)に設定してください。

この機能を有効にすると、コンプライアンスチェックスクリプトからトリガーされる Syftスクリプト と Grypeス クリプトの両方が実行されます( Commons Scripts Libraryのドキュメント参照 )。 スクリプトは、Syft と Grype がまだインストールされていない場合、自動的にそれらをインストールします。

Syftのパラメータ

次の表に挙げられているパイプライン環境プロパティは、SyftによるSBOM生成をカスタマイズするために使用されます。

Syftのパラメータ
パラメータ名 説明
app-name Syftによって分析されているターゲットの名前。 この値は、生成されるSBOMにおけるソース名として使用されます。
syft-exclude SBOM生成から除外するパスのカンマ区切りリスト。 例: node_modules,test,*.log。
syft-print-summary-as-table 空でない文字列に設定すると、Syftのスキャン概要が表形式でログ出力に表示されます。
syft-<XXX> syft- で始まるパイプラインまたはトリガーのテキストプロパティ(上記の予約済みプロパティを除く)は、Syft 構成環境変数 SYFT_XXX としてエクスポートされます。 たとえば、「 syft-file-metadata-cataloger-enabled 」は「 SYFT_FILE_METADATA_CATALOGER_ENABLED 」となります。 利用可能なオプションについては、「 Syftの設定 」を参照してください。

Syftの証拠資料および添付資料

DevSecOps パイプラインは、証拠をロッカーにアップロードし、その証拠を変更リクエストの証拠概要に含めます。

Syft の証拠フィールドと値
フィールド 値
tool type syft
evidence type com.ibm.code_bom_check
asset type repo
attachments syft_sbom.json ( CycloneDX JSON形式)

Grypeのパラメータ

次の表に挙げられているパイプライン環境プロパティは、Grypeの脆弱性スキャンをカスタマイズするために使用されます。

Grypeのパラメータ
パラメータ名 説明
grype-<XXX> grype- で始まるパイプラインまたはトリガーのテキストプロパティ(上記の予約済みプロパティを除く)は、Grype 構成環境変数 GRYPE_XXX としてエクスポートされます。 たとえば、「 grype-db-auto-update 」は「 GRYPE_DB_AUTO_UPDATE 」になります。 利用可能なオプションについては、「 Grypeの設定 」を参照してください。

Grypeの証拠資料および添付資料

DevSecOps パイプラインは、証拠をロッカーにアップロードし、その証拠を変更リクエストの証拠概要に含めます。 スキャン中に発見された脆弱性について、コンプライアンス違反のインシデントが作成されます。

Grypeの証拠フィールドと値
フィールド 値
tool type grype
evidence type com.ibm.code_vulnerability_scan
asset type repo
attachments <repo-key>_grype_report_extended.json (SBOMの依存関係を含むGrypeの脆弱性レポート)

スキャン結果の確認

以下の方法でスキャン結果を確認できます: