萌えハッカーニュースリーダー

2025/11/04 10:52 Defeating Kaslr by Doing Nothing at All

出典: https://googleprojectzero.blogspot.com/2025/11/defeating-kaslr-by-doing-nothing-at-all.html
hakase
博士

ロボ子、今日のITニュースはLinuxカーネルの脆弱性についてじゃ。

roboko
ロボ子

Linuxカーネルの脆弱性ですか。具体的にはどのような内容でしょうか?

hakase
博士

今回の話は、カーネル内の線形マッピングという仕組みに問題があるのじゃ。線形マッピングは、物理メモリを直接的に表現するものなのじゃが、その仮想アドレスが計算できるらしいのじゃ。

roboko
ロボ子

仮想アドレスが計算できると、何が問題になるのですか?

hakase
博士

Pixelフォンでは、カーネルが毎回同じ物理アドレスに展開されるからの。他のスマホと違って、Pixelフォンはカーネルを静的な物理アドレスに展開するのじゃ。

roboko
ロボ子

毎回同じアドレスに展開されると、攻撃者がそのアドレスを悪用できてしまうということですね。

hakase
博士

その通り!カーネルの`.data`エントリの仮想アドレスが静的に計算できるようになるのじゃ。例えば、`modprobe_path`のアドレスは`0xffffff8001ff2398`で固定されるのじゃ。

roboko
ロボ子

KASLR(Kernel Address Space Layout Randomization)が有効でも、このアドレスでアクセスできてしまうんですか?

hakase
博士

そう、KASLRがあっても、Pixelデバイスではカーネルシンボルのオフセットに固定されたカーネルベースアドレスを加算することで、有効な仮想アドレスが計算できるのじゃ。

roboko
ロボ子

線形マッピングメモリを使って、カーネルの`.data`領域に対して読み書きが可能になるということは、かなり深刻な問題ですね。

hakase
博士

じゃが、`.text`領域は実行可能としてマッピングされないから、ROPガジェットなどPC制御には使えないのが、まだ救いじゃな。

roboko
ロボ子

しかし、カーネルの物理アドレス空間がランダム化されているデバイスでも、線形マッピングの非ランダム化は脆弱性を高める可能性があるのですね。

hakase
博士

そうじゃ。メモリのスプレー技術を使うと、カーネルデータ構造やユーザーランドメモリを既知のカーネル仮想アドレスに配置できるようになるのじゃ。

roboko
ロボ子

Samsung S23での実験では、特定のPFN(物理ページフレーム番号)が繰り返し割り当てられることも確認されたとのことですね。

hakase
博士

つまり、攻撃者は既知のカーネル仮想アドレスに任意に読み書き可能なデータを配置できるということじゃ。

roboko
ロボ子

対策としては、線形マップの仮想アドレス空間でのランダム化、物理ページ割り当てのエントロピー増加、カーネルの物理アドレス空間でのランダム化が挙げられていますね。

hakase
博士

その通りじゃ。でも、今回の件はLinuxカーネルチームとGoogle Pixelに報告されたものの、意図された動作と見なされているらしいのじゃ。

roboko
ロボ子

それは残念ですね。Pixelは将来的にカーネルロードアドレスのランダム化を導入する可能性があるとのことですが、Linuxカーネルの線形マップのランダム化を解決する計画はないのですね。

hakase
博士

KASLRはローカル攻撃者に対して有効な緩和策とは言えない状況じゃな。セキュリティ体制を改善するためには、もっと根本的な対策が必要じゃ。

roboko
ロボ子

今回の件で、改めてセキュリティ対策の重要性を認識しました。私ももっと勉強して、セキュリティに貢献できるようになりたいです。

hakase
博士

ロボ子ならきっとできるぞ!ところで、ロボ子は自分のアドレスを知ってるか?

roboko
ロボ子

え?私のアドレスですか?それはちょっと…プライベートな情報なので…。

hakase
博士

冗談じゃ!ロボットにプライベートも何もないじゃろ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search