PaX: Solução eficiente para segurança em Linux

O PaX é um patch para kernel que vem para acrescentar dezenas de melhorias ao sistema operacional no que diz respeito segurança. Veremos quais as principais caracteristicas deste fantástico sistema, como ele atua, suas principais features e mostraremos alguns testes realizados mostrando sua eficácia em proteger o buffer do nosso box Linux. Enjoy!

[ Hits: 67.021 ]

Por: Anderson L Tamborim em 05/06/2004 | Blog: http://y2h4ck.wordpress.com


Adicionando o PaX ao nosso sistema



O PaX é um patch que devemos adicionar em nosso kernel. Faz-se necessário para esta parte conhecimento em compilação do kernel, se você não possui tal, fique a vontade para ler o resto do artigo, porém. não irei me ater a ensinar como fazer a compilação existe farta e ampla documentação na internet visando a compilação.

Iremos utilizar o kernel 2.4.26, que é a última versão estável do kernel do Linux para utilizarmos (no período em que foi escrito este artigo).

Uma vez baixada a versão do kernel que iremos utilizar e supondo que você já configurou devidamente o seu kernel como sempre faz, iremos agora mostrar os passos de como adicionar o PaX nele.

Baixaremos a versão do PaX disponível para nossa versão do kernel. Visite http://pax.grsecurity.net e baixe o arquivo pax-linux-2.4.26-200404151725.patch, ele será o que iremos utilizar.

Baixe também o arquivo chpax-0.6.tar.gz, ele será extremamente útil para configurações necessárias em nosso sistema.

Aplique o patch em seu kernel com o comando:

# patch -p0 < /path/to/pax-linux-2.4.26-200404151725.patch

Após ter adicionado o patch, vamos dar uma olhada novamente na configuração de nosso kernel, para tanto utilize "make menuconfig". Você perceberá que uma nova opção apareceu no menu principal:

PaX options --->


Assim que você selecioná-la aparecerão 3 sub-menus:

 PaX Control  --->                                          
 Non-executable pages  --->                              
 Address Space Layout Randomization  --->


Acesse os 3 sub-menus e selecione todas as opções que encontrar, assim você terá habilitado todas as funções que o PaX pode lhe oferecer.

Muito bem, tendo feito isto basta compilar o seu kernel normalmente como costuma fazer. E voi-lá, terá o seu kernel com o PaX.

Agora teremos que adicionar o pacote chpax-0.6.tar.gz, para tanto vamos copiar ele para /opt e lá vamos descompactá-lo:

$ tar -xzvf chpax-0.6.tar.gz
$ cd chpax-0.6/
$ ls
.          Makefile  aout.o   chpax.c  elf32.c  elf64.o  io.c
..         README    chpax.h  elf32.o  flags.c  io.o
Changelog  aout.c    chpax.1  chpax.o  elf64.c  flags.o


Use:

$ make
$ su
# make install


e pronto, terá instalado em seu sistema o chpax.

Vamos dar uma olhada panorâmica no executável que instalamos:

$ chpax
chpax 0.6 .::. Manage PaX flags for binaries
Usage: chpax OPTIONS FILE1 FILE2 FILEN ...
  -P    enforce paging based non-executable pages
  -p    do not enforce paging based non-executable pages
  -E    emulate trampolines
  -e    do not emulate trampolines
  -M    restrict mprotect()
  -m    do not restrict mprotect()
  -R    randomize mmap() base [ELF only]
  -r    do not randomize mmap() base [ELF only]
  -X    randomize ET_EXEC base [ELF only]
  -x    do not randomize ET_EXEC base [ELF only]
  -S    enforce segmentation based non-executable pages
  -s    do not enforce segmentation based non-executable pages
  -v    view current flag mask 
  -z    zero flag mask (next flags still apply)

The flags only have effect when running the patched Linux kernel.


Temos as principais opções do PaX para serem selecionadas logo acima, em geral precisaremos utilizar o "-s" para non-executable e o "-p" para paging do non-executable.

Logo de cara quando você bootar o seu sistema com o PaX carregado você verificará que o X não inicia mais... isso porque o X utiliza páginas que o non-executable bloqueia. Portanto temos que liberar o Xfree para iniciar com o comando:

# chpax -sp /usr/X11R6/bin/XFree86

Isso será o suficiente para seu X voltar a iniciar normalmente.

Agora iremos fazer alguns testes com o PaX e ver o que ele pode fazer para proteger o nosso sistema.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Principais características do PaX
   3. Adicionando o PaX ao nosso sistema
   4. PaX: prova de fogo
   5. Utilizando o paxtest
   6. Considerações finais
Outros artigos deste autor

Libsafe: Protegendo Linux contra Smashing Overflow

OpenVZ: Virtualização para servidores Linux

Análise Forense - Aspectos de perícia criminal

Análise passiva (parte 2)

Security Hacks: Linux & BSD

Leitura recomendada

Estrutura do Iptables

Instalação do certificado digital token utilizado pela OAB-SP no Fedora 39

Labrador, um detector de intrusos

Bypass de firewall com tunelamento por DNS

Wireshark - Artigo

  
Comentários
[1] Comentário enviado por cvs em 05/06/2004 - 09:47h

essas ultimas versoes do grsecurity ja estao com o PaX integradas, se bem que o grsecutiry esta com os dias contados por falta de patrocinio.

[2] Comentário enviado por removido em 05/06/2004 - 19:27h

Meus parabens, vc tem um conhecimento sobre GNU/Linux em materia de seguranca impar, e bom ter um
perito como vc no nosso grupo

[3] Comentário enviado por ryu em 05/06/2004 - 22:37h

y2h4ck continue escrevendo mais artigos pq os seus detonam

[4] Comentário enviado por naoexistemais em 06/06/2004 - 20:24h

Caro Anderson,

Continue assim pq os invejos estão doidos..rsrsrsrs

Parabens..

[5] Comentário enviado por fcc em 07/06/2004 - 09:13h

Meus parabens...otimo artigo...continue sempre assim q vc vai longe...


[ ]'s

[6] Comentário enviado por cvs em 07/06/2004 - 09:15h

cara, esse wrochal tem problemas mentais... só pode... que isso... heheheeh

[7] Comentário enviado por agk em 07/06/2004 - 09:41h

Parabéns, muito bom o artigo.

[8] Comentário enviado por andreguerra em 07/06/2004 - 10:21h

Amigo y2h4ck,

Muito bom seu artigo, realmente é o tipo da informação dificil de encontrar, principalmente no nível e com a objetividade que vc escreve.

Parabéns,

André

[9] Comentário enviado por y2h4ck em 07/06/2004 - 18:36h

Bom o Servidor onde o Pax esta hospedado (grsecurity) parece que esta fora do ar por tempo indeterminado.
Todo caso estou disponibilizando uma copia do Patch e do Chpax
que sao necessarios para completar a instalacao:

http://rootsec.ath.cx/~spawn/pax.tar.gz

=]
Enjoy

[]s a todos


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts