サーバを 守るは 己自身なり

2008年6月28日(土)
原田 季栄

ケチャップ強盗からサーバOSのセキュリティを考える

 私はケチャップ強盗により、かばんを盗まれてしまいました。どうすればそれを防ぐことができたでしょうか?FOSDEM'08自体に参加していなければ、ブリュッセルでかばんを奪われることはなかったわけですが、私はFOSDEM'08に発表するためにきたのですから、それでは答えになりません。

 Linuxのセキュリティ強化の取り組みを始めたころ、OSのセキュリティ強化に関連する論文や情報を手当たり次第に調べました。そのときよく「サーバのセキュリティを保つことは簡単で、サーバをネットワークにつなげない、さらに電源もいれず、物理的に誰も近づけないようにしておけば万全だ」という表現を目にしました。でもそれでは何もできません。

 セキュリティに「これで大丈夫」はありません。考えられるリスクや脆弱性に対して対策を講じることはできても、未知のリスクまで防ぐことはできないからです。サーバOSのセキュリティ強化も同じです。ではSELinuxやTOMOYO Linuxなど、「セキュリティを強化したLinux」は、何をどのように強化しているのでしょうか?

 Linux/UNIXは、「制限された一般ユーザ」と「万能の管理者」というモデルに基づいています。一般のユーザが行える操作は限られています。必要に応じて管理者を呼び出したり、部分的に管理者の権限を認めてもらうというモデルです。

 このモデルはなかなかよくできているのですが、致命的な欠点を持っています。不正な方法により管理者の権限を奪われてしまうとその瞬間にゲームオーバーになる点です。管理者は万能なので、一度管理者権限を奪われると歯止めが何もありません。

 システムは正当な管理者とクラッカー、あるいは正当な要求と不当な要求を区別する術を持ちませんから、指示されるがままにクラッカーに操られます。そうなってしまうと、「ログ」もあてにはなりません、と言うよりあてにしてはいけません。管理者権限を奪ったクラッカーは、システムの日付を変更し、ログを編集できるのですから。

 しかしだからといって管理者や管理者権限をやめるというわけにはいきません。それではシステムの運用が成り立ちません。となると、できることは「万能の管理者」の権限を制限する以外にありません。

OSセキュリティ強化の2つの原則

 読者の中には、Windows Vistaをお使いになっている方も多いと思います。Vistaでは、ときどき画面が暗くなりダイアログが表示されて、「本当にその操作を実行しますか?」と聞かれます。「XPではこんなこと聞かれなかったのに」と不評なようですが、例えばワームに感染したとき、XPではそのまま黙って行われる処理が、Vistaではユーザの判断により止めるチャンスがあると言われると、「仕方ないなぁ」という気がしてきませんか?「何も聞かれずに何でもできてしまう」ということは、便利と言えば便利かもしれませんが、実は危険な状態でもあるのです。

 SELinuxやTOMOYO Linuxでは、管理者でログインしていてもシステムを完全に自由にすることはできません。「ポリシー」と呼ばれる設定で認められている内容は実行できますが、それ以外は管理者であっても拒否されます。

 逆に言えば、SELinuxやTOMOYO Linuxは、「漏れなく、例外なく、OS機能の実行をポリシーに照らして判断する」ための仕組みということです。この仕組みを「強制アクセス制御」と呼びます。英語では、Mandatory Access Control(MAC)です。

 なぜポリシーが必要なのでしょうか?それは、「OSには個々の機能を実行する意味や善悪がわからない」からです。人間が、管理者が、定義してコンピュータに教えてあげるしかないのです。SELinuxやTOMOYO Linuxも、事前にポリシーを定義しなければ使えません。

 「セキュアOS(より正確にはセキュリティを強化されたOS)」では、例外なくこのMACが実装されており、そのほかに「最少権限(Least Privilege)」と呼ばれる管理者の権限(特権)の分割が行われています。

 例えば、社内のあらゆる決裁に社印が必要だったらと考えてみてください。ボールペンを1本買うのに社印が貸し出されたとして、それが悪意を持つ社員の手に渡ってしまったら...。現実の会社では、委任内規により権限が分割されていますが、古き良き時代に作られたOSはそうなっていないのです。

 以上「セキュアOS」の基本的な概念である「強制アクセス制御」と「最少特権の原則」について簡単に紹介しました。2008年1月に刊行されたアスキー出版の「プロフェッショナル・セキュリティ・レビュー」に8ページの解説記事を書きました。興味を持たれた方はぜひ記事全文と紹介している参考文献をご一読いただければと思います。

TOMOYO Linuxプロジェクト
北海道室蘭市生まれ。1985年北海道大学工学部応用物理学科卒。同年NTT(横須賀研究センター)入社。現在の所属は、株式会社NTTデータ技術開発本部。2003年よりオープンソースの研究開発に取り組む。「使いこなせて安全」を目指すTOMOYO Linuxプロジェクトのマネージャ。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています