Tetsuo Handa
from-****@i-lov*****
2006年 2月 23日 (木) 21:04:11 JST
version 1.0.2 公開後、アクセス許可の拡張が行なわれています。 version 1.0.2 まではファイルやディレクトリに対するアクセス許可の粒度は read/write/execute の3種類のみでした。 そのため、 write 権限の中には open(O_WRONLY) open(O_RDWR) open(O_TRUNC) open(O_CREAT) sysctl(WRITE) の他に mkdir rmdir unlink mksock mkfifo mkchar mkblock link symlink rename create truncate が含まれていました。 しかし、あるファイルへの write 権限があればそのファイルを削除して同名の異なるファイルを 作成できてしまうのは嬉しくないので、次のバージョン(1.0.3 or 1.1 ?)では write 権限は open(O_WRONLY) open(O_RDWR) sysctl(WRITE) だけを指すようにして、新規に allow_mkdir allow_rmdir allow_unlink allow_mksock allow_mkfifo allow_mkchar allow_mkblock allow_link allow_symlink allow_rename allow_create allow_truncate という(細分化された書き込み)権限を導入する予定です。 また、 /root/security/mapping.txt を導入し、上記の権限をどのようにチェックするかも 指定できるようにする予定です。以下は指定例です。 create=generic-write unlink=generic-write mkdir=mkdir rmdir=rmdir mkfifo=mkfifo mksock=mksock mkblock=mkblock mkchar=mkchar truncate=generic-write symlink=symlink link=link rename=rename generic-write が従来の read/write/execute の write に相当します。 全項目に generic-write を指定すれば従来と同様の振る舞いをします。 no-check を指定すればそのパーミッションをチェックしません。 詳細に制御したい場合は個別のアクセス許可でチェックし、 大まかに制御したい場合は generic-write でチェックします。 既に実装とフック部分の修正は完了しており、権限を細分化しても 学習モードを使うことによりポリシー策定の負担はあまり増えないことを確認済みです。 以上、開発状況のお知らせでした。 ここから先はご意見募集です。 上記の /root/security/mapping.txt では 「アクセス許可の種別毎にどのようにチェックするかを指定」 していますが、それよりも 「ドメイン毎にどのようにチェックするかを指定」 できるほうが嬉しいというご意見はありますでしょうか? 例えば、「<kernel> /usr/sbin/sshd /bin/bash」ドメイン以下は generic-write でのチェックを行い、 「<kernel> /usr/sbin/httpd」ドメイン以下は 個別のアクセス許可によるチェックを行ないたいというようにです。 実装は容易(ドメイン属性で処理分岐するだけ)なので、 (ニーズがあるならば)検討したいと思います。 希望するポリシー構文(例えば exception_policy の中で 「use_strict_check <kernel> /usr/sbin/httpd」と指定する)と 一緒にお知らせください。 ニーズが無ければ「アクセス許可の種別毎の指定」を 次のバージョンに採用したいと思います。