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

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


Kernel dinâmico



O funcionamento do kernel baseia-se basicamente no seguinte esquema, o kernel fornece dados de sistema para processos que, por sua vez, entregam esses dados ao usuário ou administrador. Sendo assim um rootkit que atua sobre o kernel tem inúmeras vezes mais controle sobre o sistema.

As antigas versões do kernel do sistema operacional Linux obrigavam o usuário a realizar a recompilação do mesmo assim que estes carregavam novos drivers ou quaisquer outros códigos, no entanto a partir da versão 2.2 do kernel, este veio a permitir aos administradores realizar todas estas operações em tempo de execução, evitando assim a realização da recompilação do kernel.

Rootkits de kernel em geral permitem a execução de código diretamente no espaço do kernel, eliminando assim os dados que um atacante teria que esconder antes mesmo que estes cheguem ao espaço de usuário.

Vale lembrar que estes rootkits são transparentes para as ferramentas de sistema normais e para as ferramentas forenses mais antigas, pois estas não conseguem detectar a manipulação.

Implementação de rootkit de kernel

Alguns aspectos do kernel devem ser manipulados para a elaboração de um rootkit de kernel, são eles:
  • Realizar a troca de chamadas de sistema individuais por versões manipuladas (syscall table patching);
  • Inserir uma nova tabela de chamadas de sistema;
  • Mudar ponteiros nas estruturas dos sistemas de arquivos raiz e proc (Virtual File System [VFS] Patching);
  • Modificação direta das estruturas de código do kernel.

Devemos salientar que embora o texto até este momento nos leve a interpretar rootkits como sendo ferramentas utilizadas apenas para a realização de ataques, estas também podem ser utilizadas para o "bem", pois os administradores de sistema por várias vezes se beneficiam destas ao utilizá-las para analisar e monitorar sistemas.

Podemos citar como exemplos destes tipos de ferramentas que auxiliam os administradores, Kstat, Saint Jude, Sebek, dentre outros.

A tabela de chamadas de sistema

A tabela de chamadas de sistema define a interface entre o espaço de usuário e o espaço do kernel. Esta tabela contém os endereços de todas as chamadas de sistema. A biblioteca C padrão assegura que as chamadas se sistema necessárias ocorram em tempo de execução, enquanto o kernel efetivamente executa as chamadas. O programa de espaço de usuário então processa e interpreta os valores retomados pelas chamadas de sistema.

As chamadas de sistema que o Linux oferece ficam guardadas no arquivo /usr/scr/linux/include/asm/unistd.h. O unistd.h lista 293 chamadas com suas posições na tabela.

Página anterior     Próxima página

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

Compilar kernel em distros baseadas em Debian

NPTL, Exec-Shield e outros palavrões que fazem seus programas crasharem

Ativando zRAM no Slackware

Kernel-BALA

Kernel v3.x no Debian - Compilação em 7 passos práticos

  
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