Chapter 2: なぜ TOMOYO Linux が必要なのですか?
2.1. TOMOYO Linux とは何ですか?
TOMOYO Linux は Linux 向けの強制アクセス制御( MAC )の実装で、システムの解析やシステムのセキュリティを高めるために利用できます。このプロジェクトは2003年3月に始まり、株式会社NTTデータがスポンサーとなって開発されています。技術的な情報については,『ネットワークセキュリティ Expert 5 』(技術評論社/ ISBN4-7741-2973-9 )や SourceForge のプロジェクトページにて紹介しています。
TOMOYO Linux 1.x は、2005年11月11日にGPLライセンスで公開されたオリジナルの実装です。 Linux カーネルに対して適用可能なパッチの形式で実装されており、現在でも活発に開発が行われています。
TOMOYO Linux 2.x は、 Linux カーネルに統合されている実装です。2009年6月に公開されたカーネル 2.6.30 に TOMOYO Linux 1系の機能の一部が統合されました。 Linux カーネルが提供しているLSM( Linux Security Module )フックを利用しています。しかし、 TOMOYO Linux 1系が提供している全ての機能を実装するためにはLSMフックを拡張する必要があります。そのため、現時点では TOMOYO Linux 1系が提供している全ての機能を TOMOYO Linux 2系で提供できているわけではありません。機能比較表に、1系と2系との違いが説明されています。
このガイドでは TOMOYO Linux 2.3.x について説明します。
2.2. 強制アクセス制御とは何ですか?
通常のオペレーティングシステム( OS )では、プログラムやプロセスはほとんど制限されておらず、プログラムやプロセスは何でもすることができます(以下のイラストを参照してください)。セキュリティに配慮された OS では、プロセスが行うべきではない動作を行わせないようにするため(あるいはシステム管理者が具体的に阻止したい動作を行わせないようにするため)に何らかの形の制限が実装されるべきです。例えば、 Apache のような Web サーバは Web サービスだけを提供することが認められるべきです。そのサーバに対して、サービスを提供するのに不要なファイルへのアクセス権が与えられるべきではありませんし、他の無関係なプロセスを開始したり干渉したりする権限も与えられるべきではありません。 Linux のファイルシステムの機能であるアクセスコントロールリスト( ACL )で実現できる保護は僅かです(特に、多くのサービスが root ユーザの権限で動作する場合)。それに対して、強制アクセス制御はこの保護を一層強固なものにし、( root ユーザの権限で動作しているプロセスも含む)それぞれのプロセスができることについて、とても正確な制御を行うことができます。(以下のイラストを参照してください。)これは、プロセスが侵害された場合に威力を発揮します。強制アクセス制御が存在しない場合、侵害されたプロセスは好き放題に振る舞うことができてしまうのです!
普通のOSにおける制限されていないアクセス:
強制アクセス制御を搭載したOSにおける制限されたアクセス:
それゆえ、強制アクセス制御は必要最小限の権限というポリシーを実現することができます。強制アクセス制御では、それぞれのプロセスができることについての定義を持ち、その定義のことをポリシーと呼びます。このポリシーは、本来の機能を提供するのに必要最小限のことだけが許可されます。もしプロセスやアプリケーションがポリシーで許可されていないことを試みた場合、その試みは拒否されます。そのため、望まない振る舞い(破壊活動など)を阻止することができます。
2.3. TOMOYO Linux は何の役に立ちますか?
強制アクセス制御で大事なことの一つに、システム上に存在する全てのプロセス用のポリシーを定義して管理することが挙げられます。それを行うためには、それぞれのプロセスに対して許可されるべきことについての正確な知識が必要になります。これは極悪非道なまでに困難なことであり、また、高度な理解とスキルが必要になると思えるでしょう。しかし、 TOMOYO Linux では学習モードという機能によりポリシーを簡単かつ自動的に生成し、カスタマイズして適用するための素地を提供することができます。 TOMOYO Linux の概念をしっかりと理解し、この学習モードと組み合わせることにより、短時間でシステムを安全にすることができます。習熟した Linux システム管理者であれば誰でも、その日の内に TOMOYO Linux をセットアップして使うことができます!
制限が行われているシステムは、アプリケーションが侵害された際のダメージを軽減するのに役立ちます。例えば、バッファオーバーフロー攻撃などに起因するダメージを軽減できます。それゆえ、このような保護は Apache や SSH のようにインターネットに面しているサービスにとってとても重要です。最小権限のポリシーが適用されていれば、アプリケーションの制御を奪った遠隔の攻撃者がそれ以上システムを侵害することを防ぐことができるでしょう。