O que é o bit Execute Disable?

2

Eu li um artigo sobre o Execute Disable Bit (EDB) em CPUs x86 . Isso é mais conhecido como NX bit ; A Intel também chama isso de XD.

Portanto, o Windows XP suporta esse recurso de hardware. Yay! Mas como eu sei se a minha distribuição de Linux favorece isso?

Quais problemas podem ocorrer se esta opção do BIOS estiver ativada?

Onde eu leio mais sobre como esse recurso é tratado pelo Linux?

    
por Vorac 18.09.2013 / 09:56

2 respostas

1

how do I know if my distro of choice supports it?

Ele está no kernel desde 2004 , então, de uma forma ou de outra, todos eles fazem. Quando você está procurando, evite artigos antigos que se concentram no RedHat, já que aparentemente eles tinham um patch para isso cerca de um ano antes.

    
por 18.09.2013 / 10:17
3

Esse recurso é genericamente conhecido como NX bit . É um sinalizador em uma página de memória na MMU que marca a página como não sendo executável: se algum código pular dentro dela página, ocorre uma falha de segmentação (em termos unix).

Uma medida de higiene comum, em que há suporte, é marcar páginas graváveis como somente leitura, porque o código geralmente não é modificável. Isso não pode ser feito em todas as situações, por exemplo, evita a compilação just-in-time . O benefício é evitar que certos bugs causem o salto do programa para uma área de memória que contenha dados, o que é especialmente ruim quando esses dados são fornecidos pelo usuário, pois permite ao usuário injetar código e explorar o programa. Assim, o bit NX faz com que algumas explorações contra vulnerabilidades de segurança parem de funcionar. No entanto, como medida de segurança, não é uma panacéia: existem técnicas para contornar isso, como programação orientada a retorno . A principal utilidade do NX é detectar mais facilmente bugs.

Observe que o artigo que você cita é um pouco enganador. O NX impede que muitas explorações pré-existentes funcionem, mas as explorações e os vírus se adaptaram aos tempos. Outro erro nesse artigo é que o NX não é um recurso do BIOS, é um recurso da CPU (que alguns BIOS podem desativar; não sei de nenhum benefício em desativá-lo).

A página da Wikipedia tem um resumo detalhado sobre quais variantes unix fornecem algum suporte para o NX. Os aplicativos podem controlar se uma página é executável chamando a mmap chamada de sistema .

    
por 19.09.2013 / 02:43

Tags