組込みにSELinuxを使う(他のセキュアOSと比べた)利点

ちょっと思いつくまま列挙してみよう。
比較対象は、TOMOYO Linux, AppArmor。
以下は、政治的な議論はおいといて、技術論。

利点案1:アクセス粒度の細かさ

昨日のKaiGaiさんのコメント
>組み込み分野では私はSELinuxだと考えています。なぜかと言うと、そこで守るべきは”情報資産”よりも”情報システム”それ自身だからです。AppArmorは基本的に対ファイルのプロテクションですよね。SELinuxはIPCやメモリ保護まできちんと記述できるので、情報システムそれ自身の防御により適しているのではないでしょうか?
これは、SELinuxの利点になるのだろうか?

1年ちょっとぐらい前、
SELinuxネ申とSELinuxがAppArmorより優れる点について議論したとき、
「プロセス間通信などの制御がSELinuxの優れたところでは?」
と聞いてみた。
その際、ネ申は、「根本的な違いではない、AppArmorが頑張れば追いつかれてしまう」
と言っていた。
確かに、双方LSMを使っている以上、粒度の細かさはAppArmorが頑張れば追いつけてしまうだろう。
TOMOYO Linuxに至っては、その気になればSELinuxをしのぐ数のパーミッションを用意できるに違いない。

利点案2:情報フローの保証

本家的には、これが優位性に尽きるっぽい。
SELinuxはラベルなので、これができる。
が、TOMOYO Linux陣営の言うように、これがいかほどの強みなのかは知らない。

利点案3:コミュニティが大きい

SELinuxに貢献したほうが、名声が高まる可能性が高い。

利点案4:カーネル標準

SELinuxは確かにカーネル標準。しかし、AppArmorのパッチを当てるのはかなり簡単。
あと、2.4対応しているのはTOMOYO Linuxだけだったり。

不利な点

色々ある

  • ファイルシステムの拡張が必要
  • ポリシー書くのがめんどくさい
    • 組込みの人に理解してもらうには、遠い道のり
    • 原理的にAppArmor並にするのは難しい
      • コンテキスト壊し問題,ファイルタイプ遷移などがあるため
  • やや重い
    • lmbench/Unixbenchかけてみたら、 AppArmor, TOMOYO よりやや遅い。
    • メモリ消費もAppArmorより多かった

総合

利点1、4は弱いのかもしれない??
こう考えると

  • 情報フロー保証をうるさく言わない場合
    • 1)AppArmorが頑張って、アクセス制御粒度を細かくする作業をする
    • 2)SELinuxが頑張って、ファイルシステム対応して、ポリシー書き楽にして、軽くする

のどちらが、楽かという話になるか?
1)のほうが楽なんじゃ?
となってしまう。むむーー!

  • 情報フロー保証をうるさく言う場合

これはSELinuxしかない

真正面からのアプローチで、
SELinuxを使ってもらうには、利点2の「情報フロー保証の必要性」
をしつこく布教するしかないのかもしれない。
あとは、利点3の「コミュニティが大きい」か。。。


なんか、SELinux最高!と言い切れるためのネタはないですかね?


または、他のセキュアOSを無視して、
先にSELinuxを布教しまくってしまって、スタンダードっぽくする手もあるか。
某 ΩΩΩ<ナンダッテー の人のように、
論理はおいといて、
SELinuxは最高なんだよ!」と、とりあえず断言する活動をしまくる。