Pr0teus

Mais homem do que máquina, mais Deus do que homem.

15 Sep 2012

Experimentos com Rootkits and newtwork detection.

Na SegInfo deste ano(2012), o Tony Rodrigues do Octane Labs, na sua palestra “Anti-Anti-Forensics Reloaded. Could Neo avoid Matrix’s Forensics Agents?" falou sobre rootkits e suas características de mentir para o operador do sistema quando questionado sobre alguma propriedade do S.O.

Para ser mais claro: Se a máquina estiver com um rootkit instalado na pasta /home de certo usuário, o comando “ls” não exibirá os arquivos, ocultando a exitência do rootkit.

No entanto, o rootkit só pode “mentir” dentro da sua área de atuação… ou seja não pode alterar resultados externos como por exemplo, conexões vistas através de uma interceptação de fora da máquina.

Quando o atacante de alguma forma contacta o rootkit no sistema infectado acaba por utilizar recursos da rede, existem técnicas de detecção de rootkits via rede como a Destecção por assinaturas que geralmente são implementadas em Sistemas de Detecção de intrusão baseados em rede(NIDS) por exemplo, falham por só identicarem rootkits cuja assinatura na rede é conhecida, e não identifica novos rootkits ou variações do mesmo; Análise comportamental da rede é complexa e em teoria poderia identicar novos rootkits, porém, na prática gera muitos falso-positivos diminuindo a confiança nesta técnica.

A proposta no final do ano passado era implementar e avaliar uma técnica quanto a sua taxa de detecção, falso positivo e eficiência visto que não há um software disponível que realize a tarefa.

A idéia era boa, mas esbarrei com uma patente requerida pela Symantec em fevereiro de 2010 cujo autor Pete Szor[8], registra a ideia de um aparato para detectar a presença de rootkits baseado em rede. Através de um sniffer de rede captura e registra em um banco de dados todas as conexões que passam por ele e correlaciona com os dados obtidos nas máquinas internas, a discrepância entre as informações pode indicar a presença de um rootkit que está escondendo suas conexões. No entanto não há registros de implementações e a própria Symantec não utiliza a tecnologia em nenhum de seus produtos, não havendo assim comprovação sobre a sua eficácia, carga adicional na rede dado aos pacotes extras que deverão fluir das máquinas ao gateway.

Como fazer testes não é crime, após a criação de um ambiente de testes seguros, foram realizados testes manuais com três rootkits para o sistema operacional Linux e um no ambiente Windows sendo eles:

Jynx - (Linux - 2012) - O Jynx é um rootkit que funciona no “userland”, alterando LD_PRELOAD para carregar suas funcionalidades. Não é detectado por softwares antirootkits como Rootkithunter[4] e o Chkrootkit.

Kbeast - (Linux - 2011) - O Kbeast é um rootkit desenvolvido pela ipsecs (www.ipsecs.com), permite acesso remoto ao atacante e funciona carregando um módulo no kernel do Linux também não é detectado pelo RootkitHunter e pelo CHKrootkit.

Ncon - (Linux - 2011) - O NCon foi encontrado “in the wild” por , um pesquisador de segurança. Sua análise detalhada mostra que utiliza o LD_PRELOAD para linkar bibliotecas dinâmicas e alterar as funcionalidades do sistema.

ZeroAccess (Windows - 2011) - ZeroAccess é uma família de rootkits, que funcionam alterando o sistema de arquivos do Windows 32 e 64 bits, instalando Hooks no kernel é capaz de esconder arquivos, processos e atividades na rede[6].

Os testes realizados apontaram o sucesso da técnica na detecção destes rootkits, já que todos tentam esconder suas atividades na rede do sistema operacional do qual estão instalados.

A conclusão é que se criadores de malwares querem mesmo ocultar a sua presença no sistema, é melhor se “fantasiar” de um software legítimo do que tentar mentir para o operador. O que me lembra a palestra do Rubira (BSDaemon) no final da SegInfo 2012. Malwares em geral utilizam de diversas técnicas para evitarem a sua análise por empresas de antivírus. E, apenas por apresentarem estas características, diferentes de softwares convencionais, já podem sofrer facilmente uma primeira “triagem”. Mas isso é papo para outra hora !

[8]Szor, Peter (Northridge. Method and apparatus for detecting hidden network communication channels of rootkit tools, February 2010.