NPTL, Exec-Shield e outros palavrões que fazem seus programas crasharem

O que são NPTL, Exec-Shield e porque meus programas de uma hora para outra crasham adoidamente? Se você usa RedHat 9, Fedora Core 1, kernel 2.6 e/ou kernel 2.4 patcheado, seus problemas podem se resolver após a leitura deste artigo.

[ Hits: 21.639 ]

Por: Cesar Cardoso em 19/12/2003


Exec-Shield



Exec-Shield é uma nova feature de segurança, disponível para kernels 2.4 e 2.6; os patches para o kernel 2.4 e 2.6 estão em: O patch marca largos pedaços do código de um programa, incluindo aí o stack, não executáveis. Com isso, ele cumpre dois papéis:
  1. Protege contra toda a maléfica família Overflow: stack, buffer e function pointer (ponteiro de função). De quebra, acaba com uma das críticas do pessoal de BSD contra o Linux, a facilidade de crashar um kernel com buffer overflows :D
  2. Torna aleatório o ponto na VM onde o binário é carregado, com isso torna mais difícil a vida dos exploits que tentam acessar código ou dados para fins de ataque.
Mas como nem tudo na vida é perfeito, alguns programas não querem nem saber e saem crashando. E agora? O problema pode ser resolvido de diversas formas:

1) Você pode desabilitar o Exec-Shield apenas para o programa infrator, utilizando o programa 'setarch'. Utilizando a técnica do alias:

alias programa_crashento="setarch i386 programa_crashento"

2) Desabilitando o Exec-Shield, temporariamente ou direto.

2.1) Desabilitando temporariamente:
O arquivo /proc/sys/kernel/exec-shield controla o comportamento do Exec-Shield. Quando está em 0, o Exec-Shield é desabilitando. Então, como root, digite:

# cat 0 > /proc/sys/kernel/exec-shield

para desabilitar a partir do momento da digitação.

2.2) Desabilitando em tempo de boot:
Você pode utilizar o parâmetro de kernel exec-shield (exec-shield=0) ou então colocar kernel.exec-shield=0 em /etc/sysctl.conf. Reboote após as alterações, e o Exec-Shield será desabilitado.

Página anterior     Próxima página

Páginas do artigo
   1. NPTL
   2. Exec-Shield
   3. Palavras finais
Outros artigos deste autor

Windows CE/PocketPC com Linux, sim!

Rumo a um pinguim móvel

Distros nacionais em evolução: visão do Definity Linux CURRENT e do Kurumin beta

Máquinas virtuais

Para não se perder no mundo da memória Flash

Leitura recomendada

Instalando Slackware 10.2 em HDs SATA

Deixe seu console mais bonito com Bootsplash

Compilando kernel 2.6.11 no Slackware 10

Compilação de Kernel baseado na versão 2.6 para o LTSP 4.2

Mitigando Erro de Kernel: Neighbour Table Overflow

  
Comentários
[1] Comentário enviado por arknoid em 22/12/2003 - 16:52h

bahm blz de artigo cesar ficou bem tri e agora posso tentar rodar as tralhas que me encomodavam!
qualquer coisa vou te encomodar!

[2] Comentário enviado por PlainSpooky em 23/12/2003 - 16:34h

Só uma correção...

ao invés de "cat 0 > /proc/sys/kernel/exec-shield" usa-se "echo 0 > /proc/sys/kernel/exec-shield", uma distração boba que vez ou outra em também cometo. :)


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts