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 .