Recentemente tive a oportunidade de por as mãos em um arquivo .doc que me foi enviado e que tinha sido categorizado através da heurística de um antivírus como sendo um arquivo infectado.

Após ser informado da possível infecção, quem me passou o arquivo disse simplesmente que outros AVs não o identificaram como sendo um arquivo malicioso e questionou a primeira análise, deixando a entender que acreditava que o arquivo não estaria de fato infectado.

Então perguntei a essa pessoa o que ela fez para se sentir tão segura para afirmar que o documento realmente não estava infectado. Para minha surpresa recebi uma imagem do resultado de uma cloud de antivírus (AV):

vscan.novirusthanks.org – arquivo 1Ilustração 1: vscan.novirusthanks.org – arquivo 1

Aparentemente o fato de apenas uma solução de AV detectar o arquivo como malicioso não parecia incomodar a pessoa. As questões que me vieram então à cabeça foram:

  1. As outras soluções de cloud e sandbox possuem resultados similares?

  2. Elas possuem capacidade de analisar documentos deste tipo (Composite Document File V2, CDF)?

  3. Será que as ferramentas avisam quando não são capazes de analisar o documento ou simplesmente verificam por uma base de hash conhecida?

Para responder a primeira pergunta fui atrás de outras soluções de cloud e sandbox para verificar como se comportavam.

virusscan.jotti.org – arquivo 1Ilustração 2: virusscan.jotti.org – arquivo 1

É possível notar que mais de uma solução detectou uma ameaça e com uma coincidência entre elas; a categorização do arquivo: MW97:ShellCode. Usaremos esta informação depois.

Infelizmente não sabemos a versão da engine destas soluções.

Relevante notar que a solução opensource trouxe duas informações importantes (se forem verdadeiras):

  1. PUA (Possibly Unwanted Application): Isso não necessariamente significa que o arquivo está infectado mas que possui características que podem ser utilizadas para o “bem” ou para o “mal”. Neste caso, ele indentificou um possível packer.

  2. BorlandDelphi-2: Este é um indicativo de que um possível código malicioso foi construído usando Borland Delphi? Iremos tentar capturar esta informação depois.

Agora vejamos outro resultado:

vicheck.ca – arquivo 1Ilustração 3: vicheck.ca – arquivo 1

Desta vez temos um resultado mais “acertivo”: foram encontrados 13 códigos embutidos. Entre eles vale à pena mencionar as chamadas às seguintes “rotinas”: KERNEL32, GetCommanLineA, CreateFileA, CreateWindowsExA. Vale salientar que esta sandbox é especializada em análise de documentos maliciosos:

“an advanced malware detection engine designed to decrypt and extract malicious executables from common document formats such as MS Office Word, Powerpoint, Excel, Access, or Adobe PDF documents. ViCheck will detect the majority of embedded executables in documents as well as common exploits which download malware from the internet.”

E para finalizar uma outra análise:

malwaretracker.com - arquivo 1Ilustração 4: malwaretracker.com – arquivo 1

Agora as coisas ficaram interessantes! Outra sandbox especializada em documentos também encontrou códigos embutidos e algumas das chamadas concidem. Em adição, arquivos executáveis foram descarregados.

Creio que a resposta para a 1a. Pergunta foi respondida: nem sempre as clouds e sandboxs apresentam resultados semelhantes. Fiz o upload do documento (arquivo 1) em pelo menos mais cinco sandboxes. Infelizmente elas foram inconsistentes. E não era apenas uma diferença de nomenclatura entre elas. Algumas realmente falaram que não havia nada no arquivo!

Quem está certo?” é uma pergunta difícil de ser respondida pelo usuário “comum”. Se fizermos o upload para uma cloud cheia de AVs não temos como saber quais realmente executaram uma verificação mais adequada pois o método quase nunca é claro. Muitos AVs apenas verificam por assinaturas de arquivos em sua base de dados. Outros possuem análise heurística. Enquanto outros analisam a estrutura dos documentos.

Agora chegamos à resposta da segunda pergunta: somente algumas clouds e sanboxes possuem realmente capacidade de analisar CDFs.

E agora? Quanto uma pessoa ou companhia pode confiar nestas análises? Muitas empresas detentoras destas clouds não se responsabilizam por estes resultados (pelo menos não em sua versão “gratuita”). E várias simplesmente não são claras quanto às suas limitações e também não avisam ao usuário, sendo esta a resposta para nossa terceira pergunta. Basta verificar nas diversas sandboxes retornadas pelo google (e indicadas nas referências).

Então…qual é a saída???

Bom…nada melhor que a velha “mão na massa”. No próximo post iremos engatinhar em uma análise estática do documento.

Até lá,

Referências Bibliográficas:

Composite Document File
Microsoft Developer Center
Vicheck – advanced malware detection engine
ThreatTrack Security Sandbox
Document Analyzer – automated and generic malware analysis platform
Jotti’s malware scan
icreamservice – free antivirus scan service IrishCreamService
Malware Tracker – Cryptam Document Scanner
Security on Steroids – Malware online scanners
The Increasing Failure Of Malware Sandboxing