[jsosug:00139] Re: AKARI 1.0 をリリースしました。

Back to archive index

KaiGai Kohei kaiga****@kaiga*****
2010年 10月 11日 (月) 13:56:47 JST


海外です。

>> これも、正式採用を目指すのでしょうか。
> 
> いいえ、 AKARI はメインラインにマージされることはあり得ません。
> LSMの人たちがLSMを悪用/乱用されないようにするために行った修正
>http://lkml.org/lkml/2007/7/14/91 http://lkml.org/lkml/2010/2/26/239 )に
> 対して、「そんな修正を行ったところでカーネルモードで動作するコードなら誰でも
> LSMをハイジャックできるのだから無駄無駄ぁ」ということを実際のコードで証明
> してしまっている訳ですから。
> 
一応フォローしておくと、モジュールのロード時に「安全と認めたカーネルモジュール
だけをロードできる」という事になっているので、出所の怪しいモジュールはそもそも
カーネルに入れてもらえない事になります。

もっとも、システムのセキュリティ管理者が、そういったカーネルのお作法を確信犯的
に無視するモジュールをロードしてしまえばお仕舞いなので、LSMをビルトイン関数専用
にしても、あまり意味のある修正ではないですね。確かに。


ちらっとシンボル解決の部分を見ましたが、苦労の跡が偲ばれます。
ただ、プラットフォームによっては変態的な関数ポインタのフォーマットを持っているので、
注意が必要です。

(もう5年も前の事なので細部がちょっとあやふやですが…。)
昔、Itanitum (ia64) というプロセッサを扱っていたんですが、そこでは関数ポインタが
以下のようなフォーマットを持っていました。

struct {
    unsigned long    segment;    /* kernel text なら 0xa0000000 00000000 固定 */
    unsigned long    addr;       /* いわゆる、/proc/kallsyms に出るような値 */
} p;

で、関数ポインタの指すアドレスは &p.addr なんですが、その一つ前のワードに適切な
セグメント値が入っていないと、正しく関数をコールできません。

この辺はまぁ、、、自力でシンボル解決する以上、致し方ないというか…。

以上、マメ知識でした。
-- 
KaiGai Kohei <kaiga****@kaiga*****>




Jsosug-users メーリングリストの案内
Back to archive index