segunda-feira, 31 de março de 2008

Como Identificar um Programa Malicioso

Como identificar um programa malicioso instalado no computador que utilize o sistema Windows. O programa malicioso ou trojan, geralmente é instalado de forma não autorizada, sempre utilizando metodos desonestos para induzir o usuário a executar o programa. O que, por exemplo, deveria ser um e-mail com um Torpedo ou um EmotionCard na verdade é um programa cuja função é apenas roubar dados confidenciais.

Mais de 90% dos programas maliciosos que circulam na internet não possuem nenhum tipo de descrição (explicarei mais a frente estes conceitos e como isso funciona).
Outros usam descrições parecidas com as de aplicações de grande difusão (como “Symantec ...”).
A enorme maioria destes programas utiliza nomes próximos aos de aplicações e serviços verdadeiros comuns no Sistema Operacional, a fim de despistar o usuário.
Esses programas geralmente são instalados no diretório “Windows\system32”, e copiados para o diretório:
C:\Documents and Settings\All Users\Menu Iniciar\Programas\Inicializar”.
Todo programa copiado para o diretório All Users..\Inicializar automaticamente replica para todos os usuários (perfis) existentes do computador. Isso garante que o Trojan fique sempre ativo independente do usuário que esteja utilizando o computador.

A título de ilustração, reproduzi abaixo alguns exemplos de processos Autênticos e de Programas Maliciosos.
Processos Autênticos

Programas Maliciosos

Através de uma busca na internet é possível encontrar ferramentas que possibilitam listar os processos do Sistema Operacional, algumas gratuitas. Quando falamos em listar os processos, entendemos saber quais são os programas abertos e os serviços que estão em execução.
Algumas ferramentas, como o próprio Gerenciador de Tarefas do Windows, possibilitam listar os processos em execução, porém não apresentam detalhes sobre os mesmos, em particular a descrição, o nome da empresa (autora) e o caminho do programa em execução, dificultando a identificação do programa malicioso.

Neste artigo, utilizaremos uma solução da Sysinternals, comprada pela Microsoft, o Process Explorer, um utilitário gratuito de gerenciamento de processos que permite exibir informações detalhadas sobre processos em execução, disponível para download no link abaixo:

http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx

imagem 1


Com o Process Explorer (ou ProceXP.exe) aberto, conseguimos visualizar todos os programas, processos e serviços que estão sendo executados. Observem como são listados os programas, processos e serviços pelo Process Explorer (imagem 1).

Notem que o próprio Process Explorer e programas como Notepad e Mspaint estão depois do Explorer (não o “Internet Explorer” mas o “Explorer”, o programa que administra o desktop do computador). A listagem é feita de cima para baixo. Sendo assim, os programas citados estão em uma “camada” acima do Explorer. Em outras palavras, as aplicações como Notepad, Mspaint foram executadas depois que o Explorer foi carregado.
É muito difícil encontrar um trojan ou vírus que esteja em uma camada abaixo do Explorer. Quando for analisar os processos fique atento nos programas que estão depois do Explorer (ou seja na camada acima dele).
Os trojan possuem nomes próximos aos de processos autênticos do Windows. Todos os processos nas camadas abaixo do Explorer (ou seja executados antes dele) são responsáveis por gerenciar diversas tarefas, como a comunicação de rede, atualizações, antivírus e outros. Esses processos são conhecidos como Serviços do Windows. Você nunca terá um suposto serviço sendo executado depois do Explorer.
Usamos essa regra para identificar a presença de um programa malicioso instalado no computador. No Process Explorer (imagem 1) tudo que está na cor rosa é serviço, e tudo que esta na cor roxa é programa. Caso encontre programas com o nome de Serviços ou Processos do Windows ou nomes próximos, rodando depois do Explorer na cor roxa, certamente voce esta infectado.
Os principais Serviços e Processos autênticos do Windows são: svchost.exe, alg.exe, lsass.exe, spoolsv.exe, wdfmgr.exe, winlogon.exe, services.exe, mss.exe e csrss.exe.

Por exemplo, na imagem 1, temos um artefato malicioso em execução com o nome de svchosts.exe, notem que é o único programa onde a descrição e nome da empresa estão em branco. No Process Explorer, por ser uma ferramenta Americana, os campos estão em inglês (Description e Company Name).
Não podemos utilizar este exemplo como regra, mas como já dito, mais de 90% dos artefatos maliciosos que circulam pela internet possuem essas características.

Identificado o Trojan, o próximo passo é saber em qual diretório foi instalado. Ainda no Process Explorer, você deve apontar a seta do mouse sobre o nome do programa svchosts.exe, será então exibido o caminho no qual está o Trojan. No caso, c:\Windows\system32\svchosts.exe. Você também pode localizar o Trojan, abrindo a opção propriedade, clicando com o botão direito do mouse sobre o nome do Trojan (svchosts.exe).
Sabendo o local de instalação do Trojan, podemos então efetuar a remoção, mas antes precisamos fechar o Trojan para que o mesmo possa ser removido com sucesso.
Caso tente remover o arquivo svchosts.exe sem antes fechá-lo pelo Process Explorer, o Windows responderá com uma mensagem dizendo que o arquivo svchosts.exe não pode ser removido porque está em uso.
Para fechar o Trojan você deve selecioná-lo na lista e pressionar no teclado a tecla Del ou, utilizando o mouse, clicar com o botão direito sobre o nome do Trojan e selecionar a opção Kill Process.
Essa é a forma mais simples de identificar e remover um programa malicioso ou Trojan.

Sempre que um programa é instalado, são criadas chaves no registro do Windows, que são responsáveis pela identificação e inicialização do programa que foi instalado.
Podemos verificar a existência de programas maliciosos também através do Editor de Registro do Windows, utilizando o comando regedit. Para fazer isso clique com o mouse sobre o menu iniciar depois em executar, digite “regedit” e clique em ok. Esse processo é mais complicado e indico apenas para usuários mais experientes.
Com o Editor de Registro do Windows podemos visualizar o item meu computador, seguido de alguns diretórios conhecidos também como “chaves” (imagem 2). Dentro de cada chave, existem outras chaves e valores responsáveis pela identificação e inicialização de programas e serviços, dentre outras funções agregadas no Sistema Operacional.

imagem 2


Com o mouse, clique sobre o sinal de + ao lado da chave HKEY_CURRENT_USER para expandir o conteudo das outras chaves. Faça o mesmo procedimento até chegar na Chave Run (imagem 3). Nesta chave, estão os programas que devem ser inicializados depois que o Explorer for carregado.
Os desenvolvedores de Trojan e vírus incluem seus programas na chave Run para garantir que toda vez após o Windows ser carregado seu programa também seja. Utilize, em conjunto com o Editor de Registro do Windows, o Process Explorer, ele ajudará na identificação do Trojan.
Depois de concluir a analise, tendo a certeza que um determinado registro ou valor dentro da Chave Run é referência de um Trojan, você pode seguir com os procedimentos de remoção.
Dentro do Editor de Registro o campo Dados no lado direito, exibe o local ou diretório onde está instalado o Trojan. Anote o caminho informado e com o botão direito do mouse sobre o registro, clique em excluir. Depois que voce excluiu a chave do Trojan, será ainda necessário fechar ou encerrar o Trojan utilizando o Process Explorer, para poder remover com sucesso o Trojan no diretório indicado no campo Dados do Editor de Registro.

imagem 3


Alguns computadores estão repletos de Trojan, e o processo descrito acima deve ser repetido para cada Programa Malicioso encontrado. Na imagem abaixo (imagem 4), temos dois Trojan, sendo executados ao mesmo tempo, que estão instalados em diretórios distintos e não possuem nenhuma descrição.

imagem 4


Vale notar que todos os programas maliciosos selecionados para este estudo, foram desenvolvidos com o único intuito de capturar informações Bancárias.

Ao ler o artigo, ele induzirá alguns questionamentos, tais como: não seria mais fácil instalar um bom antivírus ou um anti-spyware?
Teoricamente sim, mas nenhuma ferramenta de segurança garante 100% de eficácia.
Sendo bem sincero, sabe-se que, sempre que um fraudador está desenvolvendo um novo Trojan, o mesmo é "homologado" ou testado utilizando os melhores antivírus do mercado. Nenhum fraudador vai desenvolver um Trojan e contaminar a Internet sem ter a certeza que nenhum antivírus vai atrapalhar seus negócios, e até que as empresas de antivírus capturem esse Trojan, milhares de pessoas já perderam suas credenciais de acesso ao Internet Banking e foram fraudadas.

Toda ferramenta que tem a função de identificar programas maliciosos como Trojan, vírus e outros, possue uma base de programas maliciosos cadastrados, que geralmente é atualizada periodicamente, e recursos para tentar a identificação de novos artefatos que venham a surgir.
O conjunto desses recursos é conhecido como “analise heurística”, que basicamente analisa o comportamento do programa suspeito e identifica ou não o mesmo como um Trojan. Todos os antivírus ou anti-spyware possuem suas diferentes técnicas de analise heurística, e é por tal motivo que existem vírus e Trojan que são detectados por alguns antivírus e não por outros.
Sabendo da possibilidade de se ter um Trojan que o seu antivírus ou anti-spyware não conseguiu identificar como um programa malicioso, podemos minimizar muito o risco de fraudes utilizando os métodos supramencionados para ter uma certeza a mais que seu equipamento esteja limpo de pragas eletrônicas que possam colocar suas informações pessoais e sigilosas, em mãos erradas.

Matéria de autoria de Gilberto Fernandes Teixeira, revisada por L.P.