O Linux não possui um bit especial na tabela de páginas de processos para impedir que as instruções sejam executadas na pilha, impedindo, assim, os ataques de estouro?

1

Então, o cara neste vídeo:

link

transbordou a pilha, adulterou o endereço de retorno, apontou na pilha e copiou o código executável na pilha com um recibo de NOP

mas eu pensei que todos os sistemas linux modernos, incluindo os Debian, têm uma defesa contra isso usando um tipo de bit NX (não-executável) na tabela de páginas e usando as instruções de parada para trabalhar na pilha? ou estou faltando alguma coisa?

    
por John P 29.09.2018 / 12:15

2 respostas

2

Páginas não executáveis (NX-bit) são um recurso de hardware. Permite que o sistema operacional marque quais páginas podem ser executadas. Falha no processador se o programa tentar executar código na página de memória não executável.

Além disso, se a pilha é / não é executável, depende também das opções do compilador (e do binário resultante). As distribuições Linux modernas permitem muitas técnicas de proteção para binários de espaço do usuário, como pilhas não executáveis, canários de pilha, randomização de layout de espaço de endereço. Por exemplo, endurecimento do espaço do usuário do Ubuntu .

É possível possível compilar seus binários com uma pilha executável e sem canários de pilha para tornar possível o estouro de pilha, como foi feito para o exemplo de vídeo (não foi possível ver o programa compilado / quais opções foram usadas, mas por padrão o gcc não deve habilitar pilhas executáveis para um programa tão simples).

Além disso, o SELinux (e outros Módulos de Segurança do Linux) também podem ser configurados para impedir que o sistema execute binários que exijam memória executável + gravável (heap ou pilha).

    
por 29.09.2018 / 12:42
1

O bit NX foi introduzido apenas na arquitetura x86_64, não existe nos processadores Intel / AMD de 32 bits. Claro, praticamente todo mundo está rodando PCs de 64 bits hoje em dia, mas ninguém parece ter informado os blogueiros e vloggers por aí que ainda insistem em explicar as coisas no contexto do velho mundo 386.

    
por 29.09.2018 / 13:01

Tags