最終更新日 2005/12/25


Linux「はにゃ〜ん♪」化計画


ここは、株式会社NTTデータが開発したセキュリティ強化Linuxである「TOMOYO Linux」の非公認無断応援サイトです。
論文や資料などは、「TOMOYO Linux プロジェクト」を参照してください。

コードネームはCLAMP先生が創作された「カードキャプターさくら」の登場キャラから拝借しています。(^^;;

TOMOYO Linux公開にあたり、ネーミングについて大きな反響がありました。そこで、コードネームの由来を私なりに説明する為に作成しました。
このページの内容は私の頭の中に溜めていたものであり、私以外の関係者が知らなかった内容です。なので、認識が異なる場合もありえます。


−−−−−構成要素について−−−−−

TOMOYO Linux は、以下の5つの要素で構成されています。

コードネーム

命名日

SAKURA Linux

2003/07/07

TOMOYO Linux

2003/12/01

CERBERUS

2004/09/14

SYAORAN

2004/10/30

YUE

2004/12/24

SAKURA Linux

これは、 Security Advancement Know-how Upon Readonly Approach for Linux (読み込み専用アプローチによる Linux セキュリティ強化ノウハウ)の頭文字として命名されました。

セキュリティを高めるには、ポリシーに基づく強制アクセス制御が効果的ですが、ポリシーの維持運用がシステム管理者にとって大きな負担であり、障壁となっていました。そこで、目的を「改ざん防止」に限定することで、ポリシーの維持運用を不要にできないかと考え、 Linux システムの大部分を物理的に改ざんできないメディアに記録することにより、ホームページ等の改ざんやバックドアの設置を防ぐことに成功し、 SAKURA Linux というコードネームが与えられました。

当初は読み込み専用で構わない部分と読み書きが必要な部分とを分離する為のノウハウ(手順書等)を指していましたが、現在ではシステム全体に影響する操作に対して強制アクセス制御を行なう機能も備えています。

カードキャプターのさくらちゃんはペンギンが大好き。そして、ペンギンと言えば Linux 。だから、 SAKURA Linux という名前になりました。
この名前は、「なんぴとたりともさくらちゃんの本質を変えることはできない」という設定と、「なんぴとたりとも SAKURA ちゃんに含まれるファイルを改ざんすることはできない」という機能を重ねたものでもあります。
SAKURA ちゃんだけでは心細いけれど、仲間の助けを借りれば、どんなピンチでも負けないでしょう。

「だいじょうぶ、なんとかなるよ。絶対、だいじょうぶだよ。」

(原作:「だいじょうぶ、なんとかなるよ。絶対、だいじょうぶだよ。」)

TOMOYO Linux

これは、 Task Oriented Management Obviates Your Onus on Linux (タスク指向の管理はあなたの Linux に対する重荷を取り除きます)の頭文字として命名されました。

SAKURA Linux を使えば、改ざんは防止できますが、ポリシーの維持運用をしないという制約がある限り、情報漏洩等に対する防御にはなりえません。そこで、ポリシーの維持運用をすることを容認するが、その負担を最小限にしたいと考え、システムが実際にアクセスした資源の履歴を記録することにより、独自形式のポリシーを生成することに成功しました。
その後、独自形式のポリシーから、 SELinux 用のポリシーへの変換を目指したのですが、構造上の違いから挫折しました。
しかし、「アクセスを監視することで独自形式のポリシーを生成できたのだから、その独自形式のポリシーに基づいてアクセスを制限することもできるはず」と考え、 SELinux から独自路線へと転換し、実際にアクセスを制御する機能も備えました。

ポリシーを自動的に生成する「学習モード」を備えており、サーバ管理者が許可したい操作を行なうだけでポリシーを作成できるため、ポリシーを維持運用するサーバ管理者の負担を大幅に軽減することができます。

実際の動作をひとつ残らず記録に残すという様子が、いつもさくらちゃんとともに行動し、さくらちゃんの様子を録画している知世ちゃんによく似ていたので、 TOMOYO Linux という名前になりました。
この名前は、「知世ちゃんが録画してぴったりのバトルコスチュームを製作する」という設定と、「 TOMOYO ちゃんが記録してぴったりのポリシーを生成する」という機能を重ねたものでもあります。

SAKURA ちゃんの行動パターンをひとつ残らずポリシーに記録し、 SAKURA ちゃんが騙されそうになった時に確実に護ります。
SAKURA ちゃんと一緒になることで、より一層のセキュリティを確保できます。

「わたしの幸せは SAKURA ちゃんが幸せでいてくださることですから。」

(原作:「わたしの幸せは さくらちゃんが幸せでいてくださることですから。」)

CERBERUS

これは、 Chained Enforceable Re-authentication Barrier Ensures Really Unbreakable Security (鎖で繋がれた強制的な再認証という壁は絶対に突破されないセキュリティを保証します)の頭文字として命名されました。

特定のソフトウェア実装を指すものではなく、強制アクセス制御を応用してログイン認証を多重化することにより「なりすまし」を防ぐという概念です。
TOMOYO Linux のポリシーの構造を応用することで実現しているため、 TOMOYO ちゃんと CERBERUS の相性が良いのは必然です。

愛称は「ケロちゃんチェック」ですよね?改ざんを防止するために読み込み専用メディアにパスワードファイルを記録してしまう SAKURA ちゃんの弱点を、プログラムの実行やファイルへのアクセスを強制的に制限することができる TOMOYO ちゃんの助けにより克服します。

パスワード以外の認証も可能であり、認証回数も無制限であるため、パスワード破りや認証プログラムの脆弱性を心配する必要がありません。もはや、ログイン認証は1回しかできないという常識は通用しません。まさしく、システムを護る、「封印の獣」です。

「認証いろいろや!うっしゃあ!!」

(原作:「人生いろいろや!うっしゃあ!!」)

SYAORAN

これは、 Simple Yet All-important Object Realizing Abiding Nexus (単純ながら極めて重要な変わることの無い結びつきを実現するオブジェクト)の頭文字として命名されました。

読み込み専用メディアに記録することが不可能な /dev ディレクトリの内容の正確さを保証するファイルシステムです。 /dev ディレクトリ内のデバイスファイルを改ざんして悪戯ができないようにします。

SAKURA Linux が開発された当時、読み込み専用にすることが許されない /dev ディレクトリへの対処として、 devfs というファイルシステムを使用していました。しかし、管理者権限があればデバイスファイルの削除が可能なため、改ざんされるという脅威を抱えていました。2003年10月時点で既に認識していた脅威ですが、当時の技術力ではとても独自のファイルシステムを作ることはできませんでした。しかし、 TOMOYO Linux の改良を重ねる内に、少しずつ構造を理解できるようになり、作成可能なデバイスをポリシーにより制限することに成功し、 SYAORAN というコードネームが与えられました。
この名前は、「さくらちゃんにとっての運命の人」という設定と、「 SAKURA ちゃんにとって不可欠な存在」という機能を重ねたものでもあります。

疑うことを知らない SAKURA ちゃんを助け、ファイルの正しさを前提に行動する TOMOYO ちゃんを助けます。

「デバイスファイルが いつも 正しいデバイスに 関連付けられているとは限らないぞ。」

(原作:「恐ろしいものが いつも わかりやすいように 恐ろしい顔をしてるとは限らないぞ。」・・・ちょっと苦しいなぁ。(^^;)

YUE

これは、 Your User-role Enforcer (いわゆるユーザロールを強制する者)の頭文字として命名されました。

特定のソフトウェア実装を指すものではなく、 TOMOYO Linux のポリシーの構造を応用することで RBAC (Role Based Access Control)もどきの機能を提供するための概念です。

システム管理者に対して複数の役割分担を定め、その分担毎にプログラムの実行順序を変化させることで、それぞれの役割にとって必要最小限の権限だけを付与することができます。これにより、 root でないと行えない業務、例えばWebサーバの管理、メールサーバの管理、アクセスログの管理といった業務の分担が root アカウント1つだけで実現できます。さらに、 CERBERUS と共に使うことができるので、分担毎に別パスワードを設定できます。

「・・・なにが『管理者』だ。結局 最初から 私のできることは決まってたんじゃないか。」

(原作:「・・・なにが『審判者』だ。結局 最初から 次のクロウカードの持ち主は決まってたんじゃないか。」)

−−−−−開発コードの由来について−−−−−

開発コードは適当に付けたのではなく、以下のような役割分担を考えた上で命名されています。

役割分担

まず、「システムの資源」と「システムの利用者」という2つに分類します。
SAKURA と SYAORAN はそれぞれ改ざんを防止するという形で「システムの資源」を保護します。

しかし、改ざんを防止するだけでは情報漏洩等を防止することはできません。
情報漏洩等を防止するには、「システムの利用者」の振る舞いを制限する必要があります。
そこで、 TOMOYO の出番です。 TOMOYO は SAKURA と SYAORAN にアクセスする利用者の行動を監視し、許可されていない行動を禁止します。

SAKURA と TOMOYO と SYAORAN で一通りの防御ができる訳ですが、まだ足りない部分があります。
それが、不正なログインへの対策と、強大な管理者権限の分割です。
ログインパスワードを盗まれた場合等、権限の無い利用者がシステムにログインしてくる可能性があります。
そこで、CERBERUS の出番です。 CERBERUS は正規の利用者だけが通過方法を知っているような認証を行なわせることで、ログインパスワードを入手してログインしてきた侵入者を撃退します。
また、 TOMOYO のポリシーにはユーザの概念が無い為、そのままでは管理者業務を分担させることはできません。
そこで、 YUE の出番です。 YUE は管理者達に対して、それぞれの管理業務分担に必要な権限だけが与えられた固有の部屋へ誘導することで、他人の管理業務を行わせないようにします。
CERBERUS と YUE は命名された時期は異なりますが、どちらも2004年1月の時点でアイデアは固まっており、同時に創られたものです。
命名された順序と原作でさくらちゃんが出会う仲間の順序とが一致してしまったのは偶然なんでしょうか?(笑)

−−−−−原作との相違点について−−−−−

私の頭の中ではなるべく原作に沿えるようにしていますが、100%沿う事はできません。主な相違点を以下に述べます。

CERBERUS と SYAORAN の仲は悪くない。

原作では小狼とケルベロスとの仲は悪いですが、 TOMOYO Linux ではそうではありません。

SYAORAN が YUE に遭っても panic になることは無い。

原作では小狼が雪兎に遭うと混乱しますが、 TOMOYO Linux ではそういうことは発生しません。カーネルのコンポーネントですから、 panic を起こされては困ります。(苦笑)

主役が TOMOYO になってしまっている。

私としては SAKURA を主役にしてあげたかったのですが、重要度でも技術面でも TOMOYO の比重が大きくなってしまったので、最終的に TOMOYO Linux というプロジェクト名になりました。

現実世界の悪意と戦う。

こればかりはどうしようもありません。セキュリティ強化Linuxは悪意ある人間がいるからこそ開発されているのであって、さくらワールドのように悪意ある人間のいない世界では必要ありません。

TOMOYO Linux は、相手や意味は違うけど、さくらワールドでの戦いを現実世界での戦いになぞらえたものです。 SAKURA TOMOYO CERBERUS SYAORAN YUE はいずれもバトルシーンに居合わせるキャラクターです。今後もキャラクターが増えていくことを予想している書き込みを見かけますが、普段からバトルシーンには居合わせないその他のキャラクターは登場しませんので、これ以上増える予定はありません。


これらのネーミングには、もう1つ、私の願いが込められているのですが、このページには書きません。