Skip to main content
QUICK REVIEW

[論文レビュー] Towards Least Privilege Containers with Cimplifier

Vaibhav Rastogi, Drew Davidson|arXiv (Cornell University)|Feb 26, 2016
Cloud Computing and Resource Management参考文献 4被引用数 4
ひとこと要約

Cimplifier は、システムコールログを分析して必要なリソースを特定し、自動的にモノリthicコンテナを最小限で権限が分離されたコンテナに分割するツールである。その後、リモートプロセス実行を用いて機能を保持する。コンテナイメージのサイズを 58–95% 減少させながら、30秒未塔の時間で大規模なコンテナを処理でき、ソースコードや特定のランタイムを必要とせずに最小権限を強制する。

ABSTRACT

Application containers, such as Docker containers, have recently gained popularity as a solution for agile and seamless deployment of applications. These light-weight virtualization environments run applications that are packed together with their resources and configuration information, and thus can be deployed across various software platforms. However, these software ecosystems are not conducive to the true and tried security principles of privilege separation (PS) and principle of least privilege (PLP). We propose algorithms and a tool Cimplifier, which address these concerns in the context of containers. Specifically, given a container our tool partitions them into simpler containers, which are only provided enough resources to perform their functionality. As part our solution, we develop techniques for analyzing resource usage, for performing partitioning, and gluing the containers together to preserve functionality. Our evaluation on real-world containers demonstrates that Cimplifier can preserve the original functionality, leads to reduction in image size of 58-95%, and processes even large containers in under thirty seconds.

研究の動機と目的

  • Docker のような現代のコンテナエコシステムにおいて、権限分離や最小権限の強制が不十分である問題に対処すること。
  • 不要なリソースを排除することでコンテナイメージの肥大化を軽減し、アプリケーションの機能を保持すること。
  • 単一のアプリケーション内でのコンponent間の細粒度な権限分離を実現するため、モノリthicコンテナをより小さな焦点をもったコンテナに分割すること。
  • ソースコードやランタイム固有の依存関係を必要としない、軽量で自動的かつポータブルなソリューションを提供すること。
  • 隔離を保ちつつ、コンテナ間で透過的な実行を可能にする、セキュリティ境界を維持するコンテナ間通信メカニズムの開発

提案手法

  • コンテナ内の個々の実行可能ファイルに関連付けるために、システムコールログの動的分析によりリソース使用パターンを特定する。
  • ユーザーが定義したポリシーに従って動作する分割アルゴリズムにより、実行可能ファイルとその必要なリソースを隔離されたコンテナにグループ化する。
  • リモートプロセス実行(RPE)は、隔離を破壊したり権限境界を緩和したりすることなく、1つのコンテナが別のコンテナ内のプログラムを呼び出せる軽量なメカニズムである。
  • 各分割コンテナに必要なファイル、ライブラリ、設定のみを含めるリソース最小化。
  • Linux の能力とコンテナレベルの隔離を活用して、コンponent間の権限分離を強制する。
  • コンテナ、システムコールトレース、ユーザーのポリシーを入力とし、最小限で安全かつ機能的に同等のコンテナの集合を出力するエンドツーエンドのプロトタイプ

実験結果

リサーチクエスチョン

  • RQ1システムコールの動的分析により、コンテナ内の各実行可能ファイルに必要な最小限のリソースを効果的に特定できるか?
  • RQ2機能的正しさを保持したまま、モノリthicコンテナを自動的により小さな権限分離コンテナに分割する方法は何か?
  • RQ3セキュリティ境界を維持しつつ、コンテナ間で透過的な実行を可能にする軽量なコンテナ間通信メカニズムは何か?
  • RQ4機能性を損なわず、顕著なパフォーマンスのオーバーヘッドを引き起こさずに、コンテナイメージサイズをどの程度まで縮小できるか?
  • RQ5Wiki やデータベース、ログ分析スタックのような実世界の複雑なアプリケーションにおいて、このアプローチはどの程度効果的か?

主な発見

  • Cimplifier は、実世界のコンテナを、元のアプリケーション機能を保持したまま、より小さな最小限のコンテナに成功して分割した。
  • Wikipedia やログ分析スタックを含む多様なワークロードにおいて、コンテナイメージサイズを 58% から 95% 減少させた。
  • 大規模で複雑なコンテナですら 30秒未塔で処理され、低いランタイムオーバーヘッドを示した。
  • リモートプロセス実行(RPE)により、カーネルサポートやステート移行を必要とせず、安全かつ透過的なコンテナ間通信が可能になった。
  • ソースコードや特別なプログラミング構文を必要とせず、異なる言語で書かれたアプリケーションや多様なランタイムスタックを含む幅広いアプリケーションで有効であった。
  • 不完全なテストカバレッジに対しても頑健であり、将来的にはユーザーのガイダンスやパターンベースのリソース拡張により向上が可能である

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。