Tetsuo Handa
from-****@I-lov*****
2007年 4月 1日 (日) 00:00:05 JST
お待たせいたしました。 ただいまからダウンロード可能です。 手順書は http://tomoyo.sourceforge.jp/ja/1.4/ にあります。 1.4-rc1 にはネットワークのアクセス許可を追加する際に アドレス種別をチェックしていなかったために、例えば 0:0:0:0:0:0:0:0 という IPv6 アドレスに対する許可を与えている場合に 0.0.0.0 という IPv4 アドレスに対する許可を与えることができないという 不具合が残っていました。そのため、 1.4-rc1 をダウンロードされた方は 再度 1.4 のダウンロードをお願いいたします。 1.4 では x86_64 もサポートできるようになりました。 1.3.2 までは 64 ビットカーネルで 32 ビットプログラムを動作させた場合に 一部のアクセス制御が行われないという不具合がありました。 以下、変更点の一覧です。 内容的には 1.3.3 が妥当なのですが、 ccs-patch-\*.txt を更新したことと、 それに伴い 1.3.2 用に作成したポリシーファイルを微修正する必要が生じたため、 何も知らずに 1.3.2 からバージョンアップしてしまわないように注意を促すために 1.4 としています。 ポリシーの構文としては以下のような変更が行われています。 /proc/ccs/status MAX_ACCEPT_FILES → MAX_ACCEPT_ENTRY に変更 MAC_FOR_BINDPORT → 廃止 MAC_FOR_CONNECTPORT → 廃止 TRACE_READONLY → 廃止 DENY_PIVOT_ROOT → RESTRICT_PIVOT_ROOT に変更 MAC_FOR_CAPABILITY::SYS_PIVOT_ROOT を追加 /proc/ccs/system_policy 「allow_pivot_root 新しいディレクトリ 古いディレクトリ」という構文を追加 /proc/ccs/domain_policy 「allow_bind ソケット種別 ポート番号」という構文を廃止 「allow_connect ソケット種別 ポート番号」という構文を廃止 「allow_capability SYS_PIVOT_ROOT」という構文を追加 「allow_network ソケット種別 操作種別 @グループ名 ポート番号」という構文を追加 アクセス許可が MAX_ACCEPT_ENTRY 個に達した場合、学習しきれなかったことを知らせるために quota_exceeded という警告を表示 /proc/ccs/exception_policy 「address_group グループ名 IPアドレス」という構文を追加 「address_group グループ名 IPアドレス-IPアドレス」という構文を追加 アクセス許可のチェック箇所としては以下のような変更が行われています。 do_execve() の実行時に #! で指定されたプログラム(スクリプトファイルのインタプリタ)に対する 読み込み権限をチェックするようにしました。 これにより、 bash スクリプトを実行する際には /bin/bash に対する読み込み権限が必要になります。 再学習が面倒であれば、例外ポリシーの allow_read で許可してしまうという方法もあります。 64 ビットカーネルで 32 ビット用プログラムを実行した場合に、実行許可のチェックとドメイン遷移が 行われていなかった問題と、マウント権限のチェックが行われていなかった問題を解消しました。 32 ビットカーネルに対しては影響はありません。また、 64 ビットカーネルで 32 ビットプログラムの サポートを使用していない場合も影響はありません。 ツールとしては以下のような変更が行われています。 ・ポリシーエディタの editpolicy に関して A キーで追加する時の入力履歴を画面毎ではなく全体で1つにしました。 ・ポリシーエディタで例外ポリシーに keep_domain <kernel> という指定がされている場合に 到達不能ドメイン( ! マーク)の表示が正しくなかったという不具合を修正しました、 ・対話的にアクセス要求の可否を指示する ccs-queryd に関して 「ポリシーに追加した上でアクセス要求を許可」する際に、 必要に応じてポリシーを編集できるようにしました。 ・ネットワークアドレスをグループ化できるように address_group という構文を導入しました。 これは、 1.3.2 で導入された path_group 構文と同様に、 IPv4/IPv6 アドレスを まとめるためのマクロです。