Pular para o conteúdo

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.
Guilherme Junior domguilherme
Hits: 30.184 Categoria: Linux Subcategoria: Kernel
  • Indicar
  • Impressora
  • Denunciar

Parte 3: 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.

   1. Introdução
   2. Kernel dinâmico
   3. Como encontrar a tabela de chamadas de sistema

Entendendo o que é Engenharia Social

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

Slackware 13 - Compilando o kernel 2.6.32rc6

kernel Linux otimizado - Compilação e teste

Alterando as permissões de um arquivo

Compilando kernel 2.6 no Slackware 11

#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

Entre na sua conta para comentar.