KASLR
KASLR とは何ですか?
KASLRKASLR(カーネル ASLR)は起動ごとにカーネル基底とモジュール配置を乱数化し、攻撃者が固定カーネルシンボルに依存したローカル権限昇格を行えないようにします。
KASLR は ASLR をカーネルに拡張する仕組みで、カーネルイメージ、モジュール、vmalloc 領域、physmap、スタックなどが起動ごとに乱数オフセットでロードされます。Linux は 2014 年に基本機能を導入し、Meltdown 対策の KAISER/KPTI で強化、Windows も Vista 以降に搭載し Windows 10 で改善が続いています。カーネルは通常単一のアドレス空間を共有するため、ポインタの一つの漏洩でも KASLR は破られやすく、キャッシュや TLB、プリフェッチ、投機実行のサイドチャネルでオフセットが復元可能であることが研究で示されています。KASLR は SMEP/SMAP、KPTI、kCFI に加え、/proc や dmesg の厳格な制限と組み合わせて運用するのが効果的です。
● 例
- 01
Linux が起動ごとに 1 GiB 整列の乱数オフセットでカーネル基底を移動する。
- 02
Windows 10 が起動ごとに ntoskrnl.exe のロードアドレスを乱数化する。
● よくある質問
KASLR とは何ですか?
KASLR(カーネル ASLR)は起動ごとにカーネル基底とモジュール配置を乱数化し、攻撃者が固定カーネルシンボルに依存したローカル権限昇格を行えないようにします。 サイバーセキュリティの アプリケーションセキュリティ カテゴリに属します。
KASLR とはどういう意味ですか?
KASLR(カーネル ASLR)は起動ごとにカーネル基底とモジュール配置を乱数化し、攻撃者が固定カーネルシンボルに依存したローカル権限昇格を行えないようにします。
KASLR からどのように防御しますか?
KASLR に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。
KASLR の別名は何ですか?
一般的な別名: カーネル ASLR。