KaiGaiの俺メモ: mod_selinux(その2)(情報元のブックマーク数)
初めて(ぇ KaiGaiさんのBlogを見た気がするwwwwwwwwwwwwwwwwww
これって、そこまで大きいものなのか・・・・PHPでユーザ認証→ユーザ情報取得→SE-Postgresにユーザ情報で接続→認証→表示なら、
あと、スレッドを先に立てちゃうので、DoSになるかもとか、おもった昨日でした。言わなかったけどw
コレの意味するところは、LAPPスタックの最上位(Webアプリ)から最下位(OS)までを、同じセキュリティ属性/同じセキュリティポリシーで一気通貫にアクセス制御できるようになる事。
http://kaigai.sblo.jp/article/16514214.html
ただ、Apacheモジュールとして実装されているperlやPHP、JServletをこの枠組みに組み込む事は、2つの技術的課題があり、まだ上手く行っていない。
てか、そうか、、、、そういうことか。うーん。Apacheのリクエストのコンテキスト、PHPのコンテキストってことか?!うーん、よくわかんないけど悩ましい
■その1:スレッドの扱い
http://kaigai.sblo.jp/article/16514214.html
SELinuxはプロセスに一個のセキュリティコンテキストを割り当てる。複数のスレッドが、それぞれに異なるリクエストを処理するような場合でも、個々のスレッドが別々のセキュリティコンテキストを持つ事を認めていない。
これは、Linuxカーネルがプロセスメモリ空間を通じたデータ交換を捕捉できないための制限事項と思われる。
■その2:誰が権限を戻すのか?
Apacheは、ユーザからのリクエストを受け付けるバックエンドプロセスを繰り返し使用するため、一度セキュリティコンテキストを設定したとしても、リクエストを処理した後、次のリクエストを受け付けるために元のセキュリティコンテキストに戻さねばならない。
しかし、setexeccon()の場合と違い、元に戻すのは自分自身。つまち、これを許すことはWebアプリの脆弱性を突いて権限昇格を許す事と同義である。ああ、困った困った。