第6回 TDEポリシーとアプリケーションのサンドボックス化
面 和毅サイオステクノロジー株式会社
インフラストラクチャービジネスユニット
Linuxテクノロジー部
OSSテクノロジーグループ
シニアマネージャ
2006/5/9
アプリケーションのサンドボックス化
TDEのもう1つの主機能である「アプリケーションのサンドボックス化」について見てみましょう。
LIDS TDEにおけるサンドボックス化とは、アプリケーションを特定の区間内に隔離して動作させ、外部へアクセスさせない仕組みです。例えるならアプリケーションを小部屋の中に隔離して、部屋の中にあるリソースの使用は許可しても、部屋から出ることは禁じるイメージです。
サンドボックス化によって、アプリケーションが突然異常な振る舞いをしても、その影響は隔離された小部屋の中のリソースだけに限定されます。この結果、システムのそのほかの小部屋や重要なリソースに影響を与えないような環境が構築できます。
図2 サンドボックス化 |
この技術は「コンパートメント化」とも呼ばれ、さまざまなアプローチがあります。通常のLinux上でもchrootを用いてコンパートメント化を行えますが、LIDS TDEによるサンドボックス化の方が以下の点で優れています。
- 何らかの理由でroot権限を奪われた場合、chrootでは隔離環境から出られるが、LIDS TDEではroot権限でも隔離環境からの脱出ができない
- 隔離環境を作成する際に、chrootではファイルやライブラリなどをアプリケーションごとにコピーして構築する必要があるが、LIDS TDEでは不要
LIDSでのサンドボックス化のアプローチ
LIDSでアプリケーションをサンドボックス化して隔離する際には、「lidsconf」コマンドを用いて、
lidsconf -A -s "隔離するプログラム" -o LIDS_SANDBOX -j ENABLE |
と設定します。
LIDSでは、ACLを用いてファイルやディレクトリに対するアクセス権を与えていなければ、アプリケーションに明示的にアクセス権限が設定されていない限り、アクセスは「許可」となっています。例えば、/home以下にあらかじめ「DENY」や「READONLY」という権限を与えていなければ、ACLを明示的に記載していないすべてのプログラムは/home以下に書き込みができます。
この動作は、LIDSそのものの長所にも、短所にもつながっています。
●長所:LIDSを用いて、ある特定の行為「だけ」を制限できる
例えば、/etc/secretというディレクトリには、明示されていない「すべての」プログラムはアクセスできないというシステムを作った一方で、ほかのディレクトリやファイルに対してデフォルトで何らアクセス権を設定していなければ、すべてのプログラムは「LIDSが導入されていないときと同じように」動作できます。つまり、導入時にすべてのアクセス権を記載する必要がないので、導入が簡単になります。
●短所:明示的な設定がなければすべてのプログラムがアクセス可能(セキュリティの原則に従えば、すべての動作を「不許可」とした方が強度は上がる)
例えば、/や/etcなどに対して明示的にデフォルトのアクセス権を与え忘れた場合、そのディレクトリにはすべてのプログラムがアクセス可能となります。このような設定ミスにより、セキュリティ強度が下がります。
しかし、サンドボックス化により隔離されたプログラムは、このような動作が逆になります。上述のコマンドにより隔離されたプログラムは、明示的にファイルやディレクトリに対してのアクセス権が与えられていない限り、アクセスはすべて「不許可」となります。
プログラムを動作させるには、ACLでファイルやディレクトリに対するアクセス権を与える必要があります。このようなACLの設定が、実際には、プログラムが隔離された環境から外に出られないための障壁を構成することになります。
図3 ACLが障壁を構成する |
また、ファイルやディレクトリに対するACLと同じように、ケーパビリティに対してもこのルールは適用されます。ケーパビリティバウンディングセットでケーパビリティが有効になっていたとしても、サンドボックス化されたプログラムに対しては、プロセスに対して明示的にケーパビリティを与えない限り特権を得られません。
さらに、LIDS TDEでサンドボックス化されたプログラムに関しては、ネットワークアクセスに関係しているソケットやケーパビリティを明示的に指定しない限り、ポートにbindすることも、ポートに接続することも、UDPソケットを生成することもできません。サンドボックス化されたプロセスは、権限を与えられない限りはネットワークに接続することができないのです。
2/3
|
Index | |
TDEポリシーとアプリケーションのサンドボックス化 | |
Page1 Trusted Domain Enforcementとは何か すべてのプロセスに強制されるTDEポリシー TDEポリシーの例 |
|
Page2 アプリケーションのサンドボックス化 LIDSでのサンドボックス化のアプローチ |
|
Page3 サンドボックス化の例 |
Security&Trust記事一覧 |
- Windows起動前後にデバイスを守る工夫、ルートキットを防ぐ (2017/7/24)
Windows 10が備える多彩なセキュリティ対策機能を丸ごと理解するには、5つのスタックに分けて順に押さえていくことが早道だ。連載第1回は、Windows起動前の「デバイスの保護」とHyper-Vを用いたセキュリティ構成について紹介する。 - WannaCryがホンダやマクドにも。中学3年生が作ったランサムウェアの正体も話題に (2017/7/11)
2017年6月のセキュリティクラスタでは、「WannaCry」の残り火にやられたホンダや亜種に感染したマクドナルドに注目が集まった他、ランサムウェアを作成して配布した中学3年生、ランサムウェアに降伏してしまった韓国のホスティング企業など、5月に引き続きランサムウェアの話題が席巻していました。 - Recruit-CSIRTがマルウェアの「培養」用に内製した動的解析環境、その目的と工夫とは (2017/7/10)
代表的なマルウェア解析方法を紹介し、自社のみに影響があるマルウェアを「培養」するために構築した動的解析環境について解説する - 侵入されることを前提に考える――内部対策はログ管理から (2017/7/5)
人員リソースや予算の限られた中堅・中小企業にとって、大企業で導入されがちな、過剰に高機能で管理負荷の高いセキュリティ対策を施すのは現実的ではない。本連載では、中堅・中小企業が目指すべきセキュリティ対策の“現実解“を、特に標的型攻撃(APT:Advanced Persistent Threat)対策の観点から考える。
|
|