TOP情報セキュリティ> セキュリティ強化Linuxの現状
TOMOYO Linux
初体験 TOMOYO Linux!

第1回:国産セキュアOSの歩み

著者:NTTデータ  原田 季栄   2007/6/22
前のページ  1  2   3  4  次のページ
セキュリティ強化Linuxの現状

   前述のセキュリティ強化については、1980年代に軍事レベルのセキュリティを求められるシステムのために研究・開発がはじまりました。その成果は商用機への展開を経て、ついにはオープンソースまで広がってきました。

   強制アクセス制御はさまざまなOSに移植されていますが、バージョン2.6以降のLinuxにはNSAが開発したSELinuxの機能が組み込まれているので、Linuxユーザであれば誰でも無償でセキュリティ強化の恩恵を享受することができます。これはとても素晴らしいことです。

   ただし、SELinuxを含めセキュリティを強化したLinuxが広く使われているかというと、残念ながらそうとはいえないようです。SELinuxについても、「まずは無効にしよう」というノウハウ(?)が知られ、「動かない」というトラブル報告は多数ありますが、「活用しています」という事例は多くないようです。

   こうした状況となった原因はいろいろ考えられますが、1つには前述のポリシー設定が難解であること、また(設定を誤ると)必要な機能が動作しなくなったり、障害の切り分けが複雑になったりするなどの副作用があることが大きいのではないかと思います。

   セキュリティ強化Linuxは基本的に「禁止(できることを限定)」するもので、利用できる機能自体が増えるわけではありません。一方、「運用の作業と負担は増加」という代償を伴いますから、そもそも放っておいて普及するようなものではないのです。

TOMOYO Linuxの特徴

   TOMOYO Linuxは、セキュリティ強化Linuxの課題を解消することを目指し、NTTデータが開発したセキュリティ強化Linuxです。標準的なLinux管理者経験を持つ人であれば誰でも設定、運用できます。それを可能にしたのが、独自の「ポリシー自動生成機能」です。この機能は、Linuxカーネル内でふるまいを観測することにより実現されています。

TOMOYO Linuxの学習モードのイメージ
図3:TOMOYO Linuxの学習モードのイメージ

   TOMOYO Linuxは、無効/学習/確認/強制の4つのモードを持っています。「学習(Learning)」モードでは、呼び出されるままに機能の実行を行いながら、それに必要となるアクセス許可の内容をポリシーとして蓄積します。蓄積された内容を確認し、「強制(Enforcing)」モードに切り替えると、ポリシーの内容で定義されている機能しか実行できなくなります。

   SELinuxには学習モードはなく、許容(permissive)と強制(enforcing)モードしかありません。しかもそのモードはシステム全体のモードなので、Webサーバだけを強制モードにするということはできません。TOMOYO Linuxであれば、すべてのプログラムについて独立にモードを切り替えることができるので、「Webサーバのプログラムを強制モードで保護しながら、コンソールからログインした場合の操作について学習する」ということが可能です。

   これを図にあらわすと図4のようになります。

   TOMOYO Linuxの自動学習を利用すると、自動学習をオンにして学習させたい機能を実行するだけで、その機能を実行するために必要なアクセス許可情報を取得できます。これは、OSの起動時からシャットダウンまでの間有効であり、Webサーバなどの特定のプログラムだけを対象にすることも可能です。


ポリシー自動学習機能

   ポリシーの構文には標準がありませんが基本的な考え方は共通で、「場合」ごとの「アクセス許可条件」の組み合わせとなっています。

   例えばパスワード情報を保持するファイルについて、それを常に参照/更新できないようにすると新しいユーザの登録だけでなく、自分のパスワードも変更できなくなります。しかし、ブラウザからこのサーバに接続するユーザは、基本的にパスワードのファイルの内容を参照する必要はありません。

   対象となるファイルに対して、複数の「場合」が存在し、その場合ごとにアクセス許可内容を考えるわけですが、この場合分けをSELinuxやTOMOYO Linuxでは「ドメイン」と呼んでいます。ドメインの概念を持つセキュアOSでのポリシーは、ドメイン分けとドメインごとのアクセス制御内容により構成されます。

ドメインとプロセスごとのアクセス制御のイメージ
図4:ドメインとプロセスごとのアクセス制御のイメージ

   TOMOYO Linuxでは、プロセス(実行されたプログラム)ごとに、その履歴を含めた状態でドメインを定義します。「履歴」は「Aというプログラムから起動されたBというプログラム」といった形式になっています。人間でいえば、祖先までの系図と考えるとわかりやすいでしょう。

   同じプログラムであっても、それが常駐プログラムから起動されたものと端末でコマンドとして実行されたものは、それぞれ別のものとして扱われます。ドメインの定義と分類はすべてTOMOYO Linuxが自動的に処理してくれるので、複数の状態をまとめて扱いたいなどの理由がない限り、管理者は何もする必要がありません。SELinuxの場合は、ドメインは管理者が定義します。

TOMOYO Linuxは自動的に定義処理を行ってくれる
図5:TOMOYO Linuxは自動的に定義処理を行ってくれる

   必要な機能が実行できる状態を維持しながら、不要な機能を排除することは難しいものです。TOMOYO Linuxは、その難しい部分を引き受けてくれるので、管理者にとって使いやすく、セキュアな環境の構築が可能となります。

前のページ  1  2   3  4  次のページ


株式会社NTTデータ 原田 季栄
著者プロフィール
株式会社NTTデータ  原田 季栄
1985年北海道大学工学部応用物理学科卒。同年NTTに入社し、現在はNTTデータ技術開発本部に勤務。MITでのマルチメディアオーサリングシステムの開発、デジタル放送、営放システム等放送関連のシステム開発とマネージメントを経て、2003年よりオープンソースの研究開発に従事し、シンクライアント、Linuxのセキュリティ強化に取り組む。「使いこなせて安全」を目指すセキュアOSとして知られる国産セキュアOS、TOMOYO Linuxのプロジェクトマネージャ。


INDEX
第1回:国産セキュアOSの歩み
  はじめてのTOMOYO Linux
セキュリティ強化Linuxの現状
  TOMOYO Linuxの歴史
  TOMOYO Linux開発の現状