Skip to main content

概要

  • 機能:コンテナイメージスキャンは、プロジェクトで使用されるコンテナイメージの既知のセキュリティ脆弱性を特定します。これには、イメージレイヤー内にインストールされたベースOSパッケージ、システムライブラリ、アプリケーションパッケージの脆弱性が含まれます。デプロイ前にイメージをスキャンすることで、コンテナ化されたアプリケーションのセキュリティリスクを早期に検出できます。
  • 対象者:コンテナ化されたアプリケーションをリリースし、ベースイメージから継承される脆弱性を可視化したいセキュリティチーム、開発者、DevOpsエンジニア。

仕組み

Corgeaはプロジェクトで参照されたコンテナイメージを自動的に検出し、既知の脆弱性データベースと照合して各イメージをスキャンします。
1

イメージ検出

Corgeaはプロジェクトから Dockerfile とDocker Composeファイルをスキャンし、そこからイメージ参照を抽出します:
  • Dockerfiles: FROM で宣言されたベースイメージ(例: FROM python:3.11-slim)
  • Docker Compose:各サービスごとに image: で宣言されるイメージ(例: image: postgres:15)
検出されたイメージは重複を除去し、参照したファイルにマッピングされます。
2

イメージ解析

各イメージは抽出され、そのレイヤーを解析してインストールされたソフトウェアのインベントリを作成します。これにはOS/ディストリビューションパッケージ(Debian、Ubuntu、Alpineなど)や、イメージ内にインストールされたアプリケーションパッケージが含まれます。
3

脆弱性マッチング

検出されたパッケージは既知の脆弱性データベースと照合され、一致したものは他のスキャン結果と共に報告されます。

サポート登録

Corgeaは公開レジストリに掲載されているイメージをスキャンします:
  • Docker Hub
  • GitHubコンテナレジストリ(GHCR)
  • Googleコンテナレジストリ(GCR)
  • Quay.io
  • Microsoft Container Registry(MCR)
  • Amazon ECR パブリック
  • GitLabコンテナレジストリ
Dockerファイルがプロジェクト内で検出されると、コンテナイメージスキャンは自動的に有効になります。設定は不要です。

制限

  • 公開レジストリのみ:プライベートレジストリにホストされているイメージはスキップされます。
  • 最大イメージサイズ:1000MB(1 GB)を超えるイメージはスキップされます。
  • Dockerfile およびDocker Composeファイルで参照されたイメージのみが検出されます。

ベストプラクティス

一貫性のある再現性のあるスキャン結果を得るために、latestの代わりに特定のイメージタグ(例:python:3.11.5-slim)を使用します。
  • 特定のタグを使用:latestタグを避け、スキャンを再現できるよう正確なバージョンに固定します。
  • 最小構成のベースイメージを優先:攻撃対象領域を減らすため、slim、Alpine、distrolessなどのバリアントを使用します。
  • 定期的に更新:セキュリティパッチを取り込むため、ベースイメージを更新します。
  • マルチステージビルド:最終イメージのサイズと含まれるパッケージセットを最小化します。

関連