ドメイン遷移さようなら??

ドメイン遷移も、「緩い」ポリシーならば隠蔽できる気がしてきた。
普通の場合、一つのプログラムにはドメインは一個しか割り当てない。
strictポリシだと、1つのプログラムにロール毎のドメインが割り当てられるけど。

つまり,
{
domain httpd_t;
program /usr/sbin/httpd;

allow /var/www/** r,s;
}
というSimplified Policyがあると、
(ここにはドメイン遷移は設定されているのが見えない)
domain_auto_trans(domain, usr_sbin_httpd_t, httpd_t)
というドメイン遷移に変換(domainは、全ドメインに付与される属性。domainはusr_sbin_httpd_tのexecuteは許可されてない)。
「/usr/sbin/httpdを実行可能なドメインは全て、/usr/sbin/httpdhttpd_tで動作させることができる」ことになる。

ドメインもさようなら?

さらにドメイン名も隠蔽可能か?
{
program /usr/sbin/httpd;
allow /var/www/** r,s;
}
というSimplified Policyがあると、
httpd_tという名前のドメイン(/usr/sbin/httpdから生成)が/usr/sbin/httpdに割り当てられる。
ここまでいくと、もはやAppArmorだ。

試しに実装してみたら、何か動いた。
が、ドメイン名自動生成の場合は、ドメイン名のコンフリクトが起こった場合えらいことになりそうなので、コンフリクト解消方法を考える必要がある。
こうなると、実行パーミッションも,
AppArmor風に「ix,px」みたいにしないといけないかな。

もうちょっと実験してみよ。

と、色々遊んでるうちにどんどん公開が遠ざかる(汗
研究レポートの〆切も危なくなってきたしorz