私はHardened GentooでGrsecurityについて研究しています。http://en.wikibooks.org/wiki/Grsecurity。より具体的には、トピックパターンxが影響を与える例を見つけようとします。
Wikiに記載されているように:テーマモードx:このテーマのために実行可能な匿名共有メモリを許可します。
今カーネルは拒否されます。
mem = mmap(NULL, MAP_SIZE, PROT_WRITE|PROT_EXEC, MAP_ANONYMOUS | MAP_SHARED, -1, 0);
また
mem = mmap(NULL, MAP_SIZE, PROT_WRITE, MAP_ANONYMOUS | MAP_SHARED, -1, 0);
mprotect(mem, MAP_SIZE, PROT_EXEC);
あるいはその逆も。一方、
mem = mmap(NULL, MAP_SIZE, PROT_READ|PROT_EXEC, MAP_ANONYMOUS | MAP_SHARED, -1, 0);
うまくいきます。
上記のすべての場合、grsecが有効になっているかどうかは重要ではなく、そうであればトピックモードxが設定されているかどうかは重要ではありません。カーネルは共有メモリへの書き込みを可能にしません。実行可能です。
それでは、テーマモードxは何に使用され、どのコード部分に影響しますか?
答え1
Brad Spenglerによると、テーマモードxはSystem V共有メモリでのみ動作します。http://forums.grsecurity.net/viewtopic.php?f=5&t=3935。最も重要なのは、検討中のバイナリに対してMPROTECTが無効になっていないと、PaX攻撃が発生することです。