Shintaro Fujiwara
shint****@gmail*****
2010年 10月 11日 (月) 23:43:45 JST
OK, このような話題は、よくある話です。 権限を持っている人(団体)が決定権を持っていますから。 スモーリー(権限を持っている人)に直接言ってみるとか。。 僕も、F13には辟易してるんで。。 2010年10月11日15:30 Tetsuo Handa <from-****@i-lov*****>: > KaiGai Kohei さんは書きました: >> 一応フォローしておくと、モジュールのロード時に「安全と認めたカーネルモジュール >> だけをロードできる」という事になっているので、出所の怪しいモジュールはそもそも >> カーネルに入れてもらえない事になります。 > > 誰がどうやって安全と認めるのでしょう? > >> もっとも、システムのセキュリティ管理者が、そういったカーネルのお作法を確信犯的 >> に無視するモジュールをロードしてしまえばお仕舞いなので、LSMをビルトイン関数専用 >> にしても、あまり意味のある修正ではないですね。確かに。 > > アドレス直指定で呼び出せば non-GPL なコードでも EXPORT_SYMBOL_GPL() なものに > アクセスできてしまうので、 EXPORT_SYMBOL() を EXPORT_SYMBOL_GPL() に修正する > のもあまり意味が無いかと。いや、 AKARI は GPL なコードですけれど。(笑) > >> ちらっとシンボル解決の部分を見ましたが、苦労の跡が偲ばれます。 > > はい。 grsecurity の IRC で x86_64 への対処方法を教えていただきました。 > 一応 x86_64 で RHEL5 カーネルとバニラ 2.6.36-rc7 カーネルでの動作を確認したのですが、 > まだ他のバージョンを試していないので、とりあえず x86_32 専用ということでリリースしています。 > >> ただ、プラットフォームによっては変態的な関数ポインタのフォーマットを持っているので、 >> 注意が必要です。 >> >> (もう5年も前の事なので細部がちょっとあやふやですが…。) >> 昔、Itanitum (ia64) というプロセッサを扱っていたんですが、そこでは関数ポインタが >> 以下のようなフォーマットを持っていました。 >> >> struct { >> unsigned long segment; /* kernel text なら 0xa0000000 00000000 固定 */ >> unsigned long addr; /* いわゆる、/proc/kallsyms に出るような値 */ >> } p; >> >> で、関数ポインタの指すアドレスは &p.addr なんですが、その一つ前のワードに適切な >> セグメント値が入っていないと、正しく関数をコールできません。 >> > はい。「 itanium は strange だ」「 function descriptors というのを使っている」と > 教えてもらいました。私は IA64 な環境にアクセスできないので、 QEMU でテストすることに > なるかと思います。 > >> この辺はまぁ、、、自力でシンボル解決する以上、致し方ないというか…。 >> > LSMコミュニティがもっとオープンだとこんな奇妙な処理をしないで済むんですけどねぇ。 > 既存のコードでできるものは追加しないという方針なので、なんでも「 SELinux で実現できる。 > 設定方法を覚えろ。」「 netfilter で実現できる。設定方法を覚えろ。」になってしまうんですよ。 > 現実には SELinux や netfilter ではカバーできない要望は存在するし、誰もが設定方法を > マスターできるわけではないから、いろんな人がいろんなLSMモジュールを開発しているのに、 > カーネル本体に含まれていないLSMモジュールを使わせないというのは悲しい制約です。 > > _______________________________________________ > Japan secure operating system users group > users****@secur***** > http://lists.sourceforge.jp/mailman/listinfo/jsosug-users > -- http://intrajp.no-ip.com/ Home Page