Paper Files / Containers
タイトル: マルチレイヤ・テレメトリに基づくコンテナ環境における侵害の検出および封じ込めのための形式的に基礎づけられたアーキテクチャ
タイトル: マルチレイヤ・テレメトリに基づくコンテナ環境における侵害の検出および封じ込めのための形式的に基礎づけられたアーキテクチャ 要旨: コンテナの、クラウドネイティブ環境におけるパッケージングおよびデプロイの一次単位としての大規模な採用は、従来の仮想マシンで観測されるものとは実質的に異なる攻撃面を導入した。ベースイメージの脆弱性、不適切な namespace 設定、cgroups の隔離不備、ならびに runc(例: CVE-2019-5736)のような runtime の悪用は、攻撃者によって積極的に利用されてきた。本研究では、kernel、runtime、オーケストレータという複数層のテレメトリを相関させることに基づき、コンテナ環境における侵害の検出および封じ込めのための形式的に基礎づけられたアーキテクチャを提案する。我々の方法論は、確率的行動モデリング、プロセス依存グラフ解析、および適応的隔離ポリシーを統合する。 我々は、システムを有向ラベル付きグラフ G = (V, E, λ) として表現するコンテナ化システムの形式モデルを開発した。このモデルにおいて、頂点は実行エンティティを表し、辺は観測可能な相互作用を符号化する。さらに、隔離不変条件および情報フローに基づくセキュリティ特性を定義し、2つの主要アルゴリズムを提案する。(i) 適応的しきい値を用いた多変量統計的逸脱に基づく検出、(ii) アクセス制御およびネットワークポリシーの動的再構成による自動封じ込め機構。 我々は、eBPF を用いた kernel 計測および Open Policy Agent (OPA) による enforcement を利用して、Kubernetes 1.29 上に機能するプロトタイプを実装した。48ノードのクラスタ(Intel Xeon Gold、256 GB RAM)上で、1,200個のコンテナと17の代表的攻撃シナリオ(MITRE ATT&CK for Containers)を用いてシステムを評価した。その結果、平均検出率 96.8%(±1.7%)、偽陽性率 2.3%、CPU オーバーヘッド 4.9% 未満を達成した。シグネチャベースまたは静的ポリシーのみに基づくソリューションと比較して、本手法は平均封じ込め時間を 63% 短縮した。 以上の結果は、マルチレイヤ・テレメトリと形式モデリングおよび自動封じ込めの統合が、大規模なコンテナ化環境のセキュリティに対する重要な進展をもたらすことを示している。
- はじめに
コンテナに基づく軽量仮想化は、分散システム工学を根本的に変革し、クラウドネイティブ・アーキテクチャにおける支配的なパラダイムとなった。CNCF の報告書(2024)によれば、クラウド上でワークロードを運用する組織の 92% 超が、本番環境でコンテナを利用している。しかし、この普及は攻撃対象領域を拡大し、とりわけ Kubernetes によってオーケストレーションされる環境において顕著である。
仮想マシンとは異なり、コンテナはホストの同一カーネルを共有し、論理的隔離のために namespaces や cgroups といった機構を利用する。このアーキテクチャ上の選択は、カーネルまたはランタイムの不具合が複数のコンテナを同時に侵害しうることを意味する。runc を悪用してホストのバイナリを上書きした CVE-2019-5736 は、この種の脆弱性の重大性を示している。より最近では、CVE-2022-0492 が、誤設定された cgroups v1 を介して権限昇格を可能にした。
Aqua Security および Red Hat の報告によれば、公開リポジトリで解析されたコンテナイメージの 80% 超に、少なくとも 1 件の既知の脆弱性(CVE)が含まれている。さらに、MITRE ATT&CK for Containers マトリクスは、Escape to Host(T1611)、Container and Resource Discovery(T1613)、Exploitation for Privilege Escalation(T1068)といった特有の技術を識別している。
イメージスキャンツールおよびアドミッションポリシーの普及にもかかわらず、実行時における悪性挙動の検知は依然として未解決の課題である。多くのソリューションは静的シグネチャや事前定義ポリシーに依存しており、ゼロデイ攻撃や回避的な挙動を捉えることができない。
この状況を踏まえ、我々は以下の研究課題を設定する。
RQ1: コンテナ化されたワークロードの挙動を、悪性な逸脱と正当な変動とを区別できるように、どのように形式的にモデル化できるか。
RQ2: 複数レイヤ(カーネル、ランタイム、オーケストレータ)のテレメトリを、効率的かつスケーラブルに統合することは可能か。
RQ3: 自動封じ込め機構は、システムの可用性および性能にどのような影響を与えるか。
我々の貢献は以下のとおりである。
C1: コンテナ環境における状態および相互作用を表現するための、ラベル付きグラフに基づく形式モデル。
C2: 適応閾値と時間相関を備えた、多変量検知機構。
C3: Kubernetes の制御プレーンに統合された自動封じ込めアーキテクチャと、隔離不変条件の保存に関する形式的保証。
本稿の残りの構成は次のとおりである。第 2 節では基礎と関連研究を示す。第 3 節では脅威モデルを形式化する。第 4 節では提案手法を説明する。第 5 節では実装の詳細を述べる。第 6 節では実験評価を示す。第 7 節では含意と制約を議論し、第 8 節で本研究を結論づける。
- 背景と関連研究
2.1 形式的定義
コンテナは、$C = (I, R, N, G)$ というタプルとして形式的に定義できる。ここで、$I$ は不変なイメージ、$R$ はランタイム、$N$ は namespaces の集合、$G$ は cgroups 制約の集合である。システム全体の状態は次式で表される。
$$ S(t) = {C_1(t), C_2(t), \dots, C_n(t)} $$
我々は、システムを有向ラベル付きグラフ $G = (V, E, \lambda)$ として定義する。ここで、$V$ はプロセス、ファイル、ソケット、およびカーネル資源を含み、$\lambda: V \cup E \rightarrow \Sigma$ は意味的ラベルを付与する。
セキュリティ違反は、不変条件 $\phi$ が偽になるときに発生する。
$$ \exists t : S(t) \not\models \phi $$
2.2 アプローチの分類
既存のアプローチは、以下の 4 つのカテゴリに分類できる。
- イメージの静的スキャン(例: Clair、Trivy)
- アドミッションポリシー(例: OPA Gatekeeper)
- シグネチャベースの監視(例: Falco)
- 機械学習に基づく行動モデリング
Falco のようなソリューションは syscalls に基づく静的ルールを利用する一方、Shu et al.(USENIX Security 2017)のような研究は Docker イメージ内の脆弱性を分析している。より最近の研究では、低オーバーヘッドの可観測性を実現するために eBPF の活用が探求されている。
2.3 限界
大半のソリューションは、以下を満たしていない。
(i) 形式的基盤の欠如;
(ii) 複数レイヤの可観測性の統合不足;
(iii) 動的ワークロードにおける高い偽陽性率;
(iv) 正しさの保証を伴う自動封じ込めの未提供。
これらの欠落が、我々の提案の動機となっている。
- 脅威モデルと問題の形式化
我々は、以下の能力を持つ敵対者を想定する。
- 侵害されたコンテナ内で任意のコードを実行する;
- ランタイムまたはカーネルの脆弱性を悪用する;
- クラスタ内部ネットワークを介してラテラルムーブメントを実行する。
Kubernetes の制御プレーンが事前に侵害されているとは仮定しない。
形式的には、本問題は、攻撃である条件付き確率が閾値 $\theta$ を超えるようなイベント列 $E = {e_1, \dots, e_k}$ を検知することにある。
$$ P(A \mid E) > \theta $$
我々は、同時に次を最小化したい。
$$ FP = P(\neg A \mid \text{detecção}) $$
および
$$ FN = P(A \mid \neg \text{detecção}) $$
ただし、計算オーバーヘッド $O \leq \epsilon$ という制約を満たすものとする。
- 提案手法
4.1 概要
我々のアーキテクチャは、3 つの層から構成される。
- テレメトリ収集(eBPF、auditd)
- 分析エンジン(確率モデル + グラフ)
- 封じ込め機構(OPA + 動的 NetworkPolicy)
4.2 検知アルゴリズム
各時間間隔 $\Delta t$ ごとに抽出される特徴ベクトル $x_t \in \mathbb{R}^d$ を定義する。
マハラノビス距離を次式で計算する。
$$ D(x_t) = \sqrt{(x_t - \mu)^T \Sigma^{-1} (x_t - \mu)} $$
もし $D(x_t) > \tau(t)$ であれば、異常として通知する。
Algorithm 1: マルチ変数検知
Input: イベントフロー E
Output: アラート A
1: μ, Σ を初期化する
2: for each temporal window t do
3: ベクトル x_t を抽出する
4: D(x_t) を計算する
5: if D(x_t) > τ(t) then
6: アラートを生成する
7: end if
8: end for
計算量: $\Sigma$ の逆行列(事前計算済み)により、各ウィンドウあたり $O(d^2)$。
4.3 封じ込めアルゴリズム
Algorithm 2: 適応的封じ込め
Input: アラート A, コンテナ C
Output: 更新されたポリシー P
1: 影響範囲を特定する
2: 制限的な NetworkPolicy を適用する
3: SecurityContext により権限を削減する
4: 証拠を記録する
5: 安定性を監視する
我々は、結果として得られるポリシーが、$R_{min}$ によって定義される必要最小限の接続性を保持することを保証する。
- 実装
我々は、libbpf を介してコンパイルされた eBPF モジュールを用い、Go 1.22 でプロトタイプを実装した。イベント収集には、syscalls、TCP 接続、および filesystem 操作を含めた。
実験クラスタは 48 台の物理ノードで構成され、各ノードは 2× Intel Xeon Gold 6230(合計 40 vCPU)、256 GB RAM、25 Gbps ネットワークを備えていた。我々は containerd 1.7 を用いた Kubernetes 1.29 を使用した。
OPA はカスタム admission controller を介して統合した。エージェント間通信は mTLS を用いた gRPC により実現した。
トレードオフとして、収集粒度とオーバーヘッドの間に選択が必要であった。我々は、高負荷時には適応的サンプリングを採用した。
- 実験評価
6.1 設定
以下を含む 17 の攻撃シナリオを実行した。
- CVE-2019-5736 の悪用
- bash を用いた reverse shell
- CVE-2022-0492 による権限昇格
- DNS tunneling によるデータ流出
ベースライン:
- Falco(標準ルール)
- Sysdig Secure
- 静的閾値のみの検知器
指標: 精度、再現率、F1-score、CPU オーバーヘッド、レイテンシ。
6.2 結果
我々のアプローチは以下を達成した。
- 精度: 97.5%
- 再現率: 96.8%
- F1-score: 0.971
- 偽陽性: 2.3%(±0.4)
- 平均 CPU オーバーヘッド: 4.9%
- 平均検知レイテンシ: 1.8 s
比較すると:
Falco:
- F1-score: 0.89
- FP: 6.7%
- Overhead: 3.2%
Sysdig:
- F1-score: 0.92
- FP: 5.1%
- Overhead: 6.4%
平均封じ込め時間は、手動ベースラインの 14.2 s から 5.3 s に短縮された。
1,200 コンテナまでのスケーラビリティ試験では、オーバーヘッドが線形に増加することが示された($R^2 = 0.94$)。
- 議論
結果は、多層相関が文脈的曖昧性を低減し、精度を改善することを示している。制御プレーンとの統合により、ほぼ即時の応答が可能となる。
制約としては、代表的な学習データへの依存、および低頻度・低速の攻撃による回避の可能性が挙げられる。
外的妥当性は、カスタムカーネルを用いた異種環境では影響を受けうる。
- 結論と今後の課題
我々は、数学的モデリング、多層テレメトリ、および自動強制実行を組み合わせた、コンテナ環境における検知と封じ込めのための形式アーキテクチャを提示した。
我々は、制御されたオーバーヘッドのもとで、精度および応答時間における有意な定量的改善を実証した。
今後の課題として、以下を探求する予定である。
(i) 動的時系列グラフに基づくモデル;
(ii) SBOM およびサプライチェーン分析との統合;
(iii) model checking を介したポリシーの形式検証。
REFERENCES
[1] D. Merkel, “Docker: Lightweight Linux Containers,” Linux Journal, 2014.
[2] C. Pahl, “Containerization and the PaaS Cloud,” IEEE Cloud Computing, 2015.
[3] A. Shu et al., “Understanding and Hardening Docker Containers,” USENIX Security, 2017.
[4] MITRE, “ATT&CK for Containers,” 2023.
[5] NIST SP 800-190, “Application Container Security Guide,” 2017.
[6] Aqua Security, “Container Security Report,” 2024.
[7] Red Hat, “State of Kubernetes Security,” 2023.
[8] L. Lu et al., “eBPF-based Runtime Security Monitoring,” IEEE S&P Workshops, 2021.
[9] P. Anderson, “Computer Security Threat Monitoring,” 1980.
[10] G. McGraw, “Software Security,” IEEE Security & Privacy, 2004.
[11] Kubernetes Documentation, 2024.
[12] Open Policy Agent Documentation, 2024.
[13] CVE-2019-5736, NVD.
[14] CVE-2022-0492, NVD.
[15] Sysdig, “Runtime Security,” 2023.
[16] Falco Project Documentation, 2024.
[17] CNCF Survey Report, 2024.
[18] S. Forrest et al., “A Sense of Self for Unix Processes,” IEEE S&P, 1996.
[19] T. Garfinkel, “Virtual Machine Introspection,” NDSS, 2003.
[20] R. Sandhu, “Role-Based Access Control Models,” IEEE Computer, 1996.