t.pira
piras****@gmail*****
2006年 9月 25日 (月) 16:41:47 JST
熊猫殿 >> ドメイン単位よりAP単位ではどうでしょうか? > ... > このような要望に対処するには、ドメイン単位で指定できる必要があります。 確かにご指摘の要望を確保するにはドメイン単位にモードを持たせる必要がありますね。 しかし、自分の環境(FC4)で trusted_domain なし(<kernel>以下全てのドメインを学習)にして 学習モードにすると、ポリシー初期化>ブート>CUIログイン直後で 441 ドメインできています。 この例は全てのプロセスを守る場合の例であって、ドメイン数が多くなるのは当然ですが、、 これだけのドメインそれぞれにモードがあるもの少々多すぎる気がしましたが、どうでしょうか? また、例えば /sbin/modprobe からのドメイン遷移(TOMOYOの場合は遷移っていうのか?)している場合をみると <kernel> /sbin/modprobe <kernel> /sbin/modprobe /bin/bash <kernel> /sbin/modprobe /bin/bash /bin/mount <kernel> /sbin/modprobe /bin/bash /bin/true のような結果がでていますが、これらのドメインそれぞれが別のプロファイルであってもそれほど嬉しいことはないですよね。 そこで、プロファイルを減らす案を考えてみました。それは、 <kernel> /sbin/modprobe use_profile 0 <kernel> /sbin/modprobe /bin/bash <kernel> /sbin/modprobe /bin/bash /bin/mount <kernel> /sbin/modprobe /bin/bash /bin/true のような指定で <kernel> /sbin/modprobe から遷移するドメインは use_profile 0 指定を引き継ぐという方法です。 この方法だと、先に熊猫さんが httpd を例にして挙げられた内容も確保できますし、書き方によってはやはり プロファイル数を削減できますよ。 > で、試作してみました。 ... はっ、早いですね (^^; 個人的には、この暫定仕様のイメージも分かりましたし、ドメイン単位での プロファイルの切り替えができるとなれば、ドメインの追加学習がし易くなりますので、 嬉しい限りですが、他のTOMOYOを利用されている方々は如何思っていらっしゃるのでしょうか? 最後に、学習モードで新規に認識されるドメインはどのようにプロファイルと結びつけるのかが 新たな課題になっているように思えます。 ドメインとプロファイルを結びつけるとして、この関係までは自動学習で決定できませんよね。 現状の動かしただけで学習が終了する手順にもうワンステップ必要になるということでしょうね。 06/09/24 に Tetsuo Handa <from-****@i-lov*****> さんは書きました: > > 熊猫です。 > > > > > > ドメイン単位でモードを持たせるようにすることは簡単に実装できますが、 > > ドメイン単位よりAP単位ではどうでしょうか? > > 任意のドメインとそのドメイン以下のポリシーをまとめた単位をイメージしています。 > 何を基準にグループ化するかですね。 > <kernel> /usr/sbin/httpd を基点とした単位と > <kernel> /usr/sbin/httpd /var/www/cgi-bin/sample1.cgi を基点とした単位を > 混在されるとドメイン定義が重複して厄介ですし。 > <kernel> /usr/sbin/httpd 以下全体を新規学習させたい場合もあれば、 > <kernel> /usr/sbin/httpd と <kernel> /usr/sbin/httpd > /var/www/cgi-bin/sample1.cgi は > 学習済みなので <kernel> /usr/sbin/httpd /var/www/cgi-bin/sample2.cgi だけを > 学習させたいという場合もあるでしょう。さらに > <kernel> /usr/sbin/httpd /var/www/cgi-bin/sample1.cgi と > <kernel> /usr/sbin/httpd /var/www/cgi-bin/sample2.cgi が学習済みの状態から > <kernel> /usr/sbin/httpd だけを学習させたいという場合もあることでしょう。 > このような要望に対処するには、ドメイン単位で指定できる必要があります。 > > で、試作してみました。 diff によると 186 行削除 308 行追加なので > 細かい仕様を決めて作り直しても数百行程度の改修で実現できると思います。 > 現在の仕様としては > > ・ /proc/ccs/status の構文を拡張して 256 個までのプロファイルを定義できるようにする。 > > MAC_FOR_FILE=1 > > のようになっていたのを > > 0-MAC_FOR_FILE=1 > 1-MAC_FOR_FILE=3 > > といった具合に、先頭にプロファイル番号を付加する。 > > ・それに合わせて /root/security/profile\$.txt に以下のように複数のプロファイルを記述する。 > > 0-MAC_FOR_FILE=1 > 0-MAC_FOR_NETWORK=1 > 0-MAC_FOR_signal=1 > 1-MAC_FOR_FILE=3 > 1-MAC_FOR_FILE=3 > 2-MAC_FOR_FILE=2 > > ・ドメイン単位でプロファイル番号を保持させる。 > > アクセス許可のチェックはそのドメインに割り当てられているプロファイル番号で > 指定された制御レベルを使用する。 > > ・ /proc/ccs/policy/domain_policy の構文を拡張してそのドメインに割り当てる > プロファイル番号を指定できるようにする。 > > <kernel> /usr/sbin/httpd > use_profile 1 > 4 /var/www/html/\* > > <kernel> /usr/sbin/httpd /var/www/cgi-bin/sample1.cgi > use_profile 1 > > <kernel> /usr/sbin/httpd /var/www/cgi-bin/sample2.cgi > use_profile 0 > > <kernel> /usr/sbin/sshd > use_profile 0 > 1 /bin/bash > > <kernel> /usr/sbin/sshd /bin/bash > use_profile 2 > 1 /bin/cat > > ・プロファイルの追加は /proc/ccs/status への書き込みで行い、 > ドメインに割り当てられているプロファイル番号の変更は > /proc/ccs/policy/domain_policy への書き込みで行う。 > > となっています。なお、まだ確定仕様ではありません。 > > > > > status は /proc/ccs/status/{httpd | sshd} にAP別に管理できるようにすると、 > basename だと /etc/rc.d/init.d/httpd と /usr/sbin/httpd のように > 同名のファイルがある場合に対処できなくなりますね。 > > > --------------- sshd ポリシー ------------------------ > > <kernel> /usr/sbin/sshd > > 1 /bin/bash > > > > <kernel> /usr/sbin/sshd /bin/bash > > 1 /bin/ls > > > > --------------- httpd ポリシー ------------------------ > > <kernel> /usr/sbin/httpd > > 4 /var/www/html/\* > ユーザランドでやってくださいね〜。(^^; > カーネル内でやるとドメイン名衝突時の折衝が面倒+メモリ消費が増えますから。 > _______________________________________________ > tomoyo-users mailing list > tomoy****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/tomoyo-users > -------------- next part -------------- HTMLの添付ファイルを保管しました... 下載