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.654 ]

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

DHCP sem (quase :-D) mistérios

Utilizando os scripts SystemV a seu favor

Porque o RedHat 9 tem problemas com teclados US-International?

Rumo a um pinguim móvel

Linux, USB-IrDA, T300 on the rocks

Leitura recomendada

As incríveis aventuras de um RedHat 9 migrando para kernel 2.6

Ksplice - atualizando o kernel sem necessidade de reboot

Guerra Infinita, uma análise da Ciência da Computação

Compilando o Kernel do OpenBSD 4.3 (GENERIC)

Instalando kernel otimizado do Ubuntu no Asus eeepc

  
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