Skip to content
Latchkey

コンテナスキャンとは?イメージ内の脆弱性を見つける

コンテナスキャンは、イメージを出荷する前に、そのレイヤーとパッケージを既知の脆弱性、露出したsecret、リスクのある設定ミスについて分析します。

コンテナイメージはOS、ライブラリ、アプリをまとめており、そのいずれもが既知の脆弱性を抱えている可能性があります。コンテナスキャンはイメージを分解し、内部にあるものをインベントリ化し、各コンポーネントを脆弱性データベースと照合します。「このイメージは大丈夫だと思う」を、修正または受容できる具体的な問題のリストに変えます。

scannerが確認するもの

  • OSと言語のパッケージを既知のCVEと照合。
  • 公開されたadvisoryを持つ古いbaseイメージ。
  • レイヤーに誤って焼き込まれたsecret。
  • rootでの実行や開いたポートのような設定ミス。

仕組み

scannerはイメージからコンポーネントのインベントリ(事実上のSBOM)を構築し、各コンポーネントとバージョンを脆弱性データベースと照合します。出力はfindingのリストで、通常はCVSSスコアを使って重大度別に評価されます。

一般的なツール

Trivy、Grype、Docker Scout、Snykが広く使われています。これらはCIに統合され、イメージがbuildされた直後、pushやデプロイの前にスキャンされます。

gateとしてのスキャン

チームはスキャンをパイプラインにgateとして組み込みます。修正可能なcriticalな脆弱性が存在する場合はbuildを失敗させます。すべてのfindingが悪用可能というわけではなく、ノイズでブロックするgateは無視されるため、調整が重要です。

早くスキャンし、再びスキャンする

リリース前に問題を捕まえるためbuild時にスキャンし、公開済みイメージを定期的に再スキャンしましょう。昨日はクリーンだったイメージに対して新しいCVEが公開されるからです。先月承認したbaseイメージが今日は脆弱かもしれません。

重要なポイント

  • コンテナスキャンはイメージのコンポーネントを脆弱性データベースと照合します。
  • Trivy、Grype、Docker ScoutはCIに統合され、build時にスキャンします。
  • 調整されたgateとして使い、新しいCVEが現れるにつれて公開済みイメージを再スキャンしましょう。

関連ガイド