[Tomoyo-dev 527] Re: ディレクトリ構成の議論を再開しましょう

Zurück zum Archiv-Index

from-****@i-lov***** from-****@i-lov*****
2007年 8月 9日 (木) 15:43:37 JST


 熊猫です。

> これは、 /proc/ccs/acceptpolicy とかを読み出すと、
> "1,2,3"
> みたいに返ってくる?
そうです。

> 2.毎回、起動のたびに何度もポリシーのバージョンをチェックするコストは
>   ポリシがでかくなると我慢しがたくなりそうでいやだ。
起動1回につき、ポリシーローダ内でのチェックが1回、
カーネル内でのチェックが1回の2回だけだと思いますが?

> 3.カーネル読み込み時にはエラーにならないことが確実にできるにしても、
>   結局ローダの延長線上で拒否しなくちゃいけなくなって、それで、
SELinux の場合は /sbin/init がポリシーをロードするような改造が加えられていますが、
TOMOYO Linux の場合は /sbin/init がポリシーをロードするような改造を加えることは
( /sbin/init をメンテナンスできる立場では無いので)できません。

(↓ Fedora Core 6 の場合)

<kernel> /sbin/init
6 /dev/console
6 /dev/initctl
6 /dev/tty\$
4 /etc/inittab
1 /etc/rc.d/rc
1 /etc/rc.d/rc.sysinit
4 /etc/selinux/config
4 /etc/selinux/targeted/policy/policy.21
4 /proc/cmdline
1 /sbin/init
1 /sbin/mingetty
4 /selinux/enforce
6 /selinux/load
4 /selinux/mls
4 /selinux/policyvers
2 /var/log/wtmp
6 /var/run/utmp
allow_capability SYS_IOCTL
allow_capability SYS_MOUNT
allow_capability SYS_REBOOT
allow_capability create_fifo
allow_mkfifo /dev/initctl
allow_rewrite /var/log/wtmp

だから、 init= を明示して /sbin/init の起動前に(標準入出力が利用可能になった状態で)
ポリシーローダを実行するようにしていました。
しかし、 init= を指定しないで済むようにしたいという意見があるので、
call_usermodehelper() を用いて /sbin/init の起動前に(標準入出力が利用不可能な状態で)
ポリシーローダを実行するように変更されようとしています。
SELinux の /sbin/init と同じように標準入出力を使える状態にしたいのなら、
call_usermodehelper() ではなく init= による実行をするしか無いのではないでしょうか?

> それくらいなら、一度、ポリシーファイルを「コンパイル」してデジタル署名
> をつけるようにして(MD5?)、改ざん防止の仕組みを作りこむ・・・そのときに
> ポリシーバージョンもあわせてチェックしてしまう・・・とかの方がよほど
> きれいです。

コンパイルというイメージが湧かないのですが・・・。

コンパイル前

+----------------------------+
|テキストで記述されたポリシー|
+----------------------------+

コンパイル後

+----------------------------+
|ポリシーファイルのバージョン|
+----------------------------+
|データ部のMD5SUM(バイナリ)|
+----------------------------+
|データ部(バイナリ)        |
+----------------------------+

のようなイメージなのでしょうか?
でも、このままでは「データ部のMD5SUM」と「データ部」を一緒に改ざんされてしまいます。

データ部はカーネルによって生成されますが、それ以外にもポリシーエディタを用いた変更が発生します。
仮に、データ部の改ざんが行われていないことを検証させるとしても、
データ部に問題(サポートされていない構文や不適切な値)が無いことは保証できないと思います。

改ざん防止の仕組みを作りこむかどうかにかかわらず
カーネル内でバイナリデータの中に問題が無いかどうかを検証する必要があると思います。
テキストをパースするよりかは高速に処理できるかもしれませんが、
ポリシーをカーネル内に読み込んだ後で検証する必要性は変わらないと思います。




tomoyo-dev メーリングリストの案内
Zurück zum Archiv-Index