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

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

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

Fazendo o kernel 2.6 resolver o problema da montagem de discos USB

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

Rumo a um pinguim móvel

Entendendo a configuração de rede para RedHat e similares

Leitura recomendada

Compilando o kernel do Slackware em 10 etapas

Gerência e criação de módulos do kernel

Compilando um kernel Linux

kernel Linux otimizado - Compilação e teste

Compilar e habilitar os módulos ip_table e iptable_nat no kernel 2.6.26 no Debian Linux

  
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