web-dev-qa-db-ja.com

LinuxカーネルはカーネルメモリにDEPを使用しますか?

Linuxカーネルは、カーネルメモリに内部的に [〜#〜] dep [〜#〜] を使用していますか?言い換えると、Linuxカーネルは、カーネルが(カーネルモードで)実行されているときに、メモリ内のすべての実行可能な場所が書き込み不可であり、メモリ内のすべての書き込み可能な場所が実行不可であることを保証するよう注意していますか?

私は検索を試みましたが、LinuxでのDEPに関するほとんどの参照はユーザーレベルのアドレス空間にDEP保護があるかどうかを参照しているため、およびLinuxカーネルコンテキストでは、ファイル拡張子として「dep」。 Linuxカーネルは現在、カーネルメモリにASLRを使用していないことを最近知りました。これは、さまざまな理解できる理由により、DEPを使用しているかどうか疑問に思いました。

8
D.W.

"RO and NX" の使用の拡大によると、Linuxカーネルはそれをサポートするアーキテクチャ(armやAMD64などの32ビットではない)にDEPを適用しますx86)カーネルバージョン2.6.38以降(RHEL/CentOSが同様のパッチをカーネルに適用したかどうかはわかりません—多くの DEPでの作業 はRed Hatが起源です)。

ほとんどのW ^ Xの原則に従いますが、完全ではありません。一部のページはW + Xのままです。 (x86は好きではありませんか?)

DEPは、メインラインに到達するずっと前に grsecurity パッチに含まれていました。