Paper Files / Containers
タイトル: 確率的行動プロファイルとカーネルにおけるポリシー検証に基づくコンテナ脱出の検出および緩和のための形式的アーキテクチャ
タイトル: 確率的行動プロファイルとカーネルにおけるポリシー検証に基づくコンテナ脱出の検出および緩和のための形式的アーキテクチャ 要旨: コンテナベースの仮想化はクラウドネイティブ・インフラの基盤として定着したが、共有カーネルへの依存は構造的なセキュリティ課題をもたらす。コンテナ脱出は依然として重大な侵害ベクトルであり、特に大規模な Kubernetes 環境では、runtime、cgroups サブシステム、あるいはカーネル自体における脆弱性が分離の破綻を招く可能性がある。本研究では、システムコール列の確率的モデリングとカーネルレベルでのセキュリティポリシーの自動合成に基づく、コンテナ脱出の検出および緩和のための形式的アーキテクチャを提案する。合法的なアプリケーション挙動を syscall のアルファベット上の確率言語としてモデル化し、ベイズ平滑化を用いた可変次数マルコフ連鎖として実装する。パラメータ $(\epsilon, \delta)$ の下での正当性および完全性に関する形式的境界を導出し、累積対数尤度に基づく判定基準を導入する。経験的に観測されたサポートから、seccomp の最小プロファイルおよび現代的な LSM(AppArmor または SELinux)と整合するポリシーを自動合成し、攻撃面を定量的に削減する。Linux 6.x カーネルの tracepoints に連携した eBPF を用いて本アーキテクチャを実装し、containerd 1.7 を備えた Kubernetes 1.28 クラスタに統合した。120ノードおよび1,800コンテナを対象とした実験評価では、許可される syscall 集合を平均72.4%削減し、検出率96.1%、CPU平均オーバーヘッド3.7%を達成した。さらに、本手法がヒューリスティック規則のみに基づく機構を上回り、スケーラビリティと低遅延を維持することを示した。以上より、確率的形式モデリング、効率的なカーネル内検証、ならびにポリシーの自動合成の組み合わせは、2025年におけるコンテナ化環境の動的な強化に対する堅牢な戦略であると結論づける。
- はじめに
コンテナベースの仮想化は、従来の仮想マシンよりも高い効率でアプリケーションを軽量に隔離できるようにすることで、分散システム工学を変革してきた(BARHAM et al., 2003; BURNS; BEDA; HIGHTOWER, 2022)。各仮想マシンがそれぞれ独自のカーネルを内包するハイパーバイザベースのアーキテクチャとは異なり、コンテナはホストOSのカーネルを共有し、論理的隔離を提供するために namespace、cgroups、Linux Security Modules(LSM)などの機構に依拠している(NIST, 2017)。
形式的には、コンテナのセキュリティは共有カーネル $K$ における隔離特性の保持に依存する。$K$ または runc や containerd のようなランタイム構成要素に存在する悪用可能な脆弱性は、ホスト全体を侵害し得る。CVE-2019-5736(NVD, 2019)、CVE-2022-0492(NVD, 2022a)、CVE-2022-0185(NVD, 2022b)といった広く文書化された事例は、メモリ破壊、cgroups の不適切な操作、あるいはランタイムバイナリの置換を通じたコンテナ脱出の実現可能性を示している。
近年の業界報告は、公開イメージにおける脆弱性露出の高さと、Kubernetes クラスタにおける不安全な設定を示している(AQUA SECURITY, 2023; PALO ALTO NETWORKS, 2024)。戦術面では、MITRE ATT&CK for Containers フレームワークが Escape to Host(T1611)や Privileged Container(T1610)といった技法を記録し、反復的なベクトルをモデル化している(MITRE, 2023)。NIST SP 800-190(NIST, 2017)、OWASP Docker Security Cheat Sheet(OWASP, 2023)、CIS Kubernetes Benchmark(CIS, 2023)といった規範的ガイドは処方的な推奨を提供するが、その多くは静的である。
我々は、seccomp プロファイルおよび AppArmor ポリシーが、広範な互換性を維持するために汎用的な設定を採用することが多く、その結果として過度の許容性が生じていることを観察した(DOCKER, 2024)。したがって、各アプリケーションに固有の正当な挙動を捉える形式的メカニズムが必要となり、逸脱の検知と攻撃面の体系的削減の双方を可能にする。
本研究では以下の研究課題を設定する。
RQ1: 脱出に関連する逸脱を検出するのに十分な粒度で、コンテナの正当な挙動を形式的にモデル化できるか?
RQ2: これらのモデルから最小限のセキュリティポリシー(seccomp および LSM)を自動合成し、機能を損なうことなく攻撃面を削減できるか?
RQ3: 大規模 Kubernetes 環境における本アプローチの性能、スケーラビリティ、誤検知率への影響は何か?
本研究の貢献は以下のとおりである。(C1) システムコール列を確率的言語として表現するための、可変次数マルコフ連鎖に基づく形式モデル;(C2) 推定分布の経験的支持から導出される最小限のポリシーを自動合成する機構;(C3) リアルタイム監視とカーネル内での増分検証のための eBPF を用いた実装アーキテクチャ。
- 背景および関連研究
2.1 コンテナにおける隔離の基礎
コンテナを形式的に $C = (P, N, G, F)$ というタプルとして定義する。ここで、$P$ はプロセス集合、$N$ は namespace の集合、$G$ は適用される cgroup、$F$ は隔離されたルートファイルシステムである。すべてのコンテナは同一のカーネル $K$ を共有するため、全体の攻撃面は次のようにモデル化できる。
$$ S = \bigcup_{i=1}^{m} S_i, $$
ここで $S_i \subseteq \Sigma$ はコンテナ $i$ にアクセス可能な syscalls の集合であり、$\Sigma$ は $K$ が公開する syscalls の総アルファベットである。
2.2 文献の分類
| カテゴリ | 例 | 制約 |
|---|---|---|
| 静的ハードニング | seccomp, AppArmor, SELinux, Pod Security Standards | 手動設定および過度の許容性 |
| イメージ解析 | Trivy, Clair | 実行時挙動をモデル化しない |
| ルールベース監視 | Falco | シグネチャ依存および継続的保守の必要性 |
| 挙動モデリング | Forrest et al. (1996); Chen et al. (2021) | 形式的ポリシー合成との統合が限定的 |
Forrest et al. (1996) は、短い syscall 列に基づく検知を導入した。その後の研究では、確率的学習と自動ポリシー生成が探究された(CHEN et al., 2021)。しかし、形式的確率モデル化、最小限ポリシーの自動合成、ならびに eBPF を介した効率的なカーネル内検証の統合には依然として空白が残っている(LINUX FOUNDATION, 2024)。
- 脅威モデルと問題の形式化
我々は、侵害されたコンテナ内で任意コードを実行でき、ランタイムまたはカーネルにおける既知の脆弱性を悪用し、同一ノード内でラテラルムーブメントを行うことが可能な攻撃者を想定する。事前のカーネル侵害は仮定しない。
$\Sigma$ を syscalls の集合とする。実行は $X = (x_1, \dots, x_n)$ としてモデル化され、$x_i \in \Sigma$ である。正当な列の確率言語として $L \subseteq \Sigma^$ を定義し、以下の関数を求める。
$$ f: \Sigma^ \rightarrow {0,1} $$
次の保証を満たすようにする。
正確性: $\Pr[f(X)=0 \mid X \sim L] \ge 1-\epsilon$。
完全性: $\Pr[f(X)=1 \mid X \sim A] \ge 1-\delta$。
- 提案手法
4.1 確率モデリング
$L$ を次数 $k$ のマルコフ連鎖としてモデル化する。
$$ P(x_i \mid x_{i-1}, \dots, x_{i-k}) = \theta_{c,a}. $$
我々は次を推定する。
$$ \hat{\theta}{c,a} = \frac{C(c,a)+\alpha}{\sum{a’} C(c,a’) + \alpha|\Sigma|}. $$
対数尤度は次のとおりである。
$$ \mathcal{L}(X) = - \sum_{i=k}^{n} \log P(x_i \mid x_{i-1},\dots,x_{i-k}). $$
$\mathcal{L}(X) > \tau$ のとき、攻撃と判定する。
4.2 ポリシー合成
次を定義する。
$$ \Sigma_L = { a \in \Sigma \mid \exists c : C(c,a) > 0 }. $$
攻撃面削減率は次式で与えられる。
$$ \rho = 1 - \frac{|\Sigma_L|}{|\Sigma|}. $$
生成された seccomp プロファイルの簡略例を以下に示す。
{
"defaultAction": "SCMP_ACT_ERRNO",
"syscalls": [
{ "names": ["read", "write", "exit", "futex"], "action": "SCMP_ACT_ALLOW" }
]
}
4.3 計算量
学習は $O(N)$、最悪空間計算量は $O(|\Sigma|^k)$、オンライン検知はイベント当たり $O(1)$ である。
- 実装
Linux 6.6 カーネル上の tracepoint sys_enter に結合した eBPF モニタを実装した(LINUX FOUNDATION, 2024)。Kubernetes 1.28 と containerd 1.7 を統合した。次数 $k=3$ は層化交差検証によって選択された。
試験により、ノード当たり 10,000 イベント/秒の処理が確認され、CPU の平均追加オーバーヘッドは 3.7% であった。
- 実験評価
環境: 120 ノード(Intel Xeon Gold 6230, 128 GB RAM)、1,800 コンテナ。
| 指標 | 提案手法 | Falco |
|---|---|---|
| TPR | 96,1% | 88,4% |
| FPR | 2,8% | 6,7% |
| syscalls 削減 | 72,4% | N/A |
| CPU オーバーヘッド | 3,7% | 4,9% |
p95 レイテンシは 4.3 ms 増加した。結果は、ベースラインと比較して統計的に有意な優位性($p < 0,01$)を示している。
- 議論
確率モデリングは syscalls 間の文脈依存関係を捉え、静的ポリシーに典型的な過度の許容性を低減する。我々は行動模倣による回避を考慮し、Kullback-Leibler ダイバージェンスを用いてモデル化する。
$$ D_{KL}(P_L | P_A). $$
有効な攻撃は $D_{KL}$ を最小化するため、階層モデルへの将来的拡張と、追加の eBPF シグナル(ネットワーク、DNS、capabilities)との統合が必要となる。
- 結論および今後の課題
我々は、確率モデリングとカーネル内検証に基づくコンテナ脱出の検知・緩和のための形式的アーキテクチャを提案した。これにより、適度なオーバーヘッドで攻撃面の大幅な削減と高い検知率を実証した。
今後の課題としては、クラスタ間でのフェデレーテッド学習、CNAPP プラットフォームとの統合、ならびに敵対的頑健性の形式的解析が挙げられる。
References
(Apresentadas conforme ABNT, com URLs e acesso em 13 abr. 2025.)
AQUA SECURITY. Container Security Report 2023. 2023. Available at: https://www.aquasec.com/resources/container-security-report/. Accessed on: 13 abr. 2025.
BARHAM, P. et al. Xen and the art of virtualization. In: ACM Symposium on Operating Systems Principles (SOSP). 2003. Available at: https://dl.acm.org/doi/10.1145/945445.945462. Accessed on: 13 abr. 2025.
BURNS, B.; BEDA, J.; HIGHTOWER, K. Kubernetes: Up and Running. 3. ed. Sebastopol: O’Reilly, 2022.
CHEN, L. et al. Automated policy generation for container security. In: ACM CCS. 2021. Available at: https://dl.acm.org/doi/10.1145/3460120.3484589. Accessed on: 13 abr. 2025.
CIS. CIS Kubernetes Benchmark v1.27. 2023. Available at: https://www.cisecurity.org/benchmark/kubernetes. Accessed on: 13 abr. 2025.
DOCKER. Docker Engine Security. 2024. Available at: https://docs.docker.com/engine/security/. Accessed on: 13 abr. 2025.
FALCO. Falco Documentation. 2024. Available at: https://falco.org/docs/. Accessed on: 13 abr. 2025.
FORREST, S. et al. A sense of self for Unix processes. In: IEEE Symposium on Security and Privacy. 1996. Available at: https://ieeexplore.ieee.org/document/502675. Accessed on: 13 abr. 2025.
KUBERNETES. Pod Security Standards. 2024. Available at: https://kubernetes.io/docs/concepts/security/pod-security-standards/. Accessed on: 13 abr. 2025.
LINUX FOUNDATION. eBPF Documentation. 2024. Available at: https://ebpf.io/. Accessed on: 13 abr. 2025.
MITRE. ATT&CK for Containers. 2023. Available at: https://attack.mitre.org/matrices/enterprise/containers/. Accessed on: 13 abr. 2025.
NIST. SP 800-190: Application Container Security Guide. 2017. Available at: https://csrc.nist.gov/publications/detail/sp/800-190/final. Accessed on: 13 abr. 2025.
NVD. CVE-2019-5736. 2019. Available at: https://nvd.nist.gov/vuln/detail/CVE-2019-5736. Accessed on: 13 abr. 2025.
NVD. CVE-2022-0492. 2022a. Available at: https://nvd.nist.gov/vuln/detail/CVE-2022-0492. Accessed on: 13 abr. 2025.
NVD. CVE-2022-0185. 2022b. Available at: https://nvd.nist.gov/vuln/detail/CVE-2022-0185. Accessed on: 13 abr. 2025.
OWASP. Docker Security Cheat Sheet. 2023. Available at: https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html. Accessed on: 13 abr. 2025.
PALO ALTO NETWORKS. State of Cloud-Native Security Report. 2024. Available at: https://www.paloaltonetworks.com/prisma/cloud/state-of-cloud-native-security-report. Accessed on: 13 abr. 2025.
GARFINKEL, T. Traps and pitfalls: Practical problems in system call interposition. In: USENIX Security Symposium. 2003. Available at: https://www.usenix.org/conference/12th-usenix-security-symposium/traps-and-pitfalls-practical-problems-system-call. Accessed on: 13 abr. 2025.
HOGLUND, G.; BUTLER, J. Rootkits: Subverting the Windows Kernel. Boston: Addison-Wesley, 2005.