[tomoyo-users 113] Re: 強制モードのままで追加学習の仕方

Zurück zum Archiv-Index

Tetsuo Handa from-****@I-lov*****
2006年 9月 24日 (日) 23:50:13 JST


 熊猫です。



> > ドメイン単位でモードを持たせるようにすることは簡単に実装できますが、
> ドメイン単位より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 メーリングリストの案内
Zurück zum Archiv-Index