Segundo Murilo; Steding-Jessen (2001), basicamente os ataques a sistemas computacionais seguem uma seqüência padrão, o que permite que sejam implantadas barreiras de proteção visando inibir ou dificultar a ação do atacante.
Murilo; Steding-Jessen (2001) enfatizam que o ciclo de ataque é iniciado com a varredura do sistema em busca de alguma vulnerabilidade a ser explorada com o intuito de obter acesso ao sistema. Uma vez invadido o sistema, o atacante busca meios de não ser detectado e a garantia da continuidade, para isso são utilizadas normalmente ferramentas de
backdoors. A figura 1 mostra um ciclo básico das ações de um atacante.
Figura 1 - Ciclo básico de uma invasão / fonte: Steding-Jessen (2001)
Ainda segundo os autores, o uso de ferramentas de
rootkit é normalmente usado pelo invasor a fim de não ser identificado e garantir seu acesso através da instalação de backdoors no sistema atacado.
Ainda segundo os autores, os rootkits são essencialmente coleções dessas ferramentas, utilizadas por invasores após o comprometimento de um sistema. Em conjunto, costumam incluir executáveis para monitorar o teclado (
keyloggers), registrar tráfego de rede (
sniffers), permitir acesso irrestrito ao sistema mesmo sem uma conta válida e, principalmente, esconder tudo que foi feito.
Segundo Borchardt (2002), os rootkits que usam módulos de kernel são conhecidos por rootkit de LKM (loadable kernel modules), estes são carregados dinamicamente no kernel, alterando assim a sua funcionalidade original, sem a necessidade de uma reinicialização. Outras implementações de rootkits funcionam alterando comandos do sistema para esconder informações referentes à presença do atacante, como conexões de rede, arquivos, processos etc.
Ainda segundo o autor, a detecção de rootkits de LKM torna-se difícil, pois os comandos do sistema não são alterados, sendo que o kernel do sistema continuará a responder às requisições de forma normal, ocultando assim a presença do atacante.
Nemeth; Snyder; Seebass; Hein (2001) afirmam que algumas ferramentas automatizadas podem auxiliar na tarefa de identificação de alterações no sistema após uma falha de segurança, o uso da ferramenta tripwire. Segundo os autores esta ferramenta monitora as permissões e realiza cheksum de arquivos de sistemas importantes para que seja possível detectar arquivos que foram substituídos, corrompidos ou manipulados.
O
tripwire verifica arquivos em comparação com um bando de dados que registra suas características e checksums no momento em que o banco de dados foi criado. Ele trabalha com uso da ferramenta diff para diferenciar o sistema de arquivos em relação a essa base de referência.
Murilo; Steding-Jessen (2001) esclarecem que além dos processos, conexões de rede também podem revelar pistas de uma invasão, tais como o endereço IP usado pelo atacante para se conectar ao sistema. Um dos comandos usados em sistemas Unix que permite listar todos os sockets IP locais e o protocolo utilizado é o
netstat. Além deste outros comandos como o whois e o traceroute podem revelar mais informações sobre endereços IP, essas informações dificilmente podem ser corroboradas pelo atacante.
Os autores ainda afirmam que com o uso do comando dmesg poderá ser revelada uma interface de rede trabalhando em modo promíscuo o que vem a revelar uma possível captura de dados na rede.
Uma técnica simples, mas efetiva, é analisar o próprio arquivo binário de algum programa suspeito, com a finalidade de encontrar caracteres imprimíveis no arquivo. Os autores enfatizam que utilizando o comando strings com o argumento "-a" mais o "binário". Caso algum programa suspeito se conecte a um serviço, pode ser possível encontrar a senha no código do programa, porém, se faz necessária certa expertise para diferir entre informações pertinentes nos caracteres listados na saída exibida do programa.