Tetsuo Handa
from-****@I-lov*****
2009年 3月 25日 (水) 22:41:21 JST
熊猫です。 1.6.7 に向けての開発状況( revision 2315 )です。 http://lists.sourceforge.jp/mailman/archives/tomoyo-users/2009-February/000575.html での 状況報告以降、以下の変更が行われています。 カーネルに関して (5) アクセスログ機能を有効にするかどうかを指定するための CONFIG_TOMOYO_AUDIT オプションが追加されます。 宍道さんが RAM 4MB という環境へ TOMOYO を導入されました。 http://d.hatena.ne.jp/hshinji/20090302#p2 RAM が 4MB しかない環境でカーネル内にアクセスログを貯めこんでおく余裕は ありません。ですから、 /proc/ccs/grant_log および /proc/ccs/reject_log の 出番も無いことでしょう。なので、カーネルコンフィグで切り替えできるように しました。 (6) /proc/ccs/profile には設定した項目だけが表示されるようになります。 従来は、全ての「機能=モード」組み合わせが表示されていました。しかし、 MAC_FOR_FILE しか設定していないのに MAC_FOR_CAPABILITY なども表示されるのは 鬱陶しいので、設定した項目だけを表示するように変更しました。 (7) ioctl() に対するアクセス制御( MAC_FOR_IOCTL )が追加されます。 某案件で、「 IP アドレスの変更操作を禁止する」という要件がありました。 /sbin/ifconfig コマンド等の実行を禁止することで対処しようと考えて いましたが、 ioctl() の制御を追加するほうがより確実であるということで ioctl() に渡されるコマンド番号を検査するようにしました。 構文は allow_ioctl 対象となるパス名 コマンド番号 です。 (8) ソケットのパス名表記が変更されます。 従来はソケットのパス名を socket:[\$] と表記していました。ソケットは open() で開いたり truncate() で切り詰めたりすることが不可能なので、 今まで /proc/ccs/domain_policy 内に登場したことはありませんでした。 しかし、ソケットに対して ioctl() を適用することは可能です。 今回 ioctl() の制御を追加するのにあたり、ソケットの種別を指定できる方が より厳密な制御を行えるので、ソケットのパス名を socket:[family=\$:type=\$:protocol=\$] という形式で表現するように変更しました。 (9) コンパイル時に「ドメイン遷移を初期化するプログラム」を指定するための CONFIG_TOMOYO_BUILTIN_INITIALIZERS オプションが追加されます。 PCやサーバ向けのシステムでは /sbin/init というプログラムがあり TOMOYO Linux は /sbin/init が実行される際にポリシーをロードします。 しかし、組み込みシステムでは /sbin/init が存在しない場合があります。 /init しかないようなシステムでは、全てのプログラムが <kernel> ドメインで 動作することになってしまい、 TOMOYO によるドメイン分割のメリットを享受 できません。 そこで、 /init しかないようなシステムでは /init を実行することで <kernel> /init ドメインへと遷移することができるように、カーネルコンフィグで 「ドメイン遷移を初期化するプログラム」を指定できるようにしました。 (10) TOMOYO 1.6.6 以前の ccs-patch-\*.diff が使えなくなります。 2007年9月20日に TOMOYO 1.5.0 がリリースされてから1年半が経過 しました。 TOMOYO 1.5.x から TOMOYO 1.6.x への移行はカーネルとツールの アップデートだけで行えますし、カーネル 2.6.30 にマージされるであろう TOMOYO 2.2.0 は TOMOYO 1.6.x をベースに作成されていますので、 http://lists.sourceforge.jp/mailman/archives/tomoyo-users/2008-September/000487.html で 予告したとおり、今月末を以って TOMOYO 1.5.x に対するバイナリパッケージと ccs-patch-\*.diff のアップデートの提供を終了させていただきます。 なお、 (7) を実現するために ccs-patch-\*.diff の修正が発生したため、 TOMOYO 1.6.7 では TOMOYO 1.6.6 以前の ccs-patch-\*.diff が使えなくなりますので ご了承ください。 ツールに関して (5) 組み込み環境向けのポリシー編集エージェントが追加されます。 通常は ssh や telnet などでログインして ccs-editpolicy を実行することで ポリシーを編集することが可能です。しかし、 RAM が 4MB しかない環境で ccs-editpolicy を実行させるというのは負担が大きすぎます。 そこで、組み込み環境(あるいはエミュレータ環境)内で ccs-editpolicy-agent というエージェントプログラムを常駐させ、PC環境(あるいはホスト環境)から ccs-editpolicy ccs-loadpolicy ccs-savepolicy を実行できるようにしました。 組み込み環境向けに ncurses ライブラリを用意しなくて済むというメリットも あります。(いや、 ncurses ライブラリのクロスコンパイルに挫折したからと いうのが本当の理由です。(自爆)) (6) ccs-editpolicy で任意のディレクトリに保存されているポリシーファイルを 編集できるようになります。 従来、 ccs-editpolicy_offline は /etc/ccs/ ディレクトリまたは /etc/tomoyo/ ディレクトリにあるポリシーファイルを編集するようになっていました。しかし、 他の環境で作成したポリシーファイルを閲覧/編集したい場合、ディレクトリ名が 固定されているとそのディレクトリに(他の環境で作成した)ポリシーファイルを コピーしてやらなければならす、不便です。そのため、任意のディレクトリを 指定できるようにしました。 ccs-editpolicy_offline というプログラム名は消滅します。 TOMOYO 1.6.7 では、 ccs-editpolicy /etc/ccs/ で /etc/ccs/ に保存されているポリシーを、 ccs-editpolicy /etc/tomoyo/ で /etc/tomoyo/ に保存されているポリシーを、 ccs-editpolicy /home/kumaneko/192.168.1.1/ で /home/kumaneko/192.168.1.1/ に保存されているポリシーを、 ccs-editpolicy 192.168.1.2:1000 で ( 192.168.1.2:1000 で待機中の ccs-editpoilicy-agent 経由で) 192.168.1.2 の /proc/ccs/ あるいは /sys/kernel/security/tomoyo/ を 編集できるようになります。 TOMOYO Linux 1.6.7 のリリースは4/1を予定しています。 http://svn.sourceforge.jp/view/trunk/1.6.x/?root=tomoyo からダウンロードが 可能です。