Tetsuo Handa
from-****@I-lov*****
2011年 11月 19日 (土) 20:47:02 JST
早間義博 wrote: > ファイルに対する規則を個人的な好みに合う規則に書き直すプログラム > で、現在の 2.4 から 2.5 にあげたときに「労せずに今と同じレベル」 > の設定に直すのが目的です。(この件につて攻撃側としての知識がな > いので悩みが多いのです) TOMOYO 2.5 は TOMOYO 2.4 に対してネットワークと環境変数に関する構文が追加された だけであるため、 TOMOYO 2.4 用のポリシーは /etc/tomoyo/profile.conf を修正する だけで TOMOYO 2.5 でも使えます。 tomoyo-tools-2.5 に含まれている /sbin/tomoyo-init は、 /etc/tomoyo/profile.conf の PROFILE_VERSION が 20100903 の場合、 20110903 に書き換えた上で自動的に CONFIG::network={ mode=disabled } と CONFIG::misc={ mode=disabled } を追加する ようになっています。 > この説明は、私の観測と合致していないように感じますので今少しご説明 > 下さい。 キャッシュファイルシステムやネットワークファイルシステムなど、カーネル空間で 動作しているファイルシステムドライバからのアクセス要求によりファイルの作成や 読み書きが行われる場合には、 <kernel> ドメインに file read などが追加されます。 (これらのファイルシステムドライバはカーネルスレッドを生成して動作するため、 カーネルのプログラムが動作するドメインである <kernel> ドメインで発生する アクセス要求として扱われます。) > (2) の結果で気がついたのですが、read write 対象として > <kernel> > に追加されたファイルは、はっきりとは言えないのですが(ここが後悔) > ネットワークファイルであったように思います。ネットワークファイル > 以外は入っていない(このことを断言できません)ようです。 ネットワークファイルとは、ネットワークファイルシステム上のファイルという意味で 使われているんですよね?そうであれば、 <kernel> ドメインにそのファイルシステム 上のファイルに対する作成や読み書きが行われていることが観測されるのは仕様です。 (本当はユーザ空間からのアクセス要求とファイルシステムドライバからのアクセス 要求とを区別したいのですが、そのような機構がカーネルには存在しないため区別 できません。 TOMOYO は xattr を使わないという点においてはファイルシステム 非依存なのですが、ファイルが置かれているファイルシステムによっては、プログラム からのアクセス要求に対するアクセス許可だけでなくファイルシステムドライバからの アクセス要求に対するアクセス許可も与えなければいけないという点においては ファイルシステム依存があります。 Ubuntu の Live CD では UnionFS というファイル システムが使われているため、 TOMOYO で観測すると UnionFS のファイルシステム ドライバからのアクセス要求も観測されてしまうのです。) > (2) の機械でコンパイル(distcc を使用)したバイナリを /ptg/binpkgs > に作成しこのパッケージを (3) でも使用しています。パッケージ作成 > 時の情報は <kernel> に採取されていません。これは /ptg/binpkgs > が (2) の機械にあり、ネットワークファイルを経由していないからだ > と思われます。 ネットワークファイルシステムなどを経由しないアクセス要求であれば、 <kernel> ドメインで観測されることは無い筈です。 > distcc の情報は <kernel> に採取されていません。ネットワークファ > イルを経由していないからだと思われます。 これも同様です。 > (1) ホスト1 > <kernel> > 0: file read @ANY_PATHNAME > 1: use_group 0 > file read だけが追加され、読み込みファイルとして emerge の対象と > なった(gentoo などの方言でしょうか)ファイルが並んでいました。 > テーブルオーバーをおそれて(300 ファイルくらいありました、安易 > に書き直したのを、後悔しています) > file read @ANY_PATHNAME > に置き換えてしまいました。 ネットワークファイルシステムを経由しているのは /ptg/Win/ 以下ですよね? <kernel> ドメインで観測されるのはネットワークファイルシステムなどを 経由したアクセス要求のみですので、 @ANY_PATHNAME ではなく /ptg/Win/ 以下に 限定できると思います。