저는 Hardened Gentoo에서 Grsecurity에 대해 연구를 하고 있습니다.http://en.wikibooks.org/wiki/Grsecurity. 좀 더 구체적으로 말하면 주제 패턴 x가 영향을 미치는 예를 찾으려고 합니다.
위키에 명시된 바와 같이: 테마 모드 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 공격이 발생한다는 것입니다.