MCSでスパイウェア対策

P2Pファイル共有ソフトでダウンロードしたファイルや、メールの添付ファイルを誤って実行してしまった場合に被害を最小化するアイデアについて。

まず、流出されては困るファイルにはカテゴリを付与しておく。
これは、ユーザが普通にログインした時のカテゴリで参照できるようにしておくのが望ましい。Fedora Core 5のデフォルトでは、rootがSystemHigh-SystemLowで、その他の一般ユーザがカテゴリ無しに設定されているが、例えば {c0} を一般ユーザに付与するものとする。

普通にプログラムを起動した場合、子プロセスも{c0}で動くために、トロイの木馬プログラムも{c0}で動いてしまう。よって、流出してほしくないファイルも読めてしまい、アウト。これが標準の振る舞い。

アイデアとしては、TrustedなバイナリとUntrustedなバイナリを分けて、Untrustedなバイナリを実行しようとした場合には、プロセスのカテゴリを全部取ってしまうというルールを追加する。
(例えば、/homeや/tmpに作られたファイルは素性がわからないからUntrustedであるとしましょう。)
方法は、tange_transition文をポリシーに追加して

range_transition unconfined_t {user_home_t tmp_t} s0;

などと書いておく。

こうすると、/homeや/tmpに勝手に作られた素性のよくわからないバイナリを実行する時は、プロセスのカテゴリは全て奪われる。
一方、OpenOfficeだのThunderBirdだのTrustedであるとしたバイナリを実行した場合は、ログインプロセスのカテゴリがそのまま継承される。
そのため、カテゴリ付きの個人情報ファイルをOpenOfficeで編集しつつ、隣でWinnyを(Wineエミュレータで)動かすといったことも可能になると思われる。

最近、SELinuxを使ってどういうソリューションを提案できるかというのを考えるのに凝っている。