Análise de um RootKit
O italiano Marco Giuliano publica uma interessante análise de um rootkit que segundo o autor já infectou 250 mil PCs. Aqui vão alguns pontos que eu achei interessante:
▪ O rootkit é instalado, como já está sendo de praxe, para proteger um spyware/adware. Como o autor nota, já passou o tempo em que malware era criado para demonstrar capacidade técnica e outras massagens de ego. A motivação hoje é claramente financeira, e o objetivo do rootkit é nem tanto impedir a detecção do spyware, e sim impedir a remoção. O rootkit esconde uma rotina que verifica se o spyware está presente, e se não estiver o reinstala. Para remover o spyware você precisa antes achar e desabilitar o rootkit.
▪ A página usada para infecção identifica e trata separadamente Opera, Firefox e Internet Explorer, infectando todos eles. Interessante - cada vez mais vamos ver isso se o aumento de popularidade destes browsers persistir.
▪ O nome do arquivo baixado é "www.google.com" - uma tentativa de engenharia social.
▪ Para proteger o seu arquivo contra remoção ele cria um usuário no sistema, o adware usa esse usuário para encriptar o arquivo com EFS! É a primeira vez que eu vejo o EFS ser usado para dificultar a remoção de um malware.
▪ O rootkit roda em modo de usuário, sem nenhum componente no kernel. O mecanismo de funcionamento parece com o Hacker Defender, e usa código em modo usuário para "hookar" uma série de APIs exportadas pela kernel32.dll, advapi32.dll, psapi.dll e ntdll.dll em todos os processos.
▪ E o mais interessante: ele checa explicitamente se está rodando em uma máquina virtual, verificando em que endereço está o tabela de descrição de interrupções (IDT). Como vimos não é possível atualmente esconder do sistema que ele está sendo virtualizado, e o rootkit usa isso para não infectar máquinas virtuais e assim atrapalhar a análise por pesquisadores.
Esse é um bom exemplo da nova geração de código malicioso que estamos começando a enfrentar. Vale a pena ler integralmente o texto.