コンテナスキャンとは?イメージ内の脆弱性を見つける
コンテナスキャンは、イメージを出荷する前に、そのレイヤーとパッケージを既知の脆弱性、露出した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が現れるにつれて公開済みイメージを再スキャンしましょう。
関連ガイド
What Is a CVE? The Universal ID for a Known VulnerabilityA CVE is a unique identifier for a publicly known security vulnerability. Learn what CVE IDs mean and how the…
What Is CVSS Scoring? Grading How Severe a Vulnerability IsCVSS scoring rates the severity of a vulnerability on a 0-10 scale. Learn what the score measures and how to…
What Is a Vulnerability Database? The Index Scanners Rely OnA vulnerability database catalogs known security flaws and the software they affect. Learn what feeds it and…