Docker Scout におけるデータ収集と保存
Docker Scout のイメージ分析は、分析対象のコンテナイメージからメタデータを収集することで機能します。このメタデータは Docker Scout プラットフォームに保存されます。
データ送信
このセクションでは、Docker Scout が収集しプラットフォームに送信するデータについて説明します。
イメージメタデータ
Docker Scout は以下のイメージメタデータを収集します:
- イメージ作成タイムスタンプ
- イメージダイジェスト
- イメージが公開するポート
- 環境変数の名前と値
- イメージラベルの名前と値
- イメージレイヤーの順序
- ハードウェアアーキテクチャ
- オペレーティングシステムの種類とバージョン
- レジストリ URL と種類
イメージダイジェストは、イメージがビルドされレジストリにプッシュされる際に、イメージの各レイヤーに対して作成されます。これはレイヤーの内容を SHA256 でハッシュ化したものです。Docker Scout はダイジェストを作成せず、イメージマニフェストから読み取ります。
これらのダイジェストは、ユーザーのプライベートイメージや Docker の公開イメージデータベースと照合され、同じレイヤーを共有するイメージを特定します。最も多くのレイヤーを共有するイメージが、現在分析中のイメージのベースイメージと見なされます。
SBOM メタデータ
ソフトウェア部品表(SBOM)メタデータは、パッケージの種類やバージョンを脆弱性データと照合し、イメージが影響を受けるかどうかを推測するために使用されます。Docker Scout プラットフォームが新しい CVE や漏洩した秘密情報などのリスク要因に関する情報を受け取ると、SBOM との照合が行われます。一致がある場合、Docker Scout ダッシュボードや Docker Desktop などの Docker Scout データが表示されるインターフェースに結果が表示されます。
Docker Scout が収集する SBOM メタデータは以下の通りです:
- パッケージ URL(PURL)
- パッケージの作成者と説明
- ライセンス ID
- パッケージ名とネームスペース
- パッケージスキームとサイズ
- パッケージタイプとバージョン
- イメージ内のファイルパス
- 直接依存関係のタイプ
- パッケージの総数
Docker Scout の PURL は purl-spec に準拠しています。パッケージ情報は、イメージの内容(OS レベルのプログラムやパッケージ、maven や npm などのアプリケーションレベルのパッケージ)から取得されます。
実行環境メタデータ
Sysdig 統合を介して Docker Scout を実行環境に統合した場合、Docker Scout はデプロイに関する以下のデータポイントを収集します:
- Kubernetes ネームスペース
- ワークロード名
- ワークロードタイプ(例: DaemonSet)
ローカル分析
開発者のマシンでローカルに分析されたイメージについては、Docker Scout は PURL とレイヤーダイジェストのみを送信します。このデータは Docker Scout プラットフォーム上に永続的には保存されず、分析の実行にのみ使用されます。
プロベナンス
プロベナンスアテステーションがあるイメージの場合、Docker Scout は SBOM に加えて以下のデータも保存します:
- マテリアル
- ベースイメージ
- バージョン管理システム(VCS)情報
- Dockerfile
データの保存
Docker Scout サービスの提供を目的として、データは次の方法で保存されます:
- 米国東部にある Amazon Web Services (AWS) サーバー
- 米国東部にある Google Cloud Platform (GCP) サーバー
データは、Docker Scout の主要機能を提供するために、docker.com/legal に記載されているプロセスに従って使用されます。