quinta-feira, 29 de maio de 2014

Heartbleed x Trend Micro Virtual Patching




Neste post gostaria primeiramente de comentar sobre a falha de segurança do OpenSSL conhecida como heartbleed e também demonstrar como a mesma pode ser blindada através do uso do Virtual Patching, recurso disponível em diversas ferramentas da Trend Micro como o plugin IDF do Office Scan e o Deep Security.



SOBRE O HEARTBLEED


A vulnerabilidade conhecida como heartbleed está catalogada sob o registro CVE 2014-0160. Trata-se de um bug da biblioteca openssl utilizada por vários sites e sistemas web, mais precisamente em uma de suas extenções chamada hearbeat utilizada para checagem de conexões ativas.

Esta falha foi descoberta em Dezembro de 2011, em Março de 2012 ela estava "In the wild", ou seja, foi utilizada em ataques reais sem que houvesse um patch de correçã, sendo que somente em Abril de 2014 ela foi corrigida.
O resultado desta falha é permitir que o atacante possa fazer a leitura de uma parte da memória ram do servidor, podendo conter credenciais e outras informações enviadas pelo usuário já descriptografadas.

  
Figura 1

Na figura 1 temos a comunicação TLS padrão:
  1. Cliente faz a requisição da sessão segura para o servidor;
  2. O servidor responde com o certificado;
  3. O cliente checa a validade do certificado e extrai dele a Public Key;
  4. Cliente gera a Session Key e encripta a mesma utilizando a Public Key do servidor.
  5. O servidor recebe a Session Key e decripta a mesma com sua Private Key.
  6. A comunicação segura se inicia utilizando a Session Key.
Figura 2

Na figura 2 temos a comunicação normal feita pelo heartbeat do OpenSSL, onde:
  1. O cliente envia para o servidor uma mensagem com o intuito de verificar se ele ainda está ativo.
  2. O servidor recebe a mensagem, extrai o payload de dentro dela e o coloca dentro de uma mensagem de resposta.
  3. O cliente recebe a mensagem de volta e verifica se o payload é o mesmo enviado inicialmente.
Figura 3

Na figura 3 temos o mesmo diagrama anterior, porém desta vez explorando a falha conhecida como Heartbleed:
  1. Cliente envia um pacote heartbeat malformado, sendo que é menor do que deveria, porém está camuflado como um pacote maior.
  2. O servidor recebe o pacote e retira o payload de dentro para enviar a resposta do heartbeat.
  3. Como o pacote enviado pelo cliente é menor do que deveria, o servidor preenche o pacote com outras informações contidas na memória.
  4. O cliente recebe o pacote contendo o mesmo payload enviado anteriormente, e além disso os dados que estavam na memória usados para completar o tamanho do pacote, ao olharmos estes dados podemos encontrar chaves TLS/SSL, cookies de autenticação além de credenciais de acesso, incluindo senhas em texto plano.
Explorando a falha
Para explorar a falha montei o seguinte laboratório utilizando o Oracle Virtual Box:
  • Vítima: Windows Server 2008 R2 com o Magento Commerce versão 1.9.0.1 rodando no webserver kit Xammp 1.7.7.
  • Firewall: PFSense 2.1.3
  • Atacante: Kali Linux 1.0.5
Figura 4

Para exploração da falha utilizei um exploit escrito em Python disponível no exploitdb feito pelo Csaba Fitzl, como o ideal será que o ataque fosse executado várias vezes pois de acordo com o momento diferentes informações podem retorna do servidor eu escrevi uma interface utilizando shell script para que o exploit seja executado quantas vezes forem necessárias, o exploit juntamente com a interface que fiz podem ser baixados do link abaixo:

Abaixo o vídeo demonstrando a exploração da falha:




Sobre o Virtual Patching
Agora que vimos como funciona a vulnerabilidade e como explorar a mesma, vamos ver como podemos nos proteger, para isso utilizarei o recurso do Virtual Patching, presente em várias das ferramentas de segurança da Trend Micro, neste caso utilizaremos o Deep Security, para maiores informações sobre o Deep Security recomento o acesso no link abaixo:
Trend Micro Deep Security
  
O Virtual Patching da Trend Micro Deep Security blinda vulnerabilidades em sistemas críticos até que um patch seja disponibilizado e implementado. Desta forma podemos diminuir o tempo de exposição de um servidor à uma determinada falha enquanto seu desenvolvedor não cria uma correção, além disso quando os sistemas não são mais suportados ou não é possível aplicar patches, o Virtual Patching pode proteger os sistemas indefinidamente. Essa proteção pode prolongar a vida de sistemas e aplicativos legados, além de reduzir as despesas administrativas.
Para mais informações sobre o Trend Micro Virtual Patching recomendo o acesso ao link abaixo:
Trend Micro Virtual Patching 


Resolvendo o problema
Para demonstrar o funcionamento do Virtual Patching aproveitarei o mesmo laboratório anterior, porém incluindo mais um host com o sistema operacional CentOS Linux, onde a console do Deep Security estará instalada.



Abaixo o vídeo demonstrando a exploração da falha em seguida a blindagem da mesma feita pelo Virtual Patching:



Referências


http://heartbleed.com/ 
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2014-0160
http://www.trendmicro.com.br/br/grandes-empresas/solucoes-em-nuvem/deep-security/index.html
http://www.trendmicro.com.br/br/grandes-empresas/desafios/nuvem-virtualizacao/virtual-patching/

quarta-feira, 28 de maio de 2014

Ingresso.com lhe presenteou para Copa do Mundo 2014!

Este post apresenta uma análise básica d phishing Ingresso.com lhe presenteou para Copa do Mundo 2014!
As ferramentas apresentadas nesta análise são todas gratuítas ou possuem versões trial disponíveis em seus respectivos sites.

SOBRE O E-MAIL
Tipo de ataque: phishing
Vetor de entrada: e-mail
Remetente: s.mundo@uol.com.br
Assunto: Olá, ?????! Ingresso.com lhe presenteou para Copa do Mundo 2014!
O e-mail enviado apresenta-se como um presente da empresa ingresso.com.
No assunto temos a informação de que a ingresso.com lhe presenteou com um ingresso para a copa do mundo. Inicialmente um ponto que chama muito a atenção é o fato de que os dados no e-mail, como nome completo e endereço da vítima estavam todos corretos.

Analisando somente o e-mail já é possível verificamos alguns pontos:

  • O domínio do remetente é @uol.com.br, sendo que o e-mail apresenta-se como sendo da ingresso.com.
  • Conforme o print abaixo, é possível verificar que a formatação do e-mail també, está incorreta, com o texto na mesma linha das imagens.




  • Olhando no código fonte da mensagem, será possível verificar que a imagem também está hospedada em outro domínio.


SOBRE O LINK
Junto ao corpo do e-mail existe um  link para download apontando para o seguinte endereço:
http://www.ge.tt/api/1/files/9Nm3rih1/0/blob?download#/www.ingresso.com/sorteios/imprimir-www.ingresso.com-sorteio-copa-do-mundo-bilhete

Uma vez clicado no link recebemos o arquivo imprimr-www.ingresso.com-sorteio-copa-do-mundo-bilhete.zip, dentro do arquivo compactado encontramos o arquivo Requisicao-Ingresso.com-Copa-Do-Mundo-2014.cpl.

A extenção de arquivo neste caso, cpl, tem sido bastante utilizada nos últimos tempos para criação de malwares, para maiores informações sobre o uso específico desta extenção recomedo a leitura do documento disponível em http://www.trendmicro.com.br/cloud-content/br/pdfs/business/datasheets/relatorio_malwarecpl.pdf feito pelo Fermando Merces do Forward-Looking Threat Research Team da Trend Micro.

ANÁLISE DO ARQUIVO MALICIOSO
Nossa primeira análise será submetendo o arquivo para o site virustotal.com, após a submissão tivemos como resultado 16 das 37 ferramentas utilizadas por este site apontando o arquivo como malware.



A análise seguinte será executada com o aplicativo PEV, disponível em http://pev.sourceforge.net. O PEV é composto de diversos executáveis, primeiramente utilizaremos o PESCAN que busca por qualquer coisa suspeita dentro do executável.

file entropy: 7.147220 (probably packed)
cpl analysis: malware
fpu anti-disassembly: no
imagebase: normal
entrypoint: normal
DOS stub: suspicious
TLS directory: not found
section count: 9 (high)
.text: normal
.itext: normal
.data: normal
.bss: zero length
.idata: normal
.didata: normal
.edata: small length
.reloc: normal
.rsrc: normal
timestamp: normal

A análise do PESCAN acusou alguns pontos suspeitos:

  • A entropia do arquivo indixa que provavelmente ele foi subetido a algum packer.
  • A análise do formato CPL indica que provavelmente seja um malware.
  • Conteúdo do DOS Stub suspeito.
  • Quantidade de seções suspeita.

A próxima ferramenta utilizada será o READPE, que nos mostrará os headers do arquivo.

Através do DOS Header obtemos a informação de que o arquivo é um executável pois possui o Magic Number 0x5a4d (MZ), este magic number é característico de arquivos executáveis (exe), além disso no Optional/Image header temos o Magic number 0x10b (PE32) que indica que é um executável de32 bits.

O READPE exibe também todas funções de DLL que o malware importa, sendo que em uma análise mais detalhada cada função pode ser pesquisada na base de conhecimentos da microsoft.

Agora vamos analisar o arquivo utilizando o PESTR, que irá procurar dentro do executável por strings encriptadas.

Dentre as informações exibidas podemos destacar a das seguintes linhas que nos mostram a linguagem de programação utilizada no desenvolvimento do Malware, no caso Delphi.

  • Software\Borland\Delphi\Locales
  • Delphi%.8X
  • Delphi Picture
  • Delphi Component


ANÁLISE DO ARQUIVO MALICIOSO EM SANDBOX
Para a análisem SandBox utilizei uma máquina virtual com Windows XP – SP3, sem nenhum antimalware instalado e com o firewall desativado, justamente para termos a visibilidade completa das ações do malware.

ANÁLISE DAS AÇÕES
Antes de infectar a máquina fiz um snapshot utilizando a ferramente Winalysis, disponível em http://www.winanalysis.com, esta ferramenta é utilizada para gerenciar alterações no sistema operacional, sendo que após criar o primeiro snapshot, vamos infectar a máquina e exectar uma comparação entre o status atual da máquina e do snapshot, desta forma teremos a visibilidade de arquivos, grupos, registros, permissões, agendamentos, serviços, compartilhamentos e outras características do sistema operacional modificadas.

A tela abaixo mostra o resultado do teste do Winalysis após a infecção pelo Malware.



Conforme mostra a ferramenta, foram executadas alterações em arquivos, registros e serviços do windows.

Alterações em arquivos:

  • Criado o diretório C:\ProgramData
  • Dentro de C:\ProgramData foram criados os seguintes arquivos:
    • setuppack.txt
    • WindowsMediaPlayer.dll
    • wlanagent.cpl
    • wlanguard.clp
    • wlanuac.clp
Em uma nova submissão ao virustotal.com e análises com o PEV todos os arquivos CPL e o arquivo DLL foram identificados como malwares. Um ponto interessante para ver notado é o fato do nome do diretório criado pelo malware, ProgramData, sendo que na estrutura do Windows realmente existe um diretório com este nome, porém com espaço, ou seja Program Data, outro ponto é o nome dos aquivos, WindowsMediaPlayer.dll e wlan....cpl, todos fazendo referências a nomes comuns dentro do sistema operacional.

Alterações no registro*:

  • Criada uma entrada na inicialização do sistema para um processo denominado TapiSrv;
  • Criada uma entrada na inicialização do sistema para um processo denominado RasMan;
  • Alterados todos os apontamentos do registro do Google Chrome para uma nova versão do mesmo baixada pelo malware.


* foram encontradas 11 alterações críticas no registro do sistema operacional, e mais de 60 avisos e informativos, acima foram citadas somente as mais importantes.

Alterações de serviço:

  • Gerenciador de conexão de acesso remoto iniciado.
  • Serviço de telefonia iniciado.


ANÁLISE DE TRÁFEGO
Para análise do tráfego gerado pelo malware foi utilizada a ferramenta Wireshark, disponível em httpp://www.wireshark.org.
Logo no início da execução o malware utilizou o método GET para download do arquivo GoogleUpdateSetup.exe da fonte 189.115.42.13. Utilizando o whois para levantar maiores informações sobre a origem do IP é possível ver que o mesmo pertence a GVT, este ip ficou como uma incógnita pois não consegui muitas informações, sobre o mesmo, de forma que ao colocar este IP no navegador fui redicionado para o site do google, porém sem mudar o endereço para www.google.com, outro ponto que chamou a atenção foi o fato de que no momento do teste minha conta do google estava conectada, porém no site aberto ao colocar o ip apareceu a opção para fazer login, e ao clicar nela foi exibido um erro.

Outro download executado pelo malware foi do arquivo modr.zip qe estava hospedado em http://www.pilotorevenda.com/param/primo/ ao acessar o endereço é possível ver um site sem index com vários arquivos semelhantes hospedados, ao descompactar o arquivo modr.zip encontramos os mesmos CPL e a DLL identificados pelo Winalysis, desta forma já temos a origem destes arquivos.

CONCLUSÃO
Finalizando gostaria de fazer um resumo das ações detectadas do malware:

  1. Vítima recebe via e-mail o phishing com o título Ingresso.com lhe presenteou para Copa do Mundo 2014!
  2. O conteúdo do e-mail possui além de todos os dados da vítima corretos, como nome completo e endereço, um link para donwnload do arquivo cpl;
  3. Uma vez executado o arquivo cpl o mesmo executa o download de uma nova versão do google chrome e um arquivo compactado no formato zip contendo mais 3 malwares no formato cpl e uma dll.

No caso desta análise a versão do google chrome baixada pelo malware não funcionou, dando erro ao tentar executar.