概要
- 機能:コンテナイメージスキャンは、プロジェクトで使用されるコンテナイメージの既知のセキュリティ脆弱性を特定します。これには、イメージレイヤー内にインストールされたベース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タグを避け、スキャンを再現できるよう正確なバージョンに固定します。 - 最小構成のベースイメージを優先:攻撃対象領域を減らすため、slim、Alpine、distrolessなどのバリアントを使用します。
- 定期的に更新:セキュリティパッチを取り込むため、ベースイメージを更新します。
- マルチステージビルド:最終イメージのサイズと含まれるパッケージセットを最小化します。
関連
- 依存関係スキャン(SCA) — アプリケーションのサードパーティ依存関係をスキャンする
- 悪意のあるパッケージ検出 — 既知の悪意あるまたは侵害されたパッケージを検出する
