[jsosug:00036] Re: SELinux を用いたアプリケーションの作成についてよい参考資料は無いでしょうか?

アーカイブの一覧に戻る

KaiGai Kohei kaiga****@kaiga*****
2008年 10月 25日 (土) 00:18:05 JST


海外です。

> 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*****>




Jsosug-users メーリングリストの案内
アーカイブの一覧に戻る