コンテナセキュリティ
コンテナセキュリティ とは何ですか?
コンテナセキュリティコンテナイメージ・レジストリ・オーケストレーター、およびコンテナが実行されるランタイムを保護する一連の実践。
コンテナセキュリティは、OCI 互換コンテナ(Docker、containerd、CRI-O)のライフサイクル全体を対象とします。ビルド時には、CVE や埋め込みシークレットを検出し、Sigstore/Cosign で署名し、最小限のベースイメージを強制します。配布段階では、レジストリを認証付きアクセスと署名検証で保護します。ランタイムでは、ホストのハードニング、Namespace/cgroup による分離、seccomp、AppArmor、読み取り専用ファイルシステムなどで攻撃面を縮小し、Admission Controller や eBPF ベースのセンサーでポリシー適用と異常検知を行います。
コンテナはホストのカーネルを共有するため、カーネルやランタイムの単一の欠陥だけで分離が破られる可能性があります。CVE-2019-5736 では、悪意あるイメージが /proc/self/exe を介してホストの runc バイナリを上書きし、ノード上で root 権限のコード実行を得られました(runc 1.0-rc7 および Docker 18.09.2 で修正)。2024 年の 「Leaky Vessels」CVE-2024-21626 は、pivot_root の前にホストの作業ディレクトリを指す内部ファイルディスクリプタ(fd/7)を漏らしており、コンテナの cwd を /proc/self/fd/7 に設定すると rootfs から脱出できました(runc 1.1.12 で修正)。Pod の脱出は多くの場合ノードの侵害と同義であるため、多層防御が重要です。capabilities を削除し、非 root で実行し、特権コンテナや hostPath マウントを避け、runc をパッチし続け、gVisor や Kata Containers といったより強力なサンドボックスの採用を検討します。
flowchart LR A[ビルド: イメージ検査 + 署名] --> B[レジストリ: 認証 + 署名検証] B --> C[アドミッション: 特権/hostPath を拒否] C --> D[ランタイム: seccomp, AppArmor, 非root, caps削除] D --> E[検知: eBPF/Falco の異常アラート] D -. カーネル/runc の欠陥 .-> X[コンテナからホストへの脱出] X -. 緩和 .-> F[gVisor / Kata サンドボックス]
● 例
- 01
CI で Trivy や Grype を用いてイメージを検査し、Kyverno や OPA Gatekeeper で特権 Pod を拒否する。
- 02
Falco が本番コンテナ内で起動されたシェルを検出する。
● よくある質問
コンテナセキュリティ とは何ですか?
コンテナイメージ・レジストリ・オーケストレーター、およびコンテナが実行されるランタイムを保護する一連の実践。 サイバーセキュリティの クラウドセキュリティ カテゴリに属します。
コンテナセキュリティ とはどういう意味ですか?
コンテナイメージ・レジストリ・オーケストレーター、およびコンテナが実行されるランタイムを保護する一連の実践。
コンテナセキュリティ からどのように防御しますか?
コンテナセキュリティ に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。
コンテナセキュリティ の別名は何ですか?
一般的な別名: Docker セキュリティ, OCI コンテナセキュリティ。