sexta-feira, 8 de novembro de 2013

Vírus no pendrive!

O objetivo deste post é auxiliar em um problema universal. Com certeza de uma maneira ou de outra acabamos usando Windows no trabalho, na escola, em computadores de clientes, ajudando amigos, etc. Como profissionais devemos atender de acordo a demanda do mercado e resolver o problema, este assunto com certeza será útil para você.
                       
Em 2009 eu trabalhava em uma escola com 12 computadores, na época vírus provenientes de pendrive eram um problema sério. Tudo graças ao recurso de autorun do Windows XP, que de maneira muito ingênua executava qualquer programa indicado no arquivoautorun.inf de unidades removíveis. Em pouco tempo infecções por pendrives se tornaram um caos. O pendrive se tornou o simbolo de promiscuidade no mundo da informática.

Logo os mais preocupados com a questão descobriram a maneira correta de cortar o mal pela raiz desativando a funcionalidade de autorun no Windows XP via GPO. Qualquer unidade removível montada no sistema, antes que alguém pudesse impedir, o Windows fazia-lhe o favor de verificar a existência do famigerado arquivo autorun.inf, onde era indicado o programa (vírus) a ser executado imediatamente, o que não dava qualquer chance para o usuário.

Um arquivo autorun.inf geralmente tem um conteúdo como este:

[autorun] 
open=virus.exe 
icon=virus.exe,0
label=Run Virus

Por uma causa nobre o Windows criou todos estes problemas. Mas a funcionalidade foi aprimorada no Windows 7, e funciona de modo muito mais seguro. Neste artigo a Microsoft explica todos os recursos disponíveis usando os arquivos autorun.inf em unidades removíveis, caso você tenha interesse em entender ou mesmo em utilizar em algum software seu.

No Windows 7 você pode configurar facilmente várias opções de autorun no painel de controle acessando o item  "Reprodução automática", mas o bom mesmo é desmarcar a primeira opção "Usar Reprodução automática em todas as mídias e dispositivos".


Ele tem muito mais opções relacionadas à música e vídeos, e para executar um programa indicado pelo arquivo o usuário deve selecionar em um menu que aparece assim que o dispositivo é plugado. O padrão é "Abrir pasta para exibir arquivos":




Prevenindo no Windows XP 

Para desativar a funcionalidade do autorun no Windows XP, vá em "Executar, digite gpedit.msc, e Enter". No console da GPO você pode procurar por "Modelos administrativos > Sistema > Desativar autoexecutar", marque a opção habilitado e em "Todas as unidades". Com isto o usuário tem uma chance de caçar o vírus antes que o próprio Windows abra as portas para ele. Veja a descrição completa da função no site oficial AQUI

Assim o usuário ganha tempo, mas não resolve o problema. Se o pendrive estiver com o arquivo autorun.inf indicando o executável do vírus, ao clicar duas vezes no seu ícone em "Meu Computador" o sistema age da mesma maneira, executando o vírus. É preciso então fazer uma varredura cuidadosa na unidade antes de abri-la. Alguns antivírus o fazem bem, ou mesmo ferramentas de segurança próprias para pendrive. No entanto é bom entender como o problema funciona e fazer alguns procedimentos para evitar infecções futuras.

Por isso comecei e desenvolver o Pendrive Limpeitor Tabajara com a ideia de que se você tiver um bom script em mãos que faça o trabalho rápido e eficiente, pode poupar o processamento do seu antivírus e evitar problemas futuros. 

Problemas comuns 
 

Com alguma experiência pude observar os seguintes sintomas das infecções e o que o script deve fazer par solucionar.

 - Criação do arquivo "autorun.inf" na unidade onde é indicado o executável do vírus. O script deve remover o arquivo e criar uma pasta autorun.inf com atributos S, H e R, para evitar que um novo arquivo seja criado no lugar futuramente.

 - Procurar arquivos executáveis no raiz da unidade e oferecer para excluir.

 - Varrer a unidade em busca de pastas ocultas onde pode estar o programa malicioso. É comum eles usarem do truque da lixeira para dificultar as coisas. Uma pasta oculta é criada, e dentro dela outra pasta com um arquivo "Desktop.ini" com um conteúdo que faz o sistema pensar que aquela é uma pasta de lixeira. O script tenta identificar estas pastas e excluir.


 - Resolver o problema dos atalhos e revelar as pastas ocultas

 O problema do atalhos

A moda hoje é o vírus ocultar todas as suas pastas e criar atalhos para ele, sem que você perceba  ao clicar no atalho o programa é executado e logo em seguida ele abre a pasta desejada. É importante fazer uma varredura por atalhos e "desocultar" (retirar os atributos H e S) todas as pastas no raiz da unidade.
Se você tem este problema dos atalhos com algum pendrive, pode revolver com 2 comandos:

 attrib -r -h -s /d /S X:\
del /f X:\*.lnk

Onde X: é a letra da unidade do seu pendrive ou disco. Tome muito cuidado para não fazer isso em unidades do sistema, então tenha certeza da letra da unidade. O problema de usar desse método é que pode demorar muito já que ele vai ser processado em todos os arquivos da unidade. Além de muito dispendioso, apenas revela as pastas e arquivos ocultos, para que sejam removidos manualmente.

 Você pode usar os seguintes comandos para revelar pastas e processar atalhos apenas no raiz da unidade poupando tempo. Lembre-se de substituir H: pela letra da sua unidade:

for /F "delims==" %X IN ('dir /b /a H:\') DO ( attrib -H -S -R "H:\%X" )

O comando acima revela todas as pastas e arquivos ocultos apenas no raiz, em seguida você pode analisar a unidade e apagar coisas suspeitas manualmente.

Outra opção é o comando abaixo. Ele relaciona todas as pastas e arquivos que tenham um atalho de mesmo nome, remove os atributos e apaga o atalho:

for /F "delims=." %X IN ('dir /b /a H:\*.lnk') DO ( if exist H:\%X ( attrib -H -S -R "H:\%X" & del /f /a /p H:\%X.lnk ))

Este recupera suas pastas de acordo com os nomes dos atalhos, mas outras pastas ocultas permanecem ocultas.

Um amigo meu desenvolveu um software similar que revela as pastas ocultas em apenas um clique!
Por ser um programa gráfico é muito mais amigável para leigos, ele ainda tem um vídeo explicando como fazer o procedimento. É o Folder Recovery. Você pode conferir nos links abaixo:

Video: http://www.youtube.com/watch?v=zXnOcfn1Zhs
Versão simplificada.(Vista/7) http://www.mediafire.com/?axu4524wncogs77 
Versão de tirar o vírus.(XP/Vista/7) http://www.mediafire.com/?8o6j9l68s2ed598 

Entendendo os atributos

Atributos são recursos do sistema de arquivos (FAT ou NTFS), os arquivos podem ser facilmente marcados com atributos para implementar funcionalidades diversas no sistema operacional. Os atributos no Windows são:

H - Hide, arquivo ou pasta oculta
R - Read only. Somente Leitura
S - System, arquivo ou pasta do sistema
A - Atributo de arquivamento. Serve para operações de backup. (irrelevante neste caso) 
I - Índice de pesquisa. Arquivos com este atributo não são indexados. (irrelevante neste caso)

Arquivos ou pastas com atributo de sistema também ficam ocultos, e para vê-los você deve desmarcar a opção  "Ocultar arquivos protegidos do sistema operacional" no menu de "Opções de pasta" no Painel de controle:


Você pode manipular os atributos de arquivos e pastas clicando com o botão direito e em propriedades. Em relação aos atributos I, e A clicando no botão "Avançado":


Outra alternativa é usar a linha de comando com o attrib. A sintaxe é bem simples:

attrib arquivo.txt                      # Exibe os atributos do arquivo
attrib +S arquivo.txt                 # Adiciona o atributo S no arquivo
attrib -H arquivo.txt                 # Remove o atributo H do arquivo
attrib +H +S +R arquivo.txt    # Adiciona os 3 atributos no arquivo 

Toda pasta ou arquivo que um malware deseja esconder, invariavelmente serão aplicados os atributos H, R e S. O atributo S não pode ser manipulado diretamente pelo Explorer nas propriedades do arquivo, então você deve usar o comando attrib para adicionar ou remover o atributo:

attrib -S arquivo.txt


Métodos preventivos 

Tendo o pendrive limpo você pode usar de alguns artifícios para prevenir infecções posteriores. Uma delas é criar uma pasta de nome AUTORUN.INF e aplicar os atributos nela para que não seja substituída por um vírus.

md autorun.inf & attrib +H +S +R autorun,inf

Se a unidade é formatada em NTFS, você pode remover as permissões da pasta para dificultar ainda mais a sua alteração.

Outro método mais radical é formatar a unidade em NTFS, criar uma pasta no raiz onde serão armazenados os seus arquivos legítimos e remover todas as permissões de alteração no raiz. Para isso o mecanismo de herança deve ser desabilitado na pasta criada, onde você poderá delegar permissões a vontade.

O "Pendrive Limpeitor Tabajara" 

Com a ideia de fazer todo o processo automaticamente comecei a desenvolver um script que chamei de "Pendrive Limpeitor Tabajara", para agilizar na limpeza de pendrives de alunos e outras pessoas que eram espetados nas máquinas todos os dias. Ele tem evoluído bastante, tenta identificar atalhos com nomes de pastas na unidade, recuperar as pastas de mesmo nome dos atalhos que estiverem ocultas, remover o arquivo autorun.inf, detectar executáveis ocultos na unidade e por fim cria a pasta AUTORUN.INF que funciona como uma espécie de vacina.
Basta executar e digitar a letra da unidade selecionada, em seguida a varredura é feita e cada arquivo ou pasta detectado só é excluído com a confirmação do usuário.








No final, o máximo que pode sobrar são pastas que podem conter vírus, mas todas elasreveladas, e o usuário poderá excluir facilmente sabendo que não é uma pasta dele.
Tem sido muito eficiente, mas estou aberto a sugestões para melhorar, ou até mesmo migrar para uma linguagem compilada.

Aparando as arestas com o Autoruns e Process Explorer

Se o usuário teve o pendrive infectado ou mesmo plugou o pendrive infectado na sua máquina é importante saber se o sistema não foi comprometido. 
Para isso sempre uso estas duas ferramenta do Sysinternals Suite. Leia um artigo mais detalhado aqui
É importante executar primeiro o "procexp" para ver se não há nenhum processo suspeito em execução, depois o "autoruns" lhe mostrará se não foi criada nenhuma entrada para que o vírus seja novamente executado na inicialização dos sistema. Ultimamente o vírus mais comum aparece como um JScript (extensão .js) que é executado pelo interpretador do Windows, o "wscript.exe". Veja o processo no Process Explorer:






Quanto a entrada de autorun gerada, tome cuidado, por ela pode ser criada apenas no perfil do usuário que foi infectado, principalmente se você usa várias contas de usuário. Este é mais um caso onde usar uma conta sem privilégio de administrador pode prevenir que o sistema todo seja comprometido, já que removendo o perfil do usuário infectado resolveria o problema posteriormente. Veja as dicas de segurança AQUI.


Conclusão

Assim que plugar pendrives ou unidades removíveis no seu PC, use imediatamente uma ferramenta como esta. É muito mais seguro que deixar o Anti vírus cuidar do serviço. Se você quer uma cópia do Tabajara, por favor mande um email para joaolucasmacedo AT gmail.com :-)