James Morris氏と会ってきた

少し古い話だが、先日James Morris氏(SELinuxのメンテナ)に会ってきた。彼はNetconf2006/Tokyoというイベントのために来日しており、「折角だから日本のSELinuxコア開発者とミーティングしませんか?」と持ちかけて、短時間ではあるが意見交換を行うことができた。同行したのは中村さんと面さん。忙しいところを足を運んでくれて多謝。

ミーティングのお題は、日米の最近の開発プロジェクトについて。
■ xattr/jffs2について
まず、実物が見えて楽しかろうということで、xattr/jffs2を使ってSELinuxをインストールしたZaurusを見せる。
Q. これってどこで売ってるの?
A. 秋葉原で買えるよ。(ミーティングはAkihabara Cross Fieldという建物で行った)
Q. OSは入れ替えたの?
A. Open Zaurusに手を加えて利用した。(製品として売られているのか気になったのだろう)
あと、OLPC(One Laptop Per Child)で利用したい(利用できる?)そうな。これは、500MHzのCPUと128MBのメモリ、512MBのFlash-ROMを搭載したコンピューターを発展途上国の子供たちに配布してDigital Divideを解消しようとするプロジェクト。セキュリティ対策としてSELinuxを利用したいが、そのためにはFlash-ROM上のファイルシステムにxattrの機能が必須だから、俺の仕事がとても役に立つということだ。
OLPCのサイトを見ると、確かにこんな記述がある。

Security: SELinux may be a way to protect against Day 0 attacks; as a large ecosystem of similar machines, it is something worth seriously worrying about.
ふむふむ。

PostgreSQLSELinux対応について
今、本家MLで提案しているPostgreSQLSELinux対応についての意見交換を行う。X-WindowシステムでもSELinux対応が進んでいるし、ユーザ空間アプリのSELinux対応というのは一つの流れだよという話。PostgreSQLのようなDBMSの他にも、MTAに手を加えてメールの流れを制御するような話を例に出していた。そういうのを考えているのかな。
Q. Polyinstantiationは考えているの?
A. 主キーとしてセキュリティコンテキストを含む複合キーを使えばいいのでは?
(→と、思ったけど、よく考えたらこれでは不十分。要検討。)
Q. OLS(Oracle Label Security)との違いは
A. あちらはラベル付けのEnforcingができない。例えば、updateやinsertでラベルを自分で宣言できてしまう。また、DB認証に依存している。
Q. クライアントの接続はUNIXドメインソケット限定?
A. TCP/IP越しでもgetpeercon()が差分を吸収してくれるはず。ローカルならUNIXソケットの方がベターだけど。

■ Labeled Networkingについて
Q. なぜIPsecとCIPSOという2つの異なるアプローチが提案されているのか?
A. CIPSOはレガシーな商用Trusted UNIXシステムとの相互接続性のため。
基本的にはIPsec(XFRM)を使ったLabeled Networkingを利用すべきとの事。IPsecの方はSELinuxのType Enforceラベルを運ぶことができるが、CIPSOは伝統的なMLSラベルを送信するものだとのこと。確かに、ソースを見てみるとCIPSOの実装はMLSのLow-Labelしか送信するようになっていない。
また、IPsecを利用した場合には、改ざんに対する頑強性がある。CIPSOはIPヘッダオプションにラベルを詰め込むため、パケットを改ざんされてしまうかもしれないとも。
Labeled Networkingが目的なら、IPsecの暗号化ポリシーはESPではなくAHを用いるべき。ESPはペイロード全体を暗号化するため、盗聴にも強いがパフォーマンスに劣るため。

他にも、中村さんの書いた日経LinuxSELinux記事や、SELinux Symposium 2007のことなど色々と。

ミーティングの終わった後、お腹が空いたので中村さん&面さんと四川料理を食べに行く。辛いものというのはデフォルトなのだろうか?杏仁豆腐をオーダーしたかったが、なんか気恥ずかしかったので断念w