第5回 「信頼されたPath」という考え方をLIDSで使う
面 和毅サイオステクノロジー株式会社
インフラストラクチャービジネスユニット
Linuxテクノロジー部
OSSテクノロジーグループ
シニアマネージャ
2006/3/25
第4回「VMwareでLIDSに触れてみよう」では、「ステート」という概念とVMwareイメージの使い方を紹介しました。今回は、LIDS-1系列で拡張された「Trusted Path Execution(TPE)」について説明します。
Trusted Pathというセキュリティモデル
Trusted Pathは、セキュリティモデルの中の伝統的な保護機能として知られています。これは、米国国防総省の「オレンジブック」によって提唱されたもので、
「ユーザーが端末からシステムに情報を伝達する際に使われるメカニズムで、ユーザーか『信頼されている(Trusted)ソフトウェア』のみが活性化することができて、ほかのソフトウェアによって模倣されることがないセキュリティモデル」
と定義されています。つまり、ユーザーが端末からプログラムを実行する際にこのメカニズムを適用することにより、「信頼されているユーザー」が実行した「信頼されているソフトウェア」のみが実行されるようにしようということです。
このメカニズムがシステムに適用されていない場合を簡単に見てみましょう。会社で多くのユーザーが業務に使用しているLinuxサーバに、新たに重大なセキュリティホールが発見されたとします。このバグは、特権を持っていないユーザーであっても突くことができます。バグを悪用する手順は、ユーザーが、
(1)バグを突くソースを持ってきて
(2)コンパイルして
(3)ユーザーのホームディレクトリで実行する
だけで可能です。
すべてのユーザーに対して「バグを突くソースを入手すること(1)」をさせないことは事実上不可能です(すべてのユーザーの行為を24時間/365日監視し続ければ可能かもしれませんが)。「入手したソースをコンパイルすること(2)」を禁止するのも同様に非常に困難です。仮にLinuxサーバ上からgccなどのコンパイラをすべて削除して使えなくしたとしても、外部でコンパイルしてサーバにコピーすることが可能だからです。
しかし、「ユーザーのホームディレクトリで実行する(3)」段階で、システムが「信頼されているPathに存在している実行ファイルにしか実行を許可しない」となっていればどうでしょうか。/bin以下や/usr/bin以下のディレクトリをroot以外の書き込みを拒否するように保護して、そのディレクトリに存在しているソフトウェアの実行のみを許可するようにしてしまえば、(3)を防ぐことができます。いい換えれば、信頼されていないソフトウェア(/home以下や/tmp以下にある実行ファイル)の実行を拒否するということです。
Trusted Pathのメカニズムは、明白に悪意のあるユーザーに対してはもちろん、悪意のない一般ユーザーによるシステムへの(意図しない)危険な行為を防ぐことができます。例えば、メールに付いてくるウイルスです。一般ユーザーが意図せずに、メールを開いただけで実行されるようなウイルスに対しても、それは信頼されたPathからの実行ではないので防ぐことが可能です。
このように、Trusted Pathのメカニズムを用いて、ユーザーによって、勝手に、適当なプログラムを実行されることを防ごうというコンセプトを「TPE」と呼びます。
一般的なTPEの考え方
Trusted Pathのメカニズムは、過去にもLinuxや*BSDにパッチを当てて実現しようと試みられてきました。アンダーグラウンドのセキュリティマガジンとして知られている「Phrack Magazine」上では、Linuxカーネル2.0.33上やOpenBSD 2.4上に当てるパッチが公開されたことがあります。
これらの実装をまとめるとTPEは、
1.Trusted Path(信頼されたPath)
狭い意味での信頼されたPathで、親ディレクトリがrootにより所有され、そのほかのGroupやAnonymousからWriteの権限を持っていない場合に信頼できるとされる
2.Trusted ACL(信頼されたACL)
信頼されたユーザーのリストで、このリストに載っている(rootを含めた)ユーザーが信頼できるとされる
3.Rule(ルール)
Trusted PathとTrusted ACLの組み合わせによる実行の許可/拒否を記しており、例えば表1のようなRuleに基づき、信頼できないユーザーによる信頼できないPathの実行を拒否する
Path信頼されている 信頼されていない User信頼されている ○ ○信頼されていない ○ ×○は実行を許可、×は実行を拒否を意味する
といった3つの構成要素から成り立っています。
このような一般的なTPEのコンセプトをLIDSに取り込むことにより、バイナリやライブラリが保護されている場合のみに実行を許可したり、モジュールの読み込みを許可するような拡張が「LIDS TPE」になります。
1/2
|
Index | |
「信頼されたPath」という考え方をLIDSで使う | |
Page1 Trusted Pathというセキュリティモデル 一般的なTPEの考え方 |
|
Page2 LIDS TPEの考え方 実際にLIDS TPEを使ってみよう LIDS TPEだけでは万能ではない |
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)対策の観点から考える。
|
|