Atsushi SAKAI
sakai****@jp*****
2008年 10月 29日 (水) 21:39:34 JST
海外様 ありがとうございました。 簡単な資料は無いとあきらめて、libselinuxのコードを 読んでよく分かりました。 thread/child-domain assignmentも、ポリシーの構造体に ちょっと追加しているようですね。 読んで、気になった点 libselinuxは、Python, Ruby Bindingsを提供 libsepol,libsemanageは、Python Bindingsのみ提供 getcon関数やgetexeccon関数は、Cのプリプロセッサ(##演算子)で生成 ラベルの取得関数は、三つあるファイル、メディア、Xの3種類 前から疑問に思っていたが、各パッケージにREADMEがない。 以上 ありがとうございました。 酒井@ふじつう KaiGai Kohei <kaiga****@kaiga*****> wrote: > 海外です。 > > > SELinuxのアクセス制御をアプリケーションに適用する場合の > > 何か良い資料って無いものでしょうか? > > もしあったらお教えください。 > > そういった資料は見た事がないです。ただ、そんなに難しい話ではないのです。 > > SELinuxのアクセス制御というのは、最終的には、セキュリティポリシーが > 『誰が(Subject)、何に(Object)、何をできる(Action)』の組み合わせを、 > 許可しているか否かという点に落ち着きます。 > > 従って、SELinuxのアクセス制御をアプリに適用する場合には、アプリ側から > カーネルに『"○○が□□に△△したい"と言ってるんだがどうよ?』的な > 問い合わせを行い、その返事に基づいて、プログラムの実行を制御してやれば > 良いわけです。 > > そのための API が libselinux に定義されていまして、 > > int security_compute_av(security_context_t scon, <- 誰が(Subject) > security_context_t tcon, <- 何に(Object) > security_class_t tclass, <- 何をする(Action) > access_vector_t requested, > struct av_decision *avd); <- カーネルからの回答 > > これを使って、カーネル側に問い合わせを行います。 > で、返り値の avd->allowed に目的のパーミッションのビットが立っているか > 否かを検査します。 > > SE-PostgreSQLなんかは、この仕組みのお化けみたいなもんですね。 > > > > 付記:libvirt-MLでJames Morrisが > > "thread/child-domain assignmentも対応しないと" > > と言っていたわりには、今回のパッチには入っていないし > > こちらは、アプリ側から使う API は変更なしなので、どちらかというと、 > カーネル (v2.6.28待ち) と、セキュリティポリシーの対応待ちといった > 具合ではないでしょうか。 > この辺は、来週のセキュアOS塾でもお話しする予定です。お楽しみに。 > > では > -- > KaiGai Kohei <kaiga****@kaiga*****> > > _______________________________________________ > Japan secure operating system users group > users****@secur***** > http://lists.sourceforge.jp/mailman/listinfo/jsosug-users