http://sourceforge.jp/projects/tomoyo/lists/archive/users/2009-May/000602.html
パス名ベースのアクセス制御とラベルベースのアクセス制御との論争を通じて、パス名ベースのアクセス制御でないと実現できないセキュリティも存在することが明らかになったことと思います。
既存ファイルの読み書き実行の可否を制限する上ではパス名ベースよりもラベルベースの方が上手に制限することができます。しかし、セキュリティは読み書き実行の可否だけで決まるものではありません。どのように使われるか(どのように振る舞うか)を考慮することもセキュリティの一部です。ファイルの名前が変化すると、どのように使われるかも変化します。そして、ファイルの名前の変化を制限する上では、ラベルベースよりもパス名ベースの方が上手に制限することができます。
Webサーバで考えてみましょう。 Apache は index.html というファイル名であれば、そのファイルの内容をクライアントに開示します。反対に、 .htpasswd というファイル名であればそのファイルの内容をクライアントに開示しません。
もしも、 readme.txt という名前で .htpasswd へのハードリンクを作成されたり、あるいは .htpasswd という名前から passwd.txt という名前にリネームされたりしてしまうと、本来開示すべきではない内容を開示してしまうことになります。そのため、 TOMOYO Linux では、ハードリンクの作成時やリネーム時には、「ハードリンク元/ハードリンク先」「変更前の名前/変更後の名前」のように2つのパス名をセットにして制限をしています。
では、 readme.txt という名前で .htpasswd へのシンボリックリンクを作成された場合はどうでしょう?Webサーバに対しては .htpasswd へのアクセスを許可するのですから、本来開示すべきではない内容を開示してしまうことになります。今までの TOMOYO Linux では、シンボリックリンクの作成時には、シンボリックリンクの参照先をチェックしていなかったので、この問題を防げませんでした。
そこで、今回のリリースでは、「シンボリックリンクを作成する際にシンボリックリンクの参照先を制限する」機能が追加されました。これにより、例えば .htpasswd へのシンボリックリンクの作成を防ぐことができるようになりました。