Modo de assunto de segurança x

3

Estou conduzindo algumas pesquisas sobre o Grsecurity no Hento Gentoo, veja o link . Para ser mais específico, estou tentando encontrar um exemplo em que o modo de assunto x faça diferença.

Como dito no wiki: subject mode x: Permite a memória compartilhada anônima executável para este assunto.

Agora, o kernel rejeita

mem = mmap(NULL, MAP_SIZE, PROT_WRITE|PROT_EXEC, MAP_ANONYMOUS | MAP_SHARED, -1, 0);

bem como

mem = mmap(NULL, MAP_SIZE, PROT_WRITE, MAP_ANONYMOUS | MAP_SHARED, -1, 0);
mprotect(mem, MAP_SIZE, PROT_EXEC);

ou vice-versa. Por outro lado

mem = mmap(NULL, MAP_SIZE, PROT_READ|PROT_EXEC, MAP_ANONYMOUS | MAP_SHARED, -1, 0);

funciona bem.

Para todos os itens acima, não importa se o grsec está ativo ou não, e se estiver, não importa se o modo de assunto x está definido ou não - o kernel simplesmente não permite a memória compartilhada que é (ou foi ) gravável e executável.

Portanto: para que serve o modo de assunto x e para que parte do código faria diferença?

    
por countermode 04.04.2014 / 01:25

1 resposta

1

De acordo com Brad Spengler, o modo de assunto x se aplica somente à memória compartilhada do System V, consulte link . Além disso, o PAX ataca, a menos que o MPROTECT esteja desativado para o binário em consideração.

    
por 09.04.2014 / 00:46