コンテナ脆弱性対応のコンテナイメージ粒度キーの構成
コンテナ脆弱性対応結果 (コンテナ脆弱性一致アイテム) を生成するキーを構成して、インポートされたコンテナ脆弱性データからいつどのように作成するかを決定できます。
コンテナイメージ脆弱性キーの概要と、検出結果の生成方法
コンテナイメージの脆弱性をスキャンする場合、粒度機能は、コンテナ脆弱性対応アプリケーション用に設定できるキーに基づいて、結果 (コンテナ脆弱性一致アイテムまたは CVIT) の作成方法を制御します。
サードパーティの各コンテナ脆弱性スキャナー統合には、 ServiceNow AI Platform インスタンスのイメージ脆弱性キー [sn_vul_container_image_vulnerability_keys] 構成テーブルに独自のレコードがあります。デフォルトでは、検出結果 (CVIT) は、スキャナー製品によってインポートされたイメージリポジトリ、脆弱性、およびイメージデータを組み合わせて作成されます。
キーの粒度は、サービスごとにより詳細なレベルで結果を表示およびアサインするのに役立ちます。
必要なロール:sn_vul_container.configure_vi_granularity
キーの粒度に使用される用語:
- 脆弱性
-
インポートされた CVE/CWE 共通脆弱性エクスポージャー、共通脆弱性タイプ一覧、およびインスタンスで結果 (CVIT) を作成するために使用されるその他のサードパーティ脆弱性データ。
- CVIT
- キー構成のイメージ、イメージリポジトリ、および脆弱性データを使用してデフォルトで生成されるコンテナ脆弱性一致アイテム (検出結果とも呼ばれます)。
- クラスター
- コンテナ化されたアプリケーションを実行するマシンまたは作業ノードのグループに関するインポートされたデータ。
- 名前空間
- インポートされたリソースの一意の名前により、単一クラスター内に分離されます。
- サービス
- コンテナ化されたアプリケーションを管理および展開できるようにするアプリケーション依存関係のコンテナ。キーの粒度と構成については、このコンテキストでは次のようになります。
- Elastic Container Service (ECS) 環境 - クラスターとサービスは、キー構成のオプションです。
- Elastic Kubernetes Service (EKS) 環境 - 名前空間、クラスター、およびサービスは、キー構成のオプションです。
各プロダクトキーには、リストに一意のレコードがあります。ECS 環境と EKS 環境の次の主要な構成階層は、次の場所にある同じ粒度構成を共有します .
キーの粒度を構成する場合は、サードパーティ統合を使用してデータをインポートする前に、変更を行ってレコードを更新する必要があります。
AWS ECS (Elastic Container Service)
ECS 環境はクラスターとサービスに編成されており、1 つのクラスターに複数のサービスを含めることができます。
- クラスター
- サービス
クラスターコンポーネントを追加するようにキーの粒度を設定した場合 ([イメージ脆弱性キー VI の粒度の構成] レコードで [クラスター] チェックボックスがオン)、クラスターごとに 1 つの結果 (CVIT) が作成されます。キーの [クラスター ] オプションと [ サービス ] オプションを選択すると、一意のクラスター/サービスの組み合わせごとに結果 (CVIT) が作成され、サービスごとに修復の所有権をより詳細なレベルでアサインできるようになります。
たとえば、クラスター 1 とクラスター 2 の 2 つのクラスターと、サービス 1、サービス 2、サービス 3、サービス 4 の 4 つのサービスがあるとします。キー選択によって作成された CVIT を次の表に示します。
クラスターおよびサービスデータは、スキャナーペイロード (スキャナー情報) または ServiceNow ディスカバリー (ディスカバリー情報) のいずれかから取得できます。このオプションは、キーの選択に応じて、CVIT の作成方法に影響を与える可能性があります。
| データソース | [クラスター] チェックボックスをオン | [サービス] チェックボックスをオン | 作成された CVIT |
|---|---|---|---|
| スキャナー情報 | x | クラスター 1 とクラスター 2 ごとに 1 つずつ、計 2 つの CVIT が作成されます。 | |
| スキャナー情報 | x | x | 2 つのクラスターと 4 つのサービスをサポートするために、複数の CVIT (4) が作成されます。
|
| ディスカバリー 注: データソースとしてディスカバリーが選択されている場合、クラスターとサービスの信頼できる情報源は、スキャナーペイロードではなく ServiceNow ディスカバリーから取得されます。 |
x | クラスター 3 に対して 1 つの CVIT が作成されます。ディスカバリーでこのイメージのクラスター 3 しか見つからない場合、スキャナーが認識していることに関係なく、1 つの CVIT のみが生成されます。 |
デフォルトでは、[ ディスカバリー情報] が選択されています。キーのデータソースとしてディ スカバリー情報 が必要な場合は、[イメージリレーションシップの入力] スケジュール済みジョブが毎日実行され、クラスターとサービスの詳細が事前にインポートされます。インポート前のデータが利用可能になるように、このスケジュール済みジョブが正常に完了してから少なくとも 4 時間後にサードパーティ統合の実行を開始するようにスケジュールする必要があります。このジョブはデフォルトで毎日アクティブ化されますが、スケジュール済みのサードパーティ統合インポートの前にスケジュールを設定する必要があります。
[sn_vul_container.image_relationship_mapping_months] システムプロパティは、関係マッピングを処理するときに、サードパーティのスキャナー統合がコンテナイメージの更新を検索する月数 (1 〜 12) を定義します。このデータは、[sys_updated_on] フィールドで画像をフィルタリングするために使用されます。
デフォルト設定は 3 か月 (90 日) です。この値を変更しない限り、スキャナー統合インポートを構成した後、デフォルトで過去 90 日間にスキャンされ、検出されたコンテナイメージに存在するイメージの関係マッピングが作成されます。
データ入力
ECS がバージョン 30.3 (USEM) 互換および v2.18 (コア) でサポートされる前は、コンテナ脆弱性一致アイテム [sn_vul_container_image_vulnerable_item] テーブルには、入力されたデータ用の 2 つの列セットがありました。
- キー構成に [スキャナー情報 ] データソースが選択されている場合は、[イメージ名前空間] 列と [イメージクラスター] 列が表示されます。
- Kubernetes 名前空間、Kubernetes クラスター、および Kubernetes サービス (キー構成に ディスカバリー情報 データソースが選択されている場合)。
- クラスター (スキャナー)、名前空間 (スキャナー)、およびサービス (スキャナー) (キー構成に スキャナー情報 データソースが選択されている場合)。
- クラスター (ディスカバリー)、名前空間 (ディスカバリー)、およびサービス (ディスカバリー) (キー構成にディ スカバリー情報 データソースが選択されている場合)。
検出されたコンテナイメージ [sn_vul_container_image] テーブルの CMDB Docker コンテナイメージレコードでは、 スキャナー情報 のみに上記の列名が直接入力されます。
ディスカバリーベースのデータ (クラスター/名前空間/サービス) を表示するには、[検出されたコンテナイメージ] レコードで Docker イメージレコードを開きます。このレコードで、[ ディスカバリー情報] によって入力されたデータの [関連アイテム/関係] セクションを表示します。
AWS EKS (Elastic Kubernetes Service)
イメージ脆弱性キーの構成レコードでは、EKS 環境のデフォルトキーに追加できる 3 つのキーがあります。
- 名前空間
- レジストリ
- サービス
EKS 環境には、クラスター/名前空間/サービスの 3 つのレベルの階層があります。3 つのレベル (クラスター + 名前空間 + サービス) をすべて選択すると、最もサポートされている粒度で検索結果が生成されます。データソースを スキャナー情報 または ディスカバリー情報 として選択するオプションは、EKS でサポートされています。
たとえば、クラスター 1、名前空間 1、およびサービス 1 とサービス 2 の 2 つのサービスがあるとします。3 つのレベルをすべて選択すると、サービスごとに 1 つずつ、最もサポートされている粒度に対して 2 つの CVIT が作成されます。
一方、この例で [クラスター 1] と [名前空間 1] を選択すると、1 つの名前空間に対して 1 つの CVIT が作成されます。