2025-11-20T01:55:14.885016

Analysis of Security in OS-Level Virtualization

Ketha, Song, Zhu
Virtualization is a technique that allows multiple instances typically running different guest operating systems on top of single physical hardware. A hypervisor, a layer of software running on top of the host operating system, typically runs and manages these different guest operating systems. Rather than to run different services on different servers for reliability and security reasons, companies started to employ virtualization over their servers to run these services within a single server. This approach proves beneficial to the companies as it provides much better reliability, stronger isolation, improved security and resource utilization compared to running services on multiple servers. Although hypervisor based virtualization offers better resource utilization and stronger isolation, it also suffers from high overhead as the host operating system has to maintain different guest operating systems. To tackle this issue, another form of virtualization known as Operating System-level virtualization has emerged. This virtualization provides light-weight, minimal and efficient virtualization, as the different instances are run on top of the same host operating system, sharing the resources of the host operating system. But due to instances sharing the same host operating system affects the isolation of the instances. In this paper, we will first establish the basic concepts of virtualization and point out the differences between the hyper-visor based virtualization and operating system-level virtualization. Next, we will discuss the container creation life-cycle which helps in forming a container threat model for the container systems, which allows to map different potential attack vectors within these systems. Finally, we will discuss a case study, which further looks at isolation provided by the containers.
academic

OS レベル仮想化におけるセキュリティ分析

基本情報

  • 論文ID: 2501.01334
  • タイトル: Analysis of Security in OS-Level Virtualization
  • 著者: Krishna Sai Ketha, Guanqun Song, Ting Zhu (オハイオ州立大学)
  • 分類: cs.CR (暗号化とセキュリティ)、cs.OS (オペレーティングシステム)
  • 発表日: 2025年1月2日 (arXiv プレプリント)
  • 論文リンク: https://arxiv.org/abs/2501.01334

要約

仮想化技術により、単一の物理ハードウェア上で、通常は異なるゲストオペレーティングシステムを持つ複数のインスタンスを実行することが可能になります。ハイパーバイザーベースの仮想化はより優れたリソース利用率とより強い分離性を提供しますが、ホストオペレーティングシステムが異なるゲストオペレーティングシステムを維持する必要があるため、高いオーバーヘッドが存在します。この問題を解決するため、OS レベル仮想化が登場し、軽量で最小限、効率的な仮想化を提供しますが、インスタンスが同一のホストオペレーティングシステムを共有するため、インスタンス間の分離性に影響を与えます。本論文は仮想化の基本概念を確立し、ハイパーバイザー仮想化と OS レベル仮想化の違いを分析し、コンテナ作成ライフサイクルについて議論し、コンテナ脅威モデルを構築し、ケーススタディを通じてコンテナが提供する分離性を分析しています。

研究背景と動機

問題定義

  1. リソース利用効率の問題:異なるサービスを異なるサーバーに展開する従来の方法は信頼性とセキュリティを向上させますが、コストが高く、リソース利用率が低い
  2. 仮想化オーバーヘッドの問題:ハイパーバイザーベースの仮想化はリソース利用率を改善しますが、複数のゲストオペレーティングシステムの維持により高いオーバーヘッドが発生します
  3. コンテナセキュリティ分離の問題:OS レベル仮想化はオーバーヘッド問題を解決しますが、オペレーティングシステムカーネルの共有がセキュリティ分離に影響を与える可能性があります

研究の重要性

  • ビジネス需要:企業は単一のサーバー上で複数のサービスを安全かつ効率的に実行する必要があります
  • クラウドコンピューティングの傾向:1990年代以来、仮想化技術はクラウド環境で広く採用されています
  • セキュリティ脅威:コンテナ技術の広範な採用は新しいセキュリティ課題と攻撃ベクトルをもたらします

既存方法の限界

  • 従来の仮想化:ハイパーバイザー仮想化はオーバーヘッドが大きく、各仮想マシンは完全なゲストオペレーティングシステムが必要です
  • セキュリティ分析の不足:OS レベル仮想化のセキュリティと分離性の分析が十分ではありません
  • 脅威モデルの欠落:潜在的な攻撃ベクトルを識別するための体系的なコンテナ脅威モデルが不足しています

核心的貢献

  1. 仮想化技術比較フレームワークの確立:ハイパーバイザー仮想化と OS レベル仮想化の長所と短所を体系的に比較しました
  2. 詳細なコンテナ作成ライフサイクルモデルの構築:Docker コンテナの構築から実行までの完全なプロセスを分析しました
  3. 包括的なコンテナ脅威モデルの提案:コンテナシステムにおける 9 つの主要な攻撃ベクトルを識別および分類しました
  4. 実際の脆弱性ケース分析の提供:CVE-2024-21626 と CVE-2022-0847 の 2 つの実際の脆弱性を通じてセキュリティ問題を深く分析しました
  5. コンテナセキュリティ強化提案の提示:分析結果に基づいて実用的なセキュリティベストプラクティスを提案しました

方法の詳細説明

タスク定義

本研究は、OS レベル仮想化(特に Docker コンテナ)のセキュリティと分離性を体系的に分析し、脅威モデルを構築して潜在的な攻撃ベクトルを識別し、セキュリティ強化提案を提供することを目的としています。

研究アーキテクチャ

1. コンテナ作成ライフサイクル分析

研究は Docker コンテナシステムの 4 つのコアコンポーネントに焦点を当てています:

  • Docker Engine:オープンソースのコンテナ化技術で、アプリケーションの構築とコンテナ化の能力を提供します
  • Docker Daemon (dockerd):バックグラウンドで実行されるプロセスで、Docker コマンドをリッスンし、CLI とコンテナランタイムのインターフェースとして機能します
  • Containerd:高度なコンテナランタイムシステムで、イメージ転送管理、コンテナライフサイクル管理、ストレージおよびネットワーク機能を提供します
  • Runc:軽量でセキュアな低レベルコンテナランタイムで、基盤となるオペレーティングシステムと直接対話します

2. コンテナ作成フロー

Dockerfile → Docker Build → Docker Daemon → Containerd → Runc → Container
  1. システム管理者が Docker CLI を通じて「docker build」コマンドを実行します
  2. Docker CLI が Docker Daemon を呼び出してリクエストを処理します
  3. Docker Daemon がリクエストを Containerd に転送してコンテナを作成します
  4. Containerd がイメージをプルして Runc に渡します
  5. Runc が基盤となるオペレーティングシステムと対話し、イメージ設定に基づいてコンテナを作成および管理します

脅威モデルの構築

攻撃分類

外部攻撃:ネットワークを通じてコンテナシステムにリモートアクセスします 内部攻撃:攻撃者がコンテナ内のユーザーとして既に存在し、攻撃を開始します

9 つの主要な攻撃ベクトル

  1. リポジトリイメージ操作:攻撃者がリポジトリ内のコンテナイメージを改ざんします
  2. アプリケーションコード脆弱性:アプリケーションコードおよびサードパーティ依存関係の脆弱性を利用します
  3. コンテナイメージ設定の不備:イメージ設定時に不要な過剰な権限を付与します
  4. コンテナ設定の不備:公開ディレクトリから悪意のあるコードを含むイメージをプルします
  5. ホスト脆弱性:コンテナを実行するホストオペレーティングシステムの脆弱性を利用します
  6. システム内情報伝達:攻撃者がコンテナ間の情報共有を監視します
  7. コンテナエスケープ脆弱性:containerd または runc などのランタイムシステムの脆弱性を利用してホストにエスケープします
  8. 安全でないネットワーク通信:攻撃者がコンテナ間通信を監視して情報を取得します
  9. 制御されないリソース消費:悪意のあるスクリプトが過度のリソースを消費し、他のコンテナがリソース不足になります

実験設定

ケーススタディ方法

本研究は実際の脆弱性ケース分析方法を採用し、代表的なセキュリティ脆弱性 2 つを選択して深く分析しました:

  1. Runc コンテナブレークアウト (CVE-2024-21626)
  2. Dirty Pipe 脆弱性 (CVE-2022-0847)

分析フレームワーク

  • 脆弱性メカニズム分析:脆弱性の技術原理を詳細に解析します
  • 影響範囲評価:影響を受けるソフトウェアバージョン範囲を確定します
  • 攻撃シナリオ再現:実際のコマンドを通じて攻撃プロセスを実演します
  • 重大度評価:脆弱性のセキュリティ影響程度を評価します

実験結果

ケース 1:Runc コンテナブレークアウト (CVE-2024-21626)

脆弱性の詳細

  • 発見日:2024 年 1 月 31 日
  • 影響を受けるバージョン
    • runc: v1.0.0-rc93 から v1.1.11
    • containerd: v1.4.7 から v1.6.27 および v1.7.0 から v1.7.12
    • docker: <v25.0.2
  • 重大度:高

攻撃メカニズム

  1. コンテナはホストオペレーティングシステムの観点ではプロセスであり、chroot を通じてマウントされた独立したファイルシステムをルートファイルシステムとして使用します
  2. 攻撃者がファイルディスクリプタ 7 と 8 を指すシンボリックリンクを作成します
  3. sudo docker exec -it -w /foo <container-name> sleep 500 コマンドを実行します
  4. runc がホストファイルシステムをコンテナにマウントし、攻撃者がホストファイルシステムにアクセスできるようにします

攻撃の特徴

  • 低い権限要件:攻撃者は悪意のあるコードを実行したり、高い権限を必要としたりすることなく、攻撃に成功できます
  • 直接ファイルシステムアクセス:ホストオペレーティングシステム内のファイルに直接アクセスできます

ケース 2:Dirty Pipe 脆弱性 (CVE-2022-0847)

脆弱性の詳細

  • 発見日:2022 年 3 月 7 日
  • 影響を受けるバージョン:Linux カーネル >v5.8.0
  • 重大度:高

攻撃メカニズム

  1. Linux カーネルの新しいパイプバッファ構造の「flags」メンバーが不適切に初期化されています
  2. 「copy-page-to-iter-pipe」および「push-pipe」関数の欠陥により、古い値が含まれる可能性があります
  3. 権限のないローカルユーザーが読み取り専用ファイルに関連付けられたページキャッシュ内のページを変更できます
  4. 攻撃者は /etc/passwd などの読み取り専用ファイルを変更して、権限昇格を実現できます

実験の発見

セキュリティ脅威の特徴

  1. 継続的な脅威:CVE-2024-21626 は初めてではなく、以前の CVE-2019-5736 も同様の runc エスケープ脆弱性です
  2. システムレベルの影響:両方の脆弱性により、攻撃者がホストオペレーティングシステムの権限を取得する可能性があります
  3. 広範な影響:脆弱性は本番環境で使用されている大量のコンテナシステムに影響を与えます

分離性分析

コンテナのセキュリティ分離には以下の問題があります:

  • 共有カーネルのリスク:すべてのコンテナが同一のオペレーティングシステムカーネルを共有し、カーネル脆弱性がすべてのコンテナに影響を与えます
  • ランタイム脆弱性:コンテナランタイムシステム (runc など) の脆弱性がコンテナエスケープを引き起こす可能性があります
  • 設定エラーのリスク:不適切な権限設定がセキュリティリスクを増加させます

関連研究

仮想化セキュリティ研究

本論文は仮想化技術の発展に基づいており、仮想化の概念は 1960 年代から存在していますが、1990 年代まで主流技術にはなりませんでした。

コンテナセキュリティ脅威分析

関連研究は主に以下に集中しています:

  1. コンテナ分離メカニズム:コンテナと従来の仮想化の分離の違いを分析します
  2. 攻撃ベクトル識別:コンテナ環境における特有の攻撃方法を識別します
  3. セキュリティ強化方法:コンテナセキュリティベストプラクティスを提案します

本論文の貢献との比較

  • 体系的な脅威モデル:既存の研究と比較して、本論文はより包括的なコンテナ脅威分類を提供しています
  • 実際のケース分析:実際の CVE 脆弱性分析を通じて具体的なセキュリティ脅威の証拠を提供しています
  • ライフサイクルの視点:コンテナ作成ライフサイクルの観点からセキュリティ問題を分析しています

結論と議論

主要な結論

  1. OS レベル仮想化の両刃の剣の特性:軽量で効率的な仮想化ソリューションを提供しますが、オペレーティングシステムカーネルの共有はセキュリティ分離の課題をもたらします
  2. 脅威ベクトルの多様性:コンテナシステムはイメージリポジトリからランタイム環境までの全ライフサイクルセキュリティ脅威に直面しています
  3. 実際のセキュリティリスク:CVE ケース分析を通じて、コンテナエスケープと権限昇格などの深刻なセキュリティ脅威の現実的な存在を確認しました
  4. 継続的なセキュリティ課題:コンテナセキュリティは継続的に進化する問題であり、防護措置を継続的に更新する必要があります

セキュリティベストプラクティスの推奨

  1. イメージセキュリティ:公開リポジトリからプルされたコンテナイメージを確認し、潜在的な脆弱性をスキャンします
  2. 権限の最小化:コンテナに不要な権限を付与しないようにします
  3. 定期的な更新:コンテナエンジン、ランタイム、ツール、およびサードパーティコンポーネントを最新バージョンに保ちます
  4. 依存関係管理:依存関係に既知の脆弱性が含まれていないことを確認します
  5. 安全な通信:セキュアな接続を通じてコンテナ間の情報を伝達します
  6. セキュリティスキャン:セキュリティスクリプトを使用してコンテナ脆弱性を定期的にスキャンします

限界

  1. 研究範囲の制限:主に Docker コンテナに焦点を当てており、他のコンテナ技術 (FreeBSD Jails、Solaris Zones など) は含まれていません
  2. 脅威モデルの深さ:主要な攻撃ベクトルを識別していますが、各攻撃の具体的な防護措置の議論が十分ではありません
  3. 実験ケース数の不足:2 つの CVE ケースのみを分析しており、コンテナセキュリティ脅威の複雑性を完全に反映するには不十分な可能性があります
  4. 定量分析の不足:異なる攻撃ベクトルのリスクレベルの定量的評価が不足しています

今後の方向

論文は以下の研究方向を提案しています:

  1. AI 駆動の脅威検出:人工知能技術を統合して、コンテナ化システムの新興脆弱性に対する耐性を強化します
  2. 安全な通信プロトコル:より安全なコンテナ間通信プロトコルを開発します
  3. ワイヤレス環境の最適化:ワイヤレス環境向けにコンテナネットワークを最適化します
  4. システムレベルのイノベーション:システムレベルのイノベーションを通じてリソース割り当てを改善し、動的分散インフラストラクチャにおけるパフォーマンスとセキュリティを確保します

深度評価

利点

  1. 体系的な分析:基本概念から実際の脅威までの完全な分析フレームワークを提供しています
  2. 実用的価値が高い:脅威モデルとセキュリティ提案は実際の展開に指導的価値があります
  3. ケース分析が深い:実際の CVE 脆弱性を通じて具体的な技術詳細を提供しています
  4. 構造が明確:論文の組織構造が合理的で、理論から実践へと段階的に進みます
  5. 時間的適切性が強い:最新のセキュリティ脆弱性 (CVE-2024-21626) を分析しています

不足

  1. 理論的貢献が限定的:主に既存知識の整理と分析であり、独創的な理論的貢献が不足しています
  2. 実験検証が不足:脅威モデルの有効性を検証する大規模実験が不足しています
  3. 定量分析が欠落:異なる攻撃ベクトルのリスク定量化評価が提供されていません
  4. ソリューションの深さが不十分:セキュリティ提案が提示されていますが、具体的な技術ソリューションが不足しています
  5. 比較分析が不足:他のコンテナセキュリティ研究との比較分析が弱いです

影響力

  1. 学術的貢献:コンテナセキュリティ研究に体系的な脅威分析フレームワークを提供しています
  2. 実用的価値:企業と開発者のコンテナセキュリティ実践に指導的価値があります
  3. 教育的価値:コンテナセキュリティ教育の参考資料として適しています
  4. 研究基盤:その後の深いコンテナセキュリティ研究の基盤を提供しています

適用シナリオ

  1. 企業のコンテナ化展開:企業がコンテナセキュリティ戦略を策定する際の参考を提供します
  2. セキュリティ監査:コンテナシステムセキュリティ評価のチェックリストとして機能します
  3. 教育トレーニング:コンテナセキュリティ意識トレーニングと技術教育に使用されます
  4. 研究の出発点:深いコンテナセキュリティ技術研究の基本フレームワークを提供します

参考文献

論文は 38 篇の関連文献を引用しており、主に以下を含みます:

  • 古典的なオペレーティングシステム教科書 (Tanenbaum & Bos, Modern Operating Systems)
  • コンテナセキュリティ専門書 (Rice, Container Security)
  • 重要なセキュリティ脆弱性レポート (CVE-2024-21626, CVE-2022-0847)
  • 著者チームのセキュリティ、AI、IoT 分野における関連研究

総合評価:本論文は OS レベル仮想化セキュリティの比較的包括的な分析フレームワークを提供しており、理論的イノベーションは限定的ですが、実用性と体系性の面で高い価値があり、コンテナセキュリティ分野の入門および参考資料として適しています。