Observa-se, na evolução dos Rootkits, constantes comentários referenciando System Calls, pois pode-se afirmar que a mesma representa chamadas de sistema, ou seja, é o mecanismo usado por um programa para requisitar um serviço do sistema operacional, para ser mais especifico pode-se ainda dizer que ela faz requisições ao núcleo ou Kernel do sistema operacional.
A partir de então, com conhecimento eminente sobre níveis de memória, execução de processos e Kernel, códigos extremamente capciosos passaram a ser projetados ou elaborados e junto a eles, também ataques a servidores webs, até então conceituados, passaram a ser rotina comum a conhecedores deste tipo de software. Dentre os vários códigos desenvolvidos alguns tiveram seu conceito elevado pela forma com que se tornavam eficientes após integrarem-se ao Kernel dos sistemas.
A McAfee, uma das maiores produtoras de software antivírus do mundo, expõe uma explicação um pouco diferenciada sobre os Rootkits, dividindo-os em dois grupos: os Rootkits de modo usuário, e os Rootkits de modo Kernel, ambos com grandes particularidades em sua execução quando no sistema, todavia o Rootkit modo usuário não tem permissões no mesmo nível do Rootkit de Kernel, mas pode-se dizer que:
[...] sua eficácia depende de sua capacidade de ocultar-se de programas de varredura antivírus e outras ferramentas de segurança. O cavalo de Tróia Adclicker-BA3, com maior capacidade de ocultação, intercepta todos os processos em execução para essa finalidade. Essa tática, porém, pode não funcionar sempre. [...]
(Em:
http://www.mcafee.com/us/local_content/white_papers/whitesheet_r4_br.pdf)
Alguns Rootkits em modo usuário se utilizam de APIs (Interface de programação de aplicativo) para carregar uma DLL (Biblioteca de ligação dinâmica) no espaço de memória, que em seguida será executada junto ao processo Porém ele não necessita ser executado dentro deste mesmo espaço alocado. Na sua maioria os Rootkits em modo usuário também se utilizam de ferramentas de desenvolvimento e depuradores o que o torna ainda mais eficiente em sua tarefa, já que o simples fato de identificar mudanças em DLLs ou espaços de memória pode não significar a presença de um Rootkit.
Já os Rootkits de modo Kernel por sua vez, se utilizam de aplicativos que trabalham a baixo nível para alocar-se no núcleo do sistema, estes dispositivos podem ser Drivers de dispositivos do sistema operacional ou programas antivírus, isso faz com que muitas chamadas APIs sejam interceptadas, tornando-os muito semelhantes aos de modo usuário, contudo seus privilégios de execução são bem mais elevados.
A simples presença de vulnerabilidades nos sistemas de informação faz com que Rootkits evoluam a fim de atingir os objetivos expressados em forma de códigos por um programador, sucessivamente sua ascensão fica grifada a cada geração e a cada forma pelo qual ele age no Kernel dos sistemas. Notadamente alguém e por algum motivo coloca um Rootkit em ação, mas como ele pode ser anexado ao Kernel? Uma das formas, e com certeza também a mais explorada para inclusão, é a técnica que estuda a vulnerabilidade dos aplicativos.
No Windows, por exemplo, os processos se utilizam de diferentes meios para a comunicação. Além de muitos liberarem portas para comunicação com o meio externo, seja para comunicação com uma base de dados, seja para um simples update, nesse meio não se sabe até que ponto a codificação de um software é confiável e muito menos se a porta liberada continuará aberta ou sendo visada externamente. Nesse caso, Threads (linhas de processamento) podem entrar em ação e provocar o acionamento de diferentes softwares na tentativa de provocar o temido Overflow ou estouro de buffer como também é conhecido, isso ocorre após a memória secundaria receber informações além de sua capacidade.
Outro meio para a infiltração de Rootkits, e este não menos importante, é realizado através da mudança de endereços de tabelas durante a importação de dados ou sincronismo de sistemas, durante a execução de um programa, chamadas de APIs são realizadas podendo fazer requisições a bibliotecas externas pela edição da tabela IAT (tabela importada do endereço) que gera ponteiros em linguagem Assembly. O Rootkit pode entrar em modo operacional sempre que a API relacionada for interceptada ameaçando qualquer núcleo operacional.
Uma interceptação por funções em linhas também foi apontada pela McAfee, esta também é conhecida como função desvio e descrita da seguinte forma pela empresa:
[...] difere da IAT por redirecionar a chamada para o código do hacker modificando-o quando o código real se encontra nas principais DLLs de sistema. O rootkit modifica somente os primeiros bytes da função dentro as principais DLLs de sistema (kernel32.dll e ntdll.dll) colocando uma instrução para que quaisquer chamadas de processos passem primeiro pelo rootkit. o código do rootkit verifica se os parâmetros indicam a necessidade de falsificar resultados e, em seguida, responde de maneira apropriada. [...]
(Em:
http://www.mcafee.com/us/local_content/white_papers/whitesheet_r4_br.pdf)