1 Técnicas de detecção de Rootkit usadas pelo OSSEC HIDS
2 por Daniel B. Cid, daniel.cid@gmail.com
5 Començando na versão 0.4, o OSSEC HIDS executará a detecção
6 de rootkit em todos os sistemas que o cliente estiver instalado.
7 O rootcheck (Sistema de detecção de rootkit) será executado
8 a cada X minutos (Especificado pelo usuário --por default
9 a cada 2 horas) para detectar possiveis rootkits instalados.
10 Em conjunto com a análize de logs e o sistema de checagem de integridade,
11 ele torna-se uma solução poderosa de monitoramento (o OSSEC HIDS executa
12 a análize de logs e verificação de integridade desde a versão 0.1).
14 Outra característica incluída na versão 0.4 é que o servidor de análize
15 enviará automaticamente as assinaturas de detecção de rootkit aos
16 clientes, reduzindo o trabalho com administração para o administrador
17 de sistemas. Os clientes e servidor manterão contato a cada 10 minutos
18 e se o servidor for atualizado com um novo arquivo de assinatura, ele enviará
19 para todos os clientes configurados. De uma olhada na documentação para maiores
22 O rootcheck executará as seguintes etapas para verificar a presença de
26 1- Lerá o arquivo rootkit_files.txt que contem um grande banco de dados
27 de rootkits e arquivos usados pelo mesmo. Tentará usar as funções
28 fopen e opendir no arquivo especificado. Nós usamos todas a chamadas do
29 sistema,por causa de que rootkits que rodam a nivel de kernel, escondem as
30 chamadas dos sistema. Nós tentamos melhoras as coutras chamadas do sistema,
31 para uma melhor detecção. Este método é mais parecido com uma regra de
32 antí-virus, que necessita ser atualizado contantemente. As chances de
33 falso-positivos são pequenas, mas falso-negativos podem ser produzidos
34 modificando os rootkits.
36 2- Lerá o arquivo rootkit_trojans.txt que contem um banco de dados de
37 assinaturas de arquivos infectados por rootkits. Esta técnica verifica
38 binários modificados por trojans conhecidos. Este método de detecção
39 não encontra nenhum rootkit a nivel de kernel ou nenhum rootkit desconhecido.
41 3- Escaneia o diretório /dev procurando por anomalias. O /dev contém todos os
42 arquivos de device e scripts de Makedev. Vários rootkits usam arquivos
43 escondidoso no /dev. Esta técnica pode detectar rootkits desconhecidos.
45 4- Escaneia o sistema de arquivos a procura por arquivos incomuns e problema de
46 permição. Arquivos setados para root, com permição de escrita para outros
47 são muito perigosos e a detecção de rootkit olha isso. Arquivos com Suid,
48 diretórios e arquivos escondidos são inspecionados.
50 5- Procura pela presença de processos ocultos. Nós usamos as funções getsid e
51 kill para checar se algum PID está sendo usado ou não. Se estiver, mas a função
52 não pode ve-lo, é uma indicação de rootkit a nivel de kernel ou o ps foi
53 infectado. Nós verificamos também a saída do kill e do getid que deve ser a mesma.
55 6- Olha a presença de portas escondidas. Nós usamos a função bind para checar todas
56 as portas TCP e UDP to do sistema. Se não podemos usar o bind na porta (ele está
57 sendo usado), mas o netsatat não mostra, provavelmente há um rootkit instalado.
59 7- Escaneia todas a interfaces do sistema e procura por alguma com módo "promisc"
60 abilitado. Se a interface está neste modo, a saída do ifconfig mostrará. Se não,
61 há a possibilidade de haver um rootkit instalado.