quinta-feira, 30 de junho de 2011

Dropbox a serviço dos malwares

4 comentários
[POST Atualizado - 05/07/2011] 

Poucos dias depois de eu ter escrito o artigo, o serviço Dropbox enviou um e-mail para seus usuários comunicando alterações em seus “Termos de Serviço” (TOS). Quase ninguém lê isso mas alguns profissionais de segurança se atentaram para as alterações e ficaram preocupados (com toda a razão).

Joe Garcia, do Cyber Crime 101 Podcast, escreveu um artigo intitulado “Asta La Vista, Dropbox!” comentando as alterações. A conclusão que ele chegou foi bem simples:

So my recommendation is to delete you Dropbox account as soon as you are done reading this and worry about finding an alternative later. ”

Simplesmente porque no novo TOS do Dropbox está dizendo que os usuários dão direito a eles de usar, copiar, distribuir, manipular, publicar, ou fazer o que quiser com os arquivos que deixam lá e sem pagar nada por isso.

Então já não bastam as falhas comuns do serviço que deixam os arquivos dos usuários vulneráveis, agora eles oficialmente dizem que podem fazer o que quiser com eles.

Outra coisa interessante sobre o Dropbox que verifiquei essa semana foi que o link do malware foi desativado, isso não aconteceu por ter sido detectado um arquivo malicioso mas sim porque o link estava gerando muito tráfego, gerou um Erro 509Bandwidth Limit Exceeded” conforme imagem abaixo:


A partir disso imagino que os links públicos do serviço devem ter um limite bem baixo de tráfego.

[POST Original - 30/06/2011]

O Dropbox é um serviço muito prático de armazenamento de arquivos online que permite que você mantenha arquivos e pastas sincronizadas em vários computadores diferentes, estando assim sempre disponíveis onde quer que você esteja acessando a Internet.

Como tudo em tecnologia ele pode ser utilizado com boas ou más intenções. Com o crescimento e a popularização do serviço, que permite que qualquer pessoa crie uma conta e armazene até 2 GB gratuitamente, ele passou a ser utilizado largamente pelos desenvolvedores e distribuidores de malwares.

Na imagem abaixo vemos uma string que nos diz que os arquivos-fontes desse malware, no caso um Delphi Project (dpr), foi hospedado diretamente no Dropox, isso permite que o coder continue seu projeto a partir de que qualquer computador ou mesmo compartilhe com a quadrilha os amigos.


Nesse segundo exemplo vemos um e-mail phishing onde o link aponta para um arquivo Zip armazenado também no Dropbox, esse é uma outra característica do serviço, permite que criemos links públicos para que qualquer um possa fazer download do arquivo


Nos termos de uso do serviço eles deixam claro que o Dropbox não tem nenhuma obrigação de monitorar os arquivos armazenados mas também podem fazer se for necessário para cumprir os termos de uso ou atender alguma solicitação judicial:

You acknowledge that Dropbox has no obligation to monitor any user's access to or use of the Site, Content, Files and Services, but has the right to do so for the purpose of operating the Site and the Services, to ensure users' compliance with these Terms of Service, or to comply with applicable law or the order or requirement of a court, administrative agency or other governmental body.”

Da mesma forma que o serviço é utilizado para hospedar malwares pode ser que também esteja armazenando pornografia infantil ou qualquer outro tipo de conteúdo ilegal. Possivelmente na medida que seu uso for intensificando talvez implementem mecanismos de denúncia e monitoramento de conteúdo, como estamos acostumados a ver em outros serviços.

Ronaldo P. Lima

quarta-feira, 22 de junho de 2011

Spear Phishing e APT, ataque eficiente

1 comentários
A evolução das ameaças cibernéticas é tão rápida que fica difícil acompanhar todas as novidades e termos que surgem relacionadas à segurança da informação. Ainda mais em períodos tão turbulentos iguais aos que estamos vivendo, existe um exército gigantesco de pessoas buscando novas falhas, novas formas de ataques, desenvolvendo malwares mais avançados e muitas mais.

A seguir uma breve introdução sobre um tipo de ataque bastante eficiente que tem feito várias vítimas.

Spear Phishing

Não é um termo novo mas está em destaque devido aos ataques específicos direcionados à empresas e governos. No phishing comum que conhecemos são enviados e-mails para tentar “pescar” senhas e outros dados bancários das pessoas em geral, já no spear phishing (“pescaria com arpão”) são enviados e-mails direcionados a alvos específicos, a mensagem é cuidadosamente montada para que se passe por verdadeira dentro de uma empresa ou órgão.

Com a facilidade que temos para descobrir informações em redes sociais e na Internet em geral não é muito difícil montar mensagens convincentes se passando por funcionário de determinada empresa por exemplo. Quando alguém de dentro da companhia receber a mensagem e clicar no link estará comprometendo a segurança de toda a rede. Hoje em dia é muito mais fácil utilizar esse tipo de engenharia social para invadir a rede corporativa do que encontrar uma vulnerabilidade no firewall.


APT: Advanced Persistent Threats

Ameaças Persistentes Avançadas, ou simplesmente APT, é um termo polêmico que foi criado em janeiro desse ano e não tem uma definição precisa, uns dizem que não passa de jogada de marketing de vendors para chamar atenção da mídia, outros dizem que se trata de um tipo de ataque persistente (como o nome diz), cíclico, em um alvo específico envolvendo várias etapas e supostamente utilizando-se de técnicas avançadas empregadas por atacantes altamente capacitados [1] [2].

Um exemplo de APT, um grupo de atacantes escolhem como alvo a empresa X, inicialmente poderão tentar entrar na rede através de um malware, normalmente através de spear phishing. Uma vez que eles comprometeram um host a próxima etapa será implantar no ambiente uma ou mais ferramentas de acesso remoto (um espécie de netcat), esse processo pode durar algumas semanas, nesse período eles tentam capturar com malwares as credenciais da rede, senhas de administradores, VPNs, banco de dados, etc. Depois disso eles desativam as ferramentas de acesso remoto e passam a acessar a rede somente com as credenciais que capturaram, inclusive para não levantar suspeitas podem realizar tarefas comuns de administradores como aplicar patchs.

Utilizando-se esse método, senhas legítimas para acessar a rede, estarão bem mais protegidos. É mais difícil detectar o uso indevido de senhas e logins do que a presença de uma ferramenta estranha, com isso o ataque se mantém persistente na rede. No momento que percebem que as senhas estão sendo alteradas eles voltam para a etapa de capturar novamente as credenciais com o malware, e isso se repete até quando for possível ou for interessante para eles [3].

A verdade é que quando um atacante está motivado e possui um pouco de conhecimento certamente conseguirá atingir seus objetivos.

Caption by Lenny Zeltser. Based on a drawing by sabine voigt.

Referências:

sexta-feira, 10 de junho de 2011

Análise Estática e Dinâmica de um Trojan-Downloader

12 comentários
Esse artigo apresentará as etapas iniciais de uma análise de malware, abordará algumas técnicas simples das análises estática e dinâmica (ou comportamental). Geralmente essas tarefas podem ser automatizadas e existem muitas sandboxes que fazem isso. Porém nem sempre é recomendável o uso de sandboxes de terceiros, principalmente se estivermos lindando com informações que não podem se tornar públicas.

Então vamos começar! 

ANÁLISE ESTÁTICA

Na análise estática fazemos a dissecação de um artefato malicioso sem executá-lo, apenas observando seu código com ajuda de disassemblers, debuggers, descompiladores, etc. É o onde entra a engenharia reversa do binário.

Identificação do artefato

Recebi esse arquivo através de um e-mail phishing utilizando o nome de uma instituição pública:

Nome: Anexo2011.pif
MD5: dc150c6df434feeceb88dc176e27b6fe

O primeiro passo é fazer a identificação do arquivo para encontrar possíveis packers ou cryptors que dificultam bastante a engenharia reversa do malware.

Alguns programas recomendados para essa tarefa são os já conhecidos PEiD, ExeinfoPE e RDG Packer Detector.

Ao submeter o arquivo ao ExeinfoPE foi apresentada a seguinte tela:


Como vemos na imagem, o arquivo é do tipo executável de 32 bits e foi compactado com o “PEcompact ver.2.78a – 3.00” e na dica lammer diz para buscarmos o unpacker “RL!dePacker”.

Ainda conforme sublinhei na imagem, ele nos diz que teremos problemas se foi adicionada na proteção a injeção de um DLL.

Então vamos tentar o RL!dePacker. Fiz o download do unpacker e submeti o arquivo a ele:


Pelas mensagens do RL!dePacker parece que conseguiu fazer a descompactação corretamente. Ao submeter o arquivo ao RDG apresentou as seguintes telas:


Realmente o PEcompact foi eliminado, mas como havia alertado o ExeinfoPE foi identificada outra proteção, o uso da biblioteca de compressão aPLib. E também mais uma outra contra o uso de debuggers, a função IsDebuggerPresent da API kernel32.dll do Windows.

Não são notícias muito boas para a análise estática mas vamos continuar.

Disassembler

Abri o arquivo descompactado no IDA Pro 5.0 freeware, que é um poderoso disassembler e também possui funções de debugger. No início da análise ele já apresentou telas informando que o arquivo poderia estar compactado e que teve problemas para refazer a IAT.

A IAT (Import Address Table) é uma tabela onde o executável armazena os ponteiros ou endereços das funções externas que ele utiliza, isto é, que ele importa da API do Windows.

Por exemplo, se um malware importa a função IsDebuggerPresent isso quer dizer que lá na IAT dele existe a localização (endereço) exata dessa funçao na DLL que está em C:\windows\system32\kernel32.dll.

Os packers geralmente também “embaralham” essa tabela de endereços justamente porque sem ela a engenharia reversa do malware se torna muito mais difícil, não teríamos nenhuma referência de nomes de funções.

Continuando com a análise no IDA ao buscar pelos Imports do malware, mesmo a tabela de Imports estando corrompida, foi possível visualizar o uso da DLL WSOCK32:


O uso dessa DLL já nos diz que o malware possui funções de comunicação com a Internet (o que já era de se esperar).

No código disassembly também localizei o uso da função IsDebuggerPresent:


Código simples, um “IF” que se identificar a presença do debugger (retorno diferente de zero) para a execução.

Por o malware estar com todas essas proteções não consegui localizar mais nada de relevante, nesses casos, na minha opinião, o melhor caminho é partir para a análise dinâmica.

ANÁLISE DINÂMICA

A análise dinâmica consiste em executar o malware em um ambiente controlado, comumente dentro de um máquina virtual, e através de ferramentas de monitoramento capturar as interações que ele realiza com o sistema operacional e ambiente de rede.

Monitoramento do tráfego de rede

Já sabemos que o malware realiza comunicação com a Internet então nada mais lógico do que monitorar (“snifar”) o tráfego de rede. Para essa tarefa o uso do já consagrado Wireshark é certo.

Em uma máquina virtual Windows XP SP2 32 bits deixei a placa de rede ativa e o Wireshark rodando e executei o malware.

As comunicações de rede geradas foram essas:

Download do arquivo: http://www.zhenqingzs.com/images/clean.jpg


Download do arquivo: http://www.eremnakliyat.com.tr/images/logo32.jpg


Acesso à página PHP: http://aruana.com.br/images/fearless.php


Então foram baixados dois arquivos supostamente JPG e tentativa de acesso a uma página PHP que não existia no site.

Pelo que conheço dos malwares os dois JPGs não devem ser imagens e a página PHP possivelmente deve ser um controle do autor do malware para saber quantos foram infectados. Ele se conecta a essa página e então automaticamente deve ser registrado o endereço IP ou coisa do tipo em um arquivo de controle.

Para descobrirmos o verdadeiro tipo de um arquivo o interessante é usar o comando “file” que vem nativamente no Linux, também é possível instalá-lo no Windows, foi o que eu fiz.


Nos dois arquivos baixados pelo malware o resultado foi arquivo de dados e o terceiro que era um JPG verdadeiro vemos que a saída é bem diferente.

Então os dois “JPGs” não são imagens e nem executáveis, são arquivos genéricos de dados que devem ser utilizados pelo malware para algum propósisto ainda desconhecido. Ao abrir esses arquivos em um editor hexadecimal não foi identificada nenhuma informação útil, apenas sequências de caracteres aleatórios.

Monitoramento de processos e sistema de arquivos

Outra forma importante de descobrir o comportamento de um malware é observando quais processos são criados por ele, o que eles fazem, quais acessos realizam no sistema de arquivos, alterações do registro, etc. Uma excelente ferramenta para essa tarefa é o Process Monitor.

Antes de executar o malware na máquina virtual também deixei rodando o Process Monitor, das várias linhas de log que ele gerou algumas que mais me chamaram atenção foram essas:


Aqui vemos que o processo do malware criou um arquivo com o sugestivo nome de “delme167D.bat” e salvou em:

C:\Documents and Settings\Administrador\Configurações locais\Temp\delme167D.bat

Depois o processo chamou o cmd.exe para executar o arquivo BAT e em seguida se encerrou:


Com o nome de “delme” ele deve apagar alguma coisa, eis seu conteúdo:


Então o arquivo “delme” tenta excluir o arquivo do malware após ele ter sido executado e depois tenta se auto-excluir.

Monitoramento de alterações no Registro do Windows

Para esse função o uso do RegShot é indicado. Antes de executar o malware tira-se uma “foto” do registro do Windows, depois da execução tira-se outra “foto” e por fim compara as duas para descobrir o que foi alterado.

Ao realizar esse procedimento com o malware o RegShot apresentou várias modificações, mas as significativas foram essas:


Foi adicionada a seguinte DLL na chave de registro:

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs: "gter.dll"

As DLLs que estiverem na chave AppInit_DLLs são carregadas dentro de processos do usuário na inicialização do Windows. Isso quer dizer que a DLL será injetada em um processo legítimo do sistema operacional, com isso quando for exibida a lista de processos pelo Gerenciador de Tarefas não aparecerá nenhum processo estranho.

Essa é um ótima técnica de ocultação do malware, não é trivial identificar um malware rodando desse jeito, bem diferente do que achar um processo chamado “fotos.exe” sendo executado.

O programa Autoruns da Microsoft exibe tudo que é inicializado com o Windows, ao utilizá-lo para identificar essa DLL ele apresentou corretamente a chave e o local onde estava salva:

C:\windows\system32\gter.dll


Conclusões

Com base nas informações encontradas, observando no tráfego de rede o tamanho dos downloads e o tamanho dos arquivos gerados, muito provavelmente no primeiro download o malware gerou o arquivo “delme167D.bat” e no segundo o “gter.dll” e após fazer isso ele tentou apagar o malware original e o arquivo “delme”, restando apenas a dll que será injetada em um processo e executada na próxima inicialização do sistema.

Basicamente isso é tudo o que o malware faz, características comuns em malwares do tipo trojan (down)loader, abrem caminho para outras pragas. O nome atribuído para ele pela Kaspersky confirma isso “Trojan-Downloader.Win32.Banload.bkqk”.

Vimos que mesmo com todas as proteções no executável através da análise dinâmica conseguimos descobrir praticamente tudo de importante que o malware faz, isso não quer dizer que esse tipo de análise é melhor, ela é complementar. Lógico que esse artefato era bem simples, para os mais complexos a análise se torna mais trabalhosa.

O que a “gter.dll” faz ficará para o próximo artigo. Analisar uma DLL é um pouco mais complicado do que um executável, o caminho que estou utilizando é o uso de ferramentas de “memory forensics”.

Até a próxima!

Ronaldo P. Lima
Related Posts Plugin for WordPress, Blogger...