Tcnicas de deteco de Rootkit usadas pelo OSSEC HIDS
por Daniel B. Cid, daniel.cid@gmail.com


Comenando  na verso 0.4, o OSSEC HIDS executar a deteco
de rootkit em todos os sistemas que o cliente estiver instalado.
O rootcheck (Sistema de deteco de rootkit) ser executado
a cada X minutos (Especificado pelo usurio --por default
a cada 2 horas) para detectar possiveis rootkits instalados.
Em conjunto com a anlize de logs e o sistema de checagem de integridade,
ele torna-se uma soluo poderosa de monitoramento (o OSSEC HIDS executa
a anlize de logs e verificao de integridade desde a verso 0.1).

Outra caracterstica includa na verso 0.4  que o servidor de anlize
enviar automaticamente as assinaturas de deteco de rootkit aos
clientes, reduzindo o trabalho com administrao para o administrador
de sistemas. Os clientes e servidor mantero contato a cada 10 minutos
e se o servidor for atualizado com um novo arquivo de assinatura, ele enviar
para todos os clientes configurados. De uma olhada na documentao para maiores
informaes.

O rootcheck executar as seguintes etapas para verificar a presena de 
rootkits:


1- Ler o arquivo rootkit_files.txt que contem um grande banco de dados
   de rootkits e arquivos usados pelo mesmo. Tentar usar as funes
   fopen e opendir no arquivo especificado. Ns usamos todas a chamadas do 
   sistema,por causa de que rootkits que rodam a nivel de kernel, escondem as 
   chamadas dos sistema. Ns tentamos melhoras as coutras chamadas do sistema, 
   para uma melhor deteco. Este mtodo  mais parecido com uma regra de 
   ant-virus, que necessita ser atualizado contantemente. As chances de 
   falso-positivos so pequenas, mas falso-negativos podem ser produzidos 
   modificando os rootkits.

2- Ler o arquivo rootkit_trojans.txt que contem um banco de dados de 
   assinaturas de arquivos infectados por rootkits. Esta tcnica verifica
   binrios modificados por trojans conhecidos. Este mtodo de deteco
   no encontra nenhum rootkit a nivel de kernel ou nenhum rootkit desconhecido.
   
3- Escaneia o diretrio /dev procurando por anomalias. O /dev contm todos os
   arquivos de device e scripts de Makedev. Vrios rootkits usam arquivos 
   escondidoso no /dev. Esta tcnica pode detectar rootkits desconhecidos.

4- Escaneia o sistema de arquivos a procura por arquivos incomuns e problema de 
   permio. Arquivos setados para root, com permio de escrita para outros 
   so muito perigosos e a deteco de rootkit olha isso. Arquivos com Suid, 
   diretrios e arquivos escondidos  so inspecionados.

5- Procura pela presena de processos ocultos. Ns usamos as funes getsid e
   kill para checar se algum PID est sendo usado ou no. Se estiver, mas a funo
   no pode ve-lo,  uma indicao de rootkit a nivel de kernel ou o ps foi 
   infectado. Ns verificamos tambm a sada do kill e do getid que deve ser a mesma.

6- Olha a presena de portas escondidas. Ns usamos a funo bind para checar todas
   as portas TCP e UDP to do sistema. Se no podemos usar o bind na porta (ele est
   sendo usado), mas o netsatat no mostra, provavelmente h um rootkit instalado.

7- Escaneia todas a interfaces do sistema e procura por alguma com mdo "promisc" 
   abilitado. Se a interface est neste modo, a sada do ifconfig mostrar. Se no,
   h a possibilidade de haver um rootkit instalado.


EOF
