カーネル脆弱性を利用してSELinux無効化

昨日の続き
http://d.hatena.ne.jp/himainu/20080211#1202734528

SELinuxを無効化することを難しくする方法は無いか、

いい方法はないかMLに聞いてみた。
http://marc.info/?t=120282753700004&r=1&w=2
根本的な解決はなさそうだが、
やはり、SELinuxのenforcing/permissive切り替え機能をカーネルコンパイルオプションで切る
のが有効とのこと(これやると、selinux_enforcing変数がなくなる)
他には、/proc/kallsyms機能をカーネルコンパイル時にオフにする
ことが挙げられていた。

カーネルコンパイルが必要となると、あまり汎用的な対策じゃないなぁ。
なんかいい方法ないですかね。

/proc/kallsymsにラベルをはって普通のプロセスから見えなくする方法も考えたが、
これだと、汎用distroだと意味ないなぁと思う。
なぜなら、Fedora8だと、みんな同じバイナリのカーネルを使っている。なので、どのマシンでも
selinux_enforcingのアドレスは一緒。
攻撃者はkallsymsを見るまでもなく、selinux_enforcingのアドレスが判ってしまう。

おっと、メール見たらSELinuxネ申から何やらアドバイスがもらえた。実現できるかなぁ。。