AppArmor伝説をたどる

TOMOYO LinuxのLKMLへの3度目の挑戦(投稿)を控えて、AppArmorのスレッドを含めて過去の経緯を再度振り返ってみることにした。AppArmorのLKMLでの議論はあまりに長大で、かつさまざまな話題が錯綜しており、議論の整理には長い時間がかかりそうだ。LWN.netでJonathanがまとめた記事が、「議論のはじまり」のサマリーになりそうだ。

同じくLWN.netの記事、Linux security non-modules and AppArmor (2007/6/27)でJonathanは"At the 2006 summit, Linus took a clear position that the use of pathnames for security policies seemed reasonable to him. (2006のKernel SummitでLinusは、セキュリティポリシーにパス名を用いるのはLinuxとして問題ないという立場を明らかにした)"と書いている。

この元情報は、Kernel Summit 2006: Security (2006.6.18)のようだ。ここに書かれた内容によると、2006年のKernel Summitでは、Stephenが、"pathname-based mechanism considered harmful(パス名ベースの仕組みは有害と思われる)"という発表を行ったようだが、残念ながらこの発表資料は公開されていないようだ*1。関係ないが、この記事では「LSM廃止」についてLinusが挙げた理由が紹介されていて、興味深かった。" Linus said that the entire reason that LSM had been added was to avoid having this sort of discussion every year. (LinusはLSMが導入されたのはまさに毎年このような議論が起こるのを防ぐためだ。)"

Jonathanの記事は説明が簡単すぎて、"this soft of discussion"の指すものがあまり明確ではないが、同じくLWNの記事、Time to remove LSM? (2005.5.31)にある、"he did not want to have to choose between them(ここのheはLinusでthemはLinuxを強化しようとする実装。つまりLinusとしては、どれかひとつのセキュリティ強化を選びたくないから、複数の選択肢を残すための方法としてLSMを導入した)"のことだろう。どうもLinusはLSMやLinuxセキュリティ強化にあまり関心が高くないように思われるし、ちゃんとした議論がなされているのか心配にもなってしまう。同じ記事によると、Kernel Summit 2006で、Stephenは「SELinuxはあまりLSMを使っていないから無くなっても良い」と言ったのに対して、「AppArmorはLSMがないと困る」と対照的だったことも書かれているが、これはLSMの成り立ちの経緯を考えると不思議な気がする。

AppArmorのスレッドはあまりに膨大なので一度には読めないが、話題と発言者を見ながら少しずつ読み始めた。ここでもStephenは主要な登場人物の一人だが、「パス名はユーザに対して提供するもの、カーネル内での(MACの)制御はラベルで」というのが根本にあるらしく、そうだとすると「マウントを制御(制限)するから大丈夫」のような話をしても通じるわけはない。Kernel Summit 2006の結論はAppArmorを含めその後の仕様の議論に効力を失っているように見える。どこかの時点で何かが起こったのだろうか?最近、デッド・ゾーンにはまっている自分としては、StephenやJamesの手を握って、過去に起こったできごとのビジョンを見てみたいなどと妄想してしまった(もし本当にそうできたら、時間がとまっているところでStephenに延髄切りを入れて未来を変えてやるのだが、なんて絶対読まないと思ってひどいことを書いている)。

*1:もしこの資料をお持ちの方があればご連絡ください。