Re:Re: 情報フロー分析再考:パス名ベースのセキュアOSの弱点とSELinuxの留意点

昨日の記事について、PANDAさんより早速トラックバックをいただく。
http://kumaneko-sakura.sblo.jp/article/700401.html
ありがとうございます。

> AppArmor, TOMOYO Linuxにはこの弱点が当てはまると思う(間違ってたら教えてください)
これはその通りです。でも、脅威はハードリンクだけでは無いのです。
TOMOYO Linux では、情報フロー分析に基づく保証は行えません。しかし、 SELinux でも情報フロー分析に基づく保証を行えるとは思っていません。

が一番言いたいことですね。
具体例として以下が挙げられている。

/etc/shadow を含むデバイスファイル(例えば /dev/sda1)を読むことができるプログラムは /etc/shadow のラベルを持つファイルの内容にアクセスできます。
...
/dev/sda と同様に、アーカイブファイルの場合も問題です。
find /etc/ -print0 | cpio -o0 -H newc > /tmp/etc.cpio
に相当する処理がポリシーにより許可されている場合、 /tmp/etc.cpio には /etc/passwd や /etc/shadow などの情報も含まれています。

これは考えたこともなかった。むー
アーカイブは、
「/etc/shadow(shadow_t) -> cpio(sysadm_cpio_t) -> /tmp(sysadm_tmp_t)」
といった流れで表現できますね。
sysadm_tmp_tにパスワードの情報が入りうることは表現可能です。
が、ディスクデバイスはどうするんだろ。
「/dev/sda1(全ラベル(笑 -> sysadm_t 」
みたいな感じになるのか?
が、/dev/sda1が「全ラベル」っていうのは、誰が決めるんだろう。

 * ラベルベースにも「初期状態後」に弱点がある。
o 初期状態後に、 /etc/shadow の内容の(ハードリンクではない)コピーを作られたら、穴ができてしまう。
o ★結論★これを防ぐには、常に情報の価値に基づく適切なラベル付けが行われているか監視する必要がある。

たぶん、ラベルだと、コピーされる前に、
「そもそもコピーを作ることが出来ない」ことをポリシーで保証するんだと思います。

もっとも、「初期状態」の時点で、/etc/shadowのコピーがどっかにあって、
それを見落としたらおしまいなのですが。。

>o ★結論★これを防ぐには、常に情報の価値に基づく適切なラベル付けが行われているか監視する必要がある。
というよりは、初期状態でとことん頑張る必要があるのだと思います。

  • システムの全ファイルの中身を精査
  • ラベルを考える
  • 情報フローを設計する(重要情報のコピーが生じないように)
  • 情報フローからポリシに落とす

という流れになりますかね。

もっとも、どれくらい時間をかければ、上ができるのか分かりませんが。。
思いっきり用途を限定したシステムならば可能かもしれません。
汎用システムでやろうとすると気が遠くなりますね。。