組み込みSELinuxの今後
SELinuxネ申から、重いメールが来てた。
考えて返事をせねばならない。
組み込みSELinuxを今後どうすべきかという話を考える必要があると思う。
彼の話を見てると、我々の選択肢は2つあるっぽい
- 1) 軽いSELinuxを作って、そこから機能を追加していく
- 2) 重い(最新の)SELinuxからスタート。で、人海戦術で、徐々に軽くしていく
- boolean, modular policyなどはありだが、こいつを最適化していくことで徐々に軽くする。
- 時間はかかるが、完璧なものが作れるかもしれない
本場的には「2」をやりたいっぽい。
せっかくの機能をフル活用してもらいたいに違いないし、
古いものをメンテするのは面倒だろうし。
SEEditを作るときも、こんな感じで、選択肢は2つあった。
「簡単なSELinuxを作って、そこから機能追加」
「難しいSELinuxから始まって、徐々に使い勝手を上げる」
私は、最初に一気に簡単なSELinuxを作るアプローチを取った。
しかし、本場のアプローチと逆だったため、本場リソースを活用できなかった反省がある。
本場リソース活用には、2)も考えたほうがいいのかもしれない。。。
しかし、2)を実用レベルに上げるまで、相当かかる予感。
必要なものは何だ?
- libselinux, libsepolのダイエット
- libsemanageのダイエット
- busyboxの増大分とあわせて150k以下にしたい(AppArmorが+150Kなので)
- repolicyのダイエット
- 最小セットのrefpolicyを作る
- AppArmor並に簡単にしたい
- semanageの仕組み自体の大ダイエット/etc/selinux/targeted/以下が40Mも食ってるので、根本的に大ダイエット
- polcy.21,file_contexts,モジュールの作業ファイルもろもろ含めて 100k以下にしたいな
1)も、うまいことやれればいいのだが。。。
うう、SELinuxの機能を削りまくって軽くしたい!
SELinuxの機能を分割して、必要なものを選べるようにしたい。
CONFIG_ENABLE_SEMANGE, CONFIG_ENABLE_SEPOL, CONFIG_ENABLE_BOOL
みたいなオプションで。
システムによって要求は違う気がする。
悩ましいなぁ。