第6回 TDEポリシーとアプリケーションのサンドボックス化
面 和毅サイオステクノロジー株式会社
インフラストラクチャービジネスユニット
Linuxテクノロジー部
OSSテクノロジーグループ
シニアマネージャ
2006/5/9
前回「『信頼されたPath』という考え方をLIDSで使う」では、LIDS-1系列で拡張されたTPE(Trusted Path Execution)について説明しました。今回は、TPEからさらに進んだ拡張であるTDE(Trusted Domain Enforcement)について説明します。
今回、TDEを説明するためのVMWareイメージを用意しました。以下のURLよりダウンロードしてください。
【VMwareイメージのダウンロード】 http://www.selinux.gr.jp/LIDS-JP/atmarkit.html |
Trusted Domain Enforcementとは何か
前回はLIDS TPEの機能を体験してみましたが、実はLIDS TPEの実装だけではまだ不十分です。
例えば、LIDS TPEではshやperlなどが信頼されてしまうと、シェルスクリプトやPerlスクリプトに関しても自動的に信頼してしまうため、悪意のあるスクリプトによる攻撃を防ぐことができません。また、信頼されたバイナリであっても、保護されていない入力など、入力の種類によっては異常な振る舞いをすることがあります。これもLIDS TPEでは防げません。
このような脅威に対処するためにTDE機能が開発されました。TDE機能は、次の2つのメカニズムから成り立っています。
- TDEポリシー
- アプリケーションのサンドボックス化
それでは、それぞれを詳しく見ていきましょう。
すべてのプロセスに強制されるTDEポリシー
LIDS TDEがカーネルに組み込まれている場合、LIDSはすべてのプロセスに対して「TDEポリシー」を強制します。
LIDSによるACLやケーパビリティが与えられたプロセスがあり、ファイルやキャラクタデバイスから入力が与えられた場合を考えてみます。このファイルがACLによってREADONLYに設定されていて、書き換えが不可能だった場合には特に問題は発生しません。しかし、ファイルの書き換えが可能になっていると、ファイルの中身を変更される可能性があります。改ざんされたファイルからの入力で、プロセスが予期せぬ動作を行う危険性があります。
TDEポリシーでは、プロセスに対してACLで保護されていないファイルからの入力があった場合には、プロセスを「信頼されたドメイン」から「信頼されていないドメイン」に移動します。そして、「信頼されていないドメイン」に移動されたプロセスに与えられていた権限やケーパビリティは剥奪されます。この結果、危険性があるファイルによってプロセスが悪用されたとしても、重要な問題が発生することはありません。
図1 権限の剥奪 |
Apacheやbindといったプロセスが設定ファイルをリロードした際にもTDEポリシーが適用されます。もし、それらの設定ファイルがACLで保護されていなかったら、Apacheやbindの権限やケーパビリティが剥奪されます。仮に、悪意のある設定にすり替えられていたとしても、プロセスは悪用されません。このように、TDEは非常に応用の利く機能です。
TDEポリシーの例
TDEの簡単な例を見てみましょう。冒頭でダウンロードしたVMwareイメージを使います。これは、簡単なCGIスクリプトが動作するようにLIDSを設定しています。以下のCGIスクリプトは、指定されたファイルに載っているIPアドレスにpingを打つものです。
#!/usr/bin/perl use CGI; use Net::Ping; open(STDERR, ">&STDOUT"); $|=1; $cgi = new CGI; print "Content-Type: text/html\r\n\r\n"; print "<HTML><BODY><PRE>"; $file = $cgi->param('file'); $filepath = $file; open(FILE, $filepath) || die"Error: $filepath is not found!\n"; while($line=<FILE>) { use Net::Ping; $host=$line; $timeout=0.1; $p = Net::Ping->new("icmp"); if ($p->ping($host, $timeout)){ print "$host is alive.\n"; } $p->close(); } close(FILE); print "</PRE></BODY></HTML>"; |
VMwareイメージを起動したら、rootアカウントでログインします。rootアカウントのパスワードは「lids」です。そして「/sbin/ifconfig eth0」コマンドでIPアドレスを確認します。
画面1 「/sbin/ifconfig eth0」コマンドでIPアドレスを確認 |
ホストOSでWebブラウザを起動し、URDに確認したIPアドレスを入力します(例では192.168.230.100)。VMware上でApacheが動作しているため、次のような画面が表示されます。
画面2 TDEの実験 |
ファイル名入力欄に「/root/hosts」と入力し、ボタンを押します。/root以下はLIDSによりREADONLYで保護されているため、/root/hostsファイルは保護されている入力になります。それ故、/root/hostsファイルに記載されているIPアドレスにpingを打った結果が出力されます。
画面3 pingを打った結果 |
次に、ファイル名入力欄に「/var/tmp/hosts」と入力し、ボタンを押します。/var/tmp/hosts以下はLIDSによりすべてのプロセスからWRITEが与えられているため、/var/tmp/hostsファイルは保護されていない入力になります。
保護されていない入力が与えられたため、このプロセスに設定されているACLやケーパビリティがすべて剥奪されます。pingを使用するために必要な「CAP_NET_RAW」というケーパビリティも剥奪されます。「icmp socket error - Operation not permitted at /usr/local/apache/cgi-bin/test.cgi line 18」というエラーが表示され、pingが打てなくなっているはずです。
画面4 pingが打てない |
VMwareの/var/log/syslogファイルを見てみましょう。「保護されていない入力が与えられたために、TDEポリシーが適用された」というログが残っているはずです。
Apr 8 17:56:47 lids1 kernel: LIDS: perl5.8.4 (dev 3:1 inode 64627) pid 933 ppid 850 uid/gid (1001/65534) on (null tty) : Enforce TDE policy! Read unprotected input /var/tmp/hosts Apr 8 17:56:47 lids1 kernel: LIDS: perl5.8.4 (dev 3:1 inode 64627) pid 933 ppid 850 uid/gid (1001/65534) on (null tty) : violated CAP_NET_RAW |
/var/log/syslogファイル |
TDEポリシーを適用することで、ACLにより保護されているバイナリが、ACLで保護されていない入力を与えられて予期せぬ動作をしてしまうことを防止でき、それに起因する被害を最小限にできます。
1/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)対策の観点から考える。
|
|