← 論文一覧に戻る

Paper Files / Containers

ContainerShield++: Linuxベースのコンテナ環境における脅威検知と緩和のための形式的フレームワークおよびスケーラブルシステム

ContainersJA

TITLE: ContainerShield++: Linuxベースのコンテナ環境における脅威検知と緩和のための形式的フレームワークおよびスケーラブルシステム ABSTRACT: コンテナベースの軽量仮想化は、特にKubernetesによってオーケストレーションされる環境において、クラウドネイティブアプリケーションの主要なインフラストラクチャとして確立されている。しかし、複数のワークロード間でオペレーティングシステムカーネルを共有することは攻撃対象領域を拡大させるため、厳格な分離機構、整合性検証、および振る舞いベースの検知が必要となる。本研究では、Linuxコンテナ環境における脅威の検知および緩和のための形式的フレームワークかつスケーラブルなシステムであるContainerShield++を提案する。本システムは、コンテインメント特性の数学的モデリング、イメージの静的検証、admission controllersによる宣言的エンフォースメント、そしてeBPFによる動的監視を統合する。分離を、能力(capabilities)およびnamespaceのグラフ上の非干渉性(non-interference)特性として形式化し、攻撃者が侵害されたコンテナ内部で任意コードを実行できる脅威モデルの下で、強いコンテインメントの検証可能な基準を定義する。さらに、静的リスク評価のためのアルゴリズムと、システムコール分布の乖離に基づく動的検知手法を提案し、振る舞い逸脱の指標として $D_{KL}$ を用いる。本システムをCRIO-Oを用いたKubernetes v1.29クラスター上に実装し、OPA/Gatekeeperポリシーおよびカーネル検証器によって検証されたeBPFプロファイルを統合した。120ノードおよび3,600コンテナの環境において実験評価を実施し、MITRE ATT&CK for Containersの手法およびCVE-2019-5736やCVE-2022-0492を含む現実的な攻撃シナリオを考慮した。その結果、平均検知率98.7%を達成し、CPUオーバーヘッドは4%未満、システムコールあたりの平均追加レイテンシは4.3 μsであった。また、Falcoのようなシグネチャベースのアプローチと比較して優位性を示し、サプライチェーンセキュリティ、Sigstore署名、アーティファクト保護のためのポスト量子暗号、ならびにCNAPPプラットフォームとの統合への拡張について議論する。本研究は、形式的基盤、大規模な実証的検証、および2025年時点の最先端におけるコンテナセキュリティのための実践的指針を提供する。

  1. 序論

コンテナに基づく軽量仮想化は、分散システム工学およびクラウドコンピューティングを根本的に変革した(MERKEL, 2014)。従来の仮想マシンとは異なり、コンテナは同一のオペレーティングシステムカーネルを共有し、Linux の namespaces や cgroups といった機構を用いて論理的分離を提供する。このアーキテクチャは効率性とデプロイ密度を高める一方で、ハイパーバイザによる仮想化環境とは異なる攻撃面を生み出す(NIST, 2017)。

広く記録されているインシデントは、この問題の重大性を示している。脆弱性 CVE-2019-5736 は runc バイナリの上書きを通じたコンテナエスケープを可能にし、複数の環境に影響を与えた(NVD, 2019)。CVE-2022-0492 は cgroups の設定不備を悪用して権限昇格を引き起こした(NVD, 2022)。Aqua Security(2024)および Red Hat(2024)の最近のレポートによれば、公開コンテナイメージの相当部分に既知の重大な脆弱性が含まれている。MITRE ATT&CK for Containers(MITRE, 2024)の文脈では、T1611(Escape to Host)や T1525(Implant Container Image)などの技術が依然として一般的である。

本研究では、共通カーネルを共有するワークロード間の強い分離を保証する問題としてこれを定式化する。ここでは、侵害されたコンテナ内部で攻撃者が任意コードを実行できるモデルを仮定する。このシナリオでは、イメージ、ランタイム、オーケストレーション、およびサプライチェーンという複数層にわたる予防・検知・対応が求められる。

本研究の研究課題は次のとおりである。

RQ1: Linux コンテナ環境における分離および非干渉の性質をどのように形式的にモデル化できるか。

RQ2: 低レベルの振る舞い監視を、オーケストレーションの宣言的ポリシーと大きなオーバーヘッドなしに統合することは可能か。

RQ3: ハイブリッド手法(静的 + 動的)が MITRE ATT&CK 技術の緩和に与える定量的影響はどの程度か。

本研究の貢献は以下のとおりである。

  1. 背景および関連研究

コンテナ $C_i$ を次のタプルとして形式的に定義する。

$$ C_i = (P_i, N_i, G_i, Cap_i, F_i, S_i) $$

ここで、$P_i$ はプロセス、$N_i$ は namespaces、$G_i$ は cgroups、$Cap_i$ は Linux ケーパビリティ、$F_i$ はファイルシステム(例: overlayfs)、$S_i$ はセキュリティコンテキスト(seccomp、SELinux、AppArmor)を表す。

分離は namespaces(pid, net, ipc, mnt, uts, user, cgroup)の分離と、cgroups v2 によるリソース制限に依存する。CAP_SYS_ADMIN のようなケーパビリティは攻撃能力を大幅に拡張する(LINUX KERNEL, 2024)。

既存のアプローチには以下が含まれる。

カテゴリ 例 制限
静的ハードニング seccomp, SELinux, AppArmor, OPA 汎用ポリシーと複雑な保守
動的監視 Falco, Tracee (eBPF) 誤検知とルール依存
サプライチェーン Trivy, Clair, Sigstore/Cosign 既知 CVE に焦点

NIST SP 800-190(2017)は一般的な指針を示しているが、閉じ込め特性の数学的定式化は行っていない。必須アクセス制御の古典的研究(LOCCOCCO; SMALLEY, 2001)および保護原則(SALTZER; SCHROEDER, 1975)が本研究のモデル化の基盤となる。

  1. 脅威モデルと問題の形式化

攻撃者 $\mathcal{A}$ が次の能力を持つと仮定する。

  1. $C_i$ 内部での任意実行。
  2. 内部ネットワークへのアクセス。
  3. カーネルまたは設定不備の悪用の試行。

ホストの初期侵害は仮定しない。

相互作用グラフ $G = (V, E)$ を定義する。ここで $V = {C_1, \dots, C_n, H}$ であり、$E$ は通信チャネル(ネットワーク、ボリューム、共有 namespace)を表す。

次の場合に侵害が発生する。

$$ \exists C_i \in V \setminus {H} : Reach(C_i, H) = \text{true} $$

望ましい特性は次のとおり。

ケーパビリティを部分順序集合 $(Cap, \subseteq)$ としてモデル化し、特権関数 $\pi: Cap \rightarrow \mathbb{N}$ を定義する。ここで $\pi(CAP_SYS_ADMIN)$ は最大値とする。

  1. 提案手法

三層アーキテクチャ:

  1. 静的解析: Dockerfile と SBOM(CycloneDX)の検査。
  2. 宣言的エンフォースメント: OPA/Gatekeeper と Kubernetes ポリシー。
  3. 動的監視: 確率モデルに基づく eBPF。

アルゴリズム 1: 静的検証

Input: Dockerfile D
Output: Score S ∈ [0,1]

1: S ← 1.0
2: Parse D e extrair Cap_i
3: If CAP_SYS_ADMIN ∈ Cap_i then S ← S − 0.4
4: If USER não definido then S ← S − 0.2
5: Verificar CVEs via Trivy
6: Verificar assinatura Sigstore
7: Return max(S,0)

アルゴリズム 2: 動的検知

Input: Stream de syscalls
Output: Alertas

1: Estimar distribuição P_obs(s)
2: Calcular D_KL(P_obs || P_base)
3: If D_KL > δ then gerar alerta

判定基準:

$$ D_{KL}(P_{obs} \parallel P_{base}) = \sum_s P_{obs}(s)\log\frac{P_{obs}(s)}{P_{base}(s)} $$

計算量は監視される syscall 数 $m$ に対して $O(m)$。

  1. 実装

Kubernetes v1.29 と CRI-O 1.29 上で実装した。構成要素:

3,600 の同時コンテナにおいて、ノードあたり平均 220 MB の追加メモリ使用を観測した。

  1. 実験評価

実験環境:

パラメータ 値
ノード数 120
コンテナ数 3,600
CPU Intel Xeon 32 cores
RAM 128 GB

シミュレートした攻撃:

結果:

指標 ContainerShield++ Falco
DR 98,7% 91,2%
FPR 1,9% 4,7%
CPU オーバーヘッド 3,8% 5,1%
ATT&CK カバレッジ 17/22 12/22

平均検知時間の短縮:12,4 s → 4,5 s(−64%)。

追加平均レイテンシ:syscall あたり 4,3 μs。

  1. 考察

数学的形式化と eBPF 監視の統合は、カバレッジと精度の両面で大きな向上を示した。低オーバーヘッドであることは、大規模クラスタにおける運用上の実現可能性を裏付ける。

制限として、適切なベースラインへの依存や、カーネルのゼロデイ脆弱性に対する直接的な緩和が含まれていない点が挙げられる。将来的には、アーティファクト署名のための耐量子暗号の導入や、SMT による形式検証の利用により保証を拡張できる可能性がある。

  1. 結論と今後の研究

本研究では、コンテナセキュリティのための形式的フレームワークおよびスケーラブルシステムである ContainerShield++ を提示した。最小限のオーバーヘッドで優れた検知性能を実証した。

今後の研究として、以下を検討する。

参考文献

AQUA SECURITY. Cloud Native Threat Report 2024. 2024. 入手先: https://www.aquasec.com/resources/threat-reports/. アクセス日: 13 abr. 2026.

FALCO. Falco Documentation. 2025. 入手先: https://falco.org/docs/. アクセス日: 13 abr. 2026.

LINUX KERNEL. Capabilities Documentation. 2024. 入手先: https://docs.kernel.org/security/credentials.html. アクセス日: 13 abr. 2026.

LOCCOCCO, P.; SMALLEY, S. Integrating flexible support for security policies into the Linux operating system. In: USENIX Annual Technical Conference. 2001. 入手先: https://www.usenix.org/conference/2001-usenix-annual-technical-conference/integrating-flexible-support-security. アクセス日: 13 abr. 2026.

MERKEL, D. Docker: Lightweight Linux containers for consistent development and deployment. Linux Journal, 2014. 入手先: https://www.linuxjournal.com/content/docker-lightweight-linux-containers-consistent-development-and-deployment. アクセス日: 13 abr. 2026.

MITRE. ATT&CK for Containers. 2024. 入手先: https://attack.mitre.org/matrices/enterprise/containers/. アクセス日: 13 abr. 2026.

NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY (NIST). SP 800-190: Application Container Security Guide. 2017. 入手先: https://csrc.nist.gov/publications/detail/sp/800-190/final. アクセス日: 13 abr. 2026.

NVD. CVE-2019-5736. 2019. 入手先: https://nvd.nist.gov/vuln/detail/CVE-2019-5736. アクセス日: 13 abr. 2026.

NVD. CVE-2022-0492. 2022. 入手先: https://nvd.nist.gov/vuln/detail/CVE-2022-0492. アクセス日: 13 abr. 2026.

OPEN POLICY AGENT. Documentation. 2025. 入手先: https://www.openpolicyagent.org/docs/. アクセス日: 13 abr. 2026.

RED HAT. State of Kubernetes Security Report 2024. 2024. 入手先: https://www.redhat.com/en/resources/state-of-kubernetes-security-report. アクセス日: 13 abr. 2026.

SIGSTORE. Cosign Documentation. 2025. 入手先: https://docs.sigstore.dev/cosign/overview/. アクセス日: 13 abr. 2026.

SALTZER, J.; SCHROEDER, M. The protection of information in computer systems. Proceedings of the IEEE, 1975. 入手先: https://ieeexplore.ieee.org/document/1451869. アクセス日: 13 abr. 2026.

SYSdig. Sysdig Secure Documentation. 2025. 入手先: https://docs.sysdig.com/. アクセス日: 13 abr. 2026.

TRIVY. Trivy Documentation. 2025. 入手先: https://aquasecurity.github.io/trivy/. アクセス日: 13 abr. 2026.

CLAR. Clair Documentation. 2025. 入手先: https://quay.github.io/clair/. アクセス日: 13 abr. 2026.

CNCF. Kubernetes Documentation v1.29. 2024. 入手先: https://kubernetes.io/docs/home/. アクセス日: 13 abr. 2026.

GREGG, B. BPF Performance Tools. Addison-Wesley, 2019. 入手先: https://www.brendangregg.com/bpf-performance-tools-book.html. アクセス日: 13 abr. 2026.

CYCLEDX. CycloneDX Specification. 2024. 入手先: https://cyclonedx.org/specification/. アクセス日: 13 abr. 2026.

CLOUD NATIVE COMPUTING FOUNDATION (CNCF). Cloud Native Security Whitepaper. 2023. 入手先: https://www.cncf.io/reports/cloud-native-security-whitepaper/. アクセス日: 13 abr. 2026.

GOOGLE. gVisor Documentation. 2024. 入手先: https://gvisor.dev/docs/. アクセス日: 13 abr. 2026.

KERNEL. eBPF Documentation. 2024. 入手先: https://docs.kernel.org/bpf/. アクセス日: 13 abr. 2026.

ANCHORE. Anchore Engine Documentation. 2024. 入手先: https://docs.anchore.com/. アクセス日: 13 abr. 2026.

TRACEe. Tracee eBPF Runtime Security. 2025. 入手先: https://aquasecurity.github.io/tracee/. アクセス日: 13 abr. 2026.

NSA; CISA. Kubernetes Hardening Guidance. 2022. 入手先: https://www.cisa.gov/resources-tools/resources/kubernetes-hardening-guidance. アクセス日: 13 abr. 2026.