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.