第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記事一覧


Security&Trust フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Security & Trust 記事ランキング

本日 月間