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生成をカスタマイズするために使用されます。
| パラメータ名 | 説明 |
|---|---|
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 パイプラインは、証拠をロッカーにアップロードし、その証拠を変更リクエストの証拠概要に含めます。
| フィールド | 値 |
|---|---|
tool type |
syft |
evidence type |
com.ibm.code_bom_check |
asset type |
repo |
attachments |
syft_sbom.json ( CycloneDX JSON形式) |
Grypeのパラメータ
次の表に挙げられているパイプライン環境プロパティは、Grypeの脆弱性スキャンをカスタマイズするために使用されます。
| パラメータ名 | 説明 |
|---|---|
grype-<XXX> |
grype- で始まるパイプラインまたはトリガーのテキストプロパティ(上記の予約済みプロパティを除く)は、Grype 構成環境変数 GRYPE_XXX としてエクスポートされます。 たとえば、「 grype-db-auto-update 」は「 GRYPE_DB_AUTO_UPDATE 」になります。 利用可能なオプションについては、「 Grypeの設定 」を参照してください。 |
Grypeの証拠資料および添付資料
DevSecOps パイプラインは、証拠をロッカーにアップロードし、その証拠を変更リクエストの証拠概要に含めます。 スキャン中に発見された脆弱性について、コンプライアンス違反のインシデントが作成されます。
| フィールド | 値 |
|---|---|
tool type |
grype |
evidence type |
com.ibm.code_vulnerability_scan |
asset type |
repo |
attachments |
<repo-key>_grype_report_extended.json (SBOMの依存関係を含むGrypeの脆弱性レポート) |
スキャン結果の確認
以下の方法でスキャン結果を確認できます:
- DevSecOps/CoCoa のCLIコマンドラインツール を使用し、ステージログに表示された情報に基づいて、エビデンスロッカーからスキャン結果をダウンロードします。 詳しくは、以下のリソースを参照してください。