Shared-Memory
Grsecurity 主題模式 x
我正在對 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 有什麼好處,它對哪段程式碼有影響?
根據 Brad Spengler 的說法,主題模式 x 僅適用於 System V 共享記憶體,請參閱http://forums.grsecurity.net/viewtopic.php?f=5&t=3935。最重要的是,除非對正在考慮的二進製文件禁用 MPROTECT,否則 PaX 會觸發。