Kernel Hacking (RootKits)

Apresentamos neste trabalho uma teoria completa sobre kernel hacking, mostrando assim suas vantagens, desvantagens e soluções utilizadas pelos administradores de sistemas para contra-atacar as implementações tão geniosas dos atacantes, sobressaltando a utilização de rootkits.

[ Hits: 28.500 ]

Por: Guilherme Junior em 21/12/2006 | Blog: http://www.i9technologia.com/igui


Como encontrar a tabela de chamadas de sistema



Antes do comprometimento de uma chamada de sistema, o rootkit deve primeiramente encontrá-la. Um exemplo simples e eficaz é a busca pelo segmento de dados inteiro. O rootkit Override por exemplo, verifica cada endereço de memória no segmento de dados em busca da tabela de chamadas de sistema.

Após a obtenção do endereço da tabela de chamadas de sistema, o rootkit fica sem limites. O desenvolvedor pode rodar o strace para descobrir quais chamadas de sistema precisa manipular para enganar um programa específico.

A relação dos rootkits com o kernel 2.6

Um alívio aos usuários do kernel 2.6, pois como exceção do Adore-NG, não existem rootkits disponíveis para esta versão, tanto benignos quanto malignos.

O motivo deste alívio é que os kernels mais antigos utilizam símbolos para exportar a tabela de chamadas de sistema, tornando mais fácil modificar tais chamadas, enquanto que o kernel 2.6 mantém esses endereços em segredo. Um atacante precisaria dispor dos seguintes recursos para alterar uma chamada de sistema:
  • O código-fonte do kernel e os arquivos criados durante a compilação;
  • Um link simbólico de /lib/modules/versão_do_kernel/build para /usr/src/versão_do_kernel;
  • Um kernel.conf correspondente;
  • Um Makefile para rootkit;

Impossível então? Não! Por exemplo, os usuários da distribuição Gentoo têm essa tarefa facilitada, já que a arquitetura do Gentoo fornece tudo isso.

Conclusões

Mesmo que os administradores façam uso de programas que utilizem checksums, como por exemplo o Aide ou o Tripwire, isto não garante a sua proteção, pois estes são programas alocados no espaço do usuário e os rootkits de kernel manipulam diretamente as chamadas de sistema ou qualquer outra parte do kernel enganando assim qualquer programa do espaço do usuário.

Para averiguação de invasões e etc o administrador deve exatamente saber como o rootkit funciona para assim buscar evidências.

É importante saber ainda que para cada rootkit a ser analisado, os alvos a serem examinados e procurados são possivelmente diferentes.

Se mesmo após a leitura do artigo surgir alguma dúvida sobre o tema (KERNEL HACKING), por favor envie um e-mail para domguilherme -o- gmail.com. Ficarei feliz em ajudá-lo.

Página anterior    

Páginas do artigo
   1. Introdução
   2. Kernel dinâmico
   3. Como encontrar a tabela de chamadas de sistema
Outros artigos deste autor

Entendendo o que é Engenharia Social

Leitura recomendada

Compilando o kernel do Slackware em 10 etapas

Instalando o kernel 2.6.37 de maneira fácil no Ubuntu 10.10

Compilação do Kernel

Slackware com kernel 2.6.10 - passo a passo

Compilando o kernel 2.6.13 no Slackware 10.2

  
Comentários
[1] Comentário enviado por agk em 21/12/2006 - 10:42h

Interessantíssimo esse artigo, parabéns, por esses e outros motivos sempre é importante baixar somente programas de origens confiáveis, pois do contrário poderá ter seu sistema completamente comprometido.

[2] Comentário enviado por d4rkness em 21/12/2006 - 11:36h

Muito bom o artigo. Principalmente porque não se tem muito material em PT-BR sobre rootkits e afins. E nem como eles agem.

10.

Parabéns

[3] Comentário enviado por IcePeak em 21/12/2006 - 12:16h

Mando mtt bemm!!

Já te mandei um e-mail blz??

FALOWSS!!

IcePeak

[4] Comentário enviado por removido em 21/12/2006 - 16:55h

Ótimo artigo


Saber como os RootKits funcionam é ótimo, pois é uma ameaça real em servidores Linux.

[5] Comentário enviado por a.paulo2007 em 23/12/2006 - 16:16h

Valeu,pois esta ferramenta maliciosa(Rootkits),com certeza sao as mais ultilizadas na atualidade ,visto que,a mesma fornece muita objetividade,agora quanto a ser detectadas ou não vai de depender de quem configura o Rootkits e dos administradores que manipulam os caçadores de Rootkits,valeu camarada por fornecer esse conhecimento,obrigado!!!

[6] Comentário enviado por presto em 24/12/2006 - 16:51h

Excelente artigo!

Exatamente o que eu estava precisando!

Que tal uma continuação se aprofundando nos rootkits que "trabalham" no kernel?

[7] Comentário enviado por frajolitzz em 26/12/2006 - 17:50h

Parabéns amigo ;)
Ótimo artigo!!

[8] Comentário enviado por caugustofo em 29/12/2006 - 09:33h

Parabéns, Guilheme.

Muito bom o seu texto.

Só queria contribuir com uma observação.

Como vc mesmo alertou, há uma enorme possibilidade de se manipular a tabela de interrupções, seria prudente o administrador utilizar ferramentas de administração de sistema compiladas estaticamente e, se possível, gravá-las em uma mídia (cd ou dvd).

Assim, vc garante que , mesmo que seu sistema seja invadido e um rootkit seja utilizado, vc não terá uma saída duvidosa de seus comandos de administração, como ps, netstat e lsmod.

Por fim, gostaria de parabenizar você pela iniciativa e , acima de tudo, pela abordagem no seu texto. Estou no aguardo de mais artigos sobre o assunto.

Parabéns ;-)


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts