2007年9月 1日

[selinux-users:01993] read/write時のパーミッションチェック(Re:[SELinux開発watch]情報フローに関する議論


中村です。

On Sat, 1 Sep 2007 11:43:39 +0900
"Shintaro Fujiwara" wrote:
Stephen Smalley氏
> そうすることによって、read/write の際に再度チェックする手間を省いているんだよ。
> read/write の再アクセスチェックは、ファイルリラベルしたり、ポリシを変更したりする替わりに行っていることなんだ。

> でも、実はそれはすべての場合を網羅している訳じゃないんだ。
> (すなわち、mmp'd ファイルや実行中のものは、そのチェックを省いているんだよ)
> revoke機能が使える状態になって、マージされたら、それを使うつもりだけどね。
> でも、それが使えるようになるかどうかはわからないよ。
> selinux_file_permissionをなくそうか、という議論も現在進んでいるんだ。
> ある状態だけで再チェックするというね。(open-timeチェックがかかってからの、ポリシのシーケンシャルナンバーが増えた場合だけとか、あるプロセスSID、ファイルSIDの場合だけとか)

ここに出てる話ですが、今Stephen Smalley氏と↓で議論中のものです。
http://marc.info/?t=118845343400001&r=1&w=2

SELinuxは、
ファイルを読み込みモードでopen→ファイルをreadシステムコールで読み込み
という処理の際、
open, read両方の時にアクセスチェックが発生します。
open時のチェックだけで十分じゃないかという気もするのですが、
実はread時にダブルチェックすることには意義があります。
例えば、open後に、ポリシーの変更があった場合、
read時にもチェックする意義があります。
open時には許可だったのが、read時には拒否になってるのかもしれないので。

↑で出てる、
selinux_file_permissionという関数は、readの時などに呼ばれるものです。
この中でSELinuxのパーミッションチェックなどが行われるのですが、
CPUによっては、結構重いことが発覚してしまいました。
なので、selinux_file_permissionの処理を
なるべく軽くしようと画策中です。

Yuichi Nakamura

投稿者 xml-rpc : 2007年9月 1日 23:37
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/63619
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。