Arquivo para dezembro \27\UTC 2008

27
dez
08

A Batalha contra um Rootkit

Esses dias uma cliente me falou que estava com um vírus. Me disse que aquela era a terceira vez que tinha usado o computador, desde que ele voltou da assistência técnica, mas mesmo assim o sistema estava infectado. Segundo a própria cliente me disse na primeira vez o técnico estava com pressa e deixou o computador baixando o AVAST. Na segunda vez nem foi ela, e sim a irmã que tentou usar o seu computador, mas sem sucesso. Disse ela que a irmã tentou abrir o Orkut, o MSN, qualquer página da Internet e nada.

Quando cheguei na casa dessa cliente, o computador estava fazendo a varredura de boot do AVAST e essa varredura não só tinha encontrado um Trojan (encontrou dois ou três tipos diferentes, mas só me lembro de um chamado Kavos) como estava pedindo confirmação sobre o que deveria ser feito com o arquivo infectado. Eu escolhi a opção eliminar todos e dei ENTER. O resultado foi que o antivírus dessa cliente eliminou 52 arquivos.

Depois de terminada a varredura, eu resolvi passar mais uma vez o antivírus. Dessa feita o antivírus não só encontrou um vírus no sistema, como descobriu que esse vírus estava associado a um arquivo de extensão DLL que, para quem não sabe, é uma extensão comum às bibliotecas[1]. O nome do arquivo era VBSFDE0.DLL e, como ele estava carregado na memória, o vírus também estava carregado na memória. Por isso que, toda vez que o AVAST percebia isso, ele também pedia para que uma varredura de boot[2] fosse feita.

Eu reiniciava o computador, o AVAST realizava a sua varredura de boot, a varredura terminava, o sistema iniciava, eu executava outra varredura do AVAST e pimba! lá estava o vírus de novo. Aí começava o círculo vicioso: o arquivo infectado era uma DLL, essa DLL estava carregada na memória, e então o AVAST recomendava outra varredura de boot. Por causa disso eu desconfiei que o vírus estava sendo carregado durante o processo de inicialização. De forma que eu pensei que poderia resolver o problema editando as entradas do registro que são responsáveis por isso.Depois de fazer outra varredura e mandar eliminar a DLL infectada eu cliquei em Iniciar/Executar digitei regedit[3] e cliquei em OK. E nada do REGEDIT aparecer.

Pela mesma razão que o AVAST às vezes recomenda que a varredura seja feita durante o processo de boot, eu resolvi entrar no Modo de Segurança do Windows. Isso por que eu desconfiava que era o próprio vírus que estava me impedindo de ter acesso ao Editor de Registro. Portanto, se eu pudesse ter acesso ao básico do sistema, impedindo assim que boa parte do número de programas e bibliotecas do sistema fossem carregados, talvez eu poderia ter acesso ao sistema sem necessariamente contar com o vírus. De forma que eu poderia abrir o Editor de Registro livremente.

Não deu outra: Foi só eu carregar o Modo de Segurança que eu passei a ter acesso ao registro. Aí surgiu outro problema: Eu não me lembrava da entrada do registro responsável pela inicialização de programas. Para descobrir isso eu resolvi usar outro artifício: entrei no MSCONFIG e dentro dele abri a aba Inicializar. Como eu sabia que dentro dessa aba apareceriam programas que são carregados durante a inicialização, eu resolvi usar o nome de um desses programas para procurar a entrada do registro. Feito isso, encontrada a chave do registro, eu removi justamente as duas entradas que pareciam suspeitas. Eram duas chaves que executavam programas de extensão .exe localizados em C:\Windows\System32. Se não me engano uma se chamava kammos.exe e a outra vammos.exe.

Removidas as chaves, eu resolvi reiniciar o sistema. Reiniciado o sistema a primeira coisa que eu fiz foi tentar abrir o Editor de Registros. Abri com sucesso. A segunda coisa que eu fiz foi iniciar uma varredura do AVAST. Depois de uns 30 minutos, a varredura não encontrou nenhum vírus. Chamei a cliente para ver e fiz outra varredura para me garantir. A outra varredura foi realizada com sucesso.

Agora vou revelar a vocês alguns detalhes que eu omiti de propósito, e que também só fui entender melhor depois, fazendo uma análise fria do caso. Depois da primeira varredura de boot o AVAST me revelou que eu estava lidando com um rootkit. Eu achei isso um tanto estranho por que, apesar de não me lembrar em detalhes, eu lembrava que rootkits eram ferramentas que hackers usavam para comprometer sistemas recém invadidos. Uma invasão significa basicamente um acesso não autorizado de super usuário agora, para garantir um acesso futuro, que suas trilhas não pudessem ser recuperadas (já que todo acesso é registrado no sistema) e que programas maliciosos fossem executados sem que os administradores desse sistema percebessem, os hackers utilizavam rootkits.

No caso do vírus de Windows, e essa informação eu só fui descobrir graças ao trabalho do Linha Defensiva[4], o rootkit era utilizado para impedir que os arquivos do trojan fossem exibidos pelo Windows Explorer, de impedir que os processos do trojan fossem exibidos pelo Gerenciador de Tarefas e para impedir que o Editor de Registros fosse executado. E isso foi exatamente o que aconteceu. Eu realmente procurei os dois arquivos do registro na pasta indicada e não encontrei, mesmo no Modo de Segurança. O que eu fiz, entretanto, serviu para interromper o processo do rootkit.


[1] Arquivos que possuem conjuntos de funções e que são feitos para serem utilizados por outros programas. As bibliotecas surgiram para tornar o processo de programação (e não necessariamente os programas) mais eficientes. Com o uso de bibliotecas um programador pode incorporar funções aos seus programas, sem necessariamente instruir ao sistema como realizar essas funções.

[2] O processo de inicialização do computador é conhecido como bootstrap o que traduzindo significaria pontapé inicial. Alguns antivírus propõem que a varredura seja feita durante o processo de boot por que assim evitam que determinados programas, que poderiam servir para camuflar os vírus, fossem executados.

[3] REGEDIT é o editor do registro do Windows. O registro é um arquivo fundamental do sistema operacional Windows por que é nele onde ficam escritos, por exemplo, com quais programas documentos de determinada extensão devem ser abertos, e quais programas devem ser carregados durante a inicialização do Windows, entre outros.

[4] Acessado em http://www.linhadefensiva.org/2005/03/rootkit/ no dia 27 de Dezembro de 2008