Arquivos criados com a técnica poliglota têm aparecido cada vez mais em ciberataques nos últimos anos. Eles permitem que os invasores façam o malware passar pelos filtros de e-mail e pelos verificadores de arquivos, enganem as vítimas em ataques de phishing e dificultem as investigações de incidentes. Para conseguir isso, os invasores constroem deliberadamente um arquivo que o sistema pode interpretar como formatos diferentes, dependendo do aplicativo em que ele é aberto. Um exemplo clássico é um arquivo que pode ser tratado como uma imagem PNG ou um arquivo ZIP. Basta alterar a extensão do arquivo ou simplesmente usar um ou outro aplicativo para abri-lo.
Vamos entender por que é possível criar arquivos desse tipo, quais combinações de formatos já foram usadas em ataques reais e como as organizações podem se proteger contra essa ameaça.
Por que é possível criar arquivos poliglotas
Os formatos de dados por trás dos arquivos poliglotas raramente são exóticos. Tudo se resume a uma combinação inteligente de formatos comuns que são estruturalmente compatíveis. Os poliglotas exploram pelo menos uma das seguintes peculiaridades em determinados formatos de arquivo:
- A maioria dos formatos de arquivo precisa ser decodificada a partir do primeiro byte, mas alguns precisam ser lidos a partir do final. O exemplo mais claro é um arquivo ZIP: um início corrompido ou ausente não impede que os aplicativos leiam o arquivo, porque todos os cabeçalhos necessários ficam no final. Isso permite que os invasores simplesmente concatenem dois arquivos (no exemplo acima, um PNG e um ZIP). A parte inicial é lida como uma imagem PNG válida, enquanto a parte final é lida como um arquivo ZIP válido.
- Muitos formatos funcionam como bonecas russas matrioscas: embora externamente tenham uma extensão específica correspondente ao uso pretendido, internamente o arquivo é, essencialmente, um arquivo ZIP que contém os dados necessários. Esse grupo inclui documentos modernos do Office (DOCX/XLSX/PPTX), pacotes de instalação do Android (APK), arquivos de biblioteca Java (JAR) e muitos outros.
- Alguns formatos não têm requisitos estruturais rígidos ou têm requisitos suficientemente flexíveis para que o aplicativo que processa o arquivo consiga localizar o trecho de que precisa, mesmo quando esse trecho não está no início.
O repositório Polydet no GitHub apresenta vários exemplos de combinações possíveis de arquivos para criar um arquivo poliglota. De acordo com a classificação da MITRE, essa técnica se enquadra na categoria Masquerading (T1036.008, Masquerade File Type).
Exemplos de arquivos poliglotas em ciberataques conhecidos
Análises de campanhas de malware disponíveis publicamente revelam diversos tipos de arquivos poliglotas. Os invasores adaptam todo o cenário do ataque a uma combinação específica de tipos de arquivo.
O grupo Head Mare entregou o malware PhantomPyramid como um anexo ZIP. O arquivo consistia em código executável do Windows (EXE), com um pequeno arquivo ZIP concatenado ao final. Quando a vítima abriu o arquivo compactado, ele continha um arquivo com a extensão PDF.LNK que, então, iniciava esse mesmo anexo poliglota, desta vez como um arquivo executável.
No ataque documentado pela JPCERT, os invasores criaram um arquivo que começava como PDF e era detectado como PDF pela maioria dos verificadores, mas tinha uma extensão DOC e era aberto nos aplicativos do Office como um arquivo DOC válido contendo macros maliciosas.
Os ataques que disseminaram os cavalos de Tróia StrRAT e Ratty usaram um arquivo poliglota criado a partir de um pacote de instalação assinado do Windows (MSI), com código Java malicioso (JAR) anexado ao final.
Os ataques do StrelaStealer usaram um arquivo poliglota com extensão HTML: uma biblioteca do Windows (DLL) com um documento HTML de chamariz concatenado ao final. Um atalho no arquivo compactado iniciou o arquivo duas vezes: uma vez por meio do comando start (o equivalente a um clique duplo, que abriu um navegador exibindo o documento HTML) e outra por meio do rundll32 (que iniciou a DLL maliciosa).
Em um ataque simulado, mas engenhoso, os pesquisadores concatenaram dois arquivos ZIP comuns e descobriram que diferentes ferramentas populares de compactação exibiam o arquivo combinado de maneiras diferentes: algumas mostravam apenas o primeiro arquivo compactado, outras apenas o segundo, e outras mostravam ambos ao mesmo tempo, como se fossem um único arquivo compactado com conteúdo compartilhado. Se o invasor estiver familiarizado com a infraestrutura da vítima e souber quais softwares estão instalados, poderá usar essa combinação para mostrar um arquivo às ferramentas de segurança e outro à vítima.
Os invasores empregaram uma complexa matriosca de malware em uma campanha que distribuiu o infostealer IcedID. Eles anexaram um arquivo ZIP aos e-mails de phishing; descompactá-lo produziu um arquivo ISO. Esse ISO, por sua vez, era descompactado em um arquivo CHM (Ajuda do Windows) criado com a técnica poliglota. Quando a vítima o abriu com a ferramenta padrão de Ajuda do Windows, o arquivo executou um script JavaScript incorporado ao conteúdo da ajuda, que iniciou o aplicativo padrão mshta (host de aplicativos HTML da Microsoft) e o direcionou para esse mesmo arquivo CHM. Os autores da campanha empacotaram um aplicativo HTA dentro do arquivo CHM de forma que sua presença não interferisse na leitura do arquivo como um documento de ajuda inócuo. O manipulador de HTA, por sua vez, simplesmente ignora todos os dados irrelevantes no início do arquivo até encontrar o script HTA.
Como as ferramentas de segurança lidam com arquivos poliglotas
Os exemplos acima deixam claro como esse truque de leitura dupla permite que os invasores implantem malware no computador da vítima. Mas como os filtros de e-mail e os sistemas EDR realmente lidam com arquivos desse tipo? A resposta depende inteiramente da solução específica, portanto, isso precisa ser verificado, seja por meio da análise da documentação técnica do fornecedor, seja pela execução de um teste controlado na infraestrutura corporativa, com todas as devidas precauções. De modo geral, apenas dois pontos são válidos em todos os casos:
- A maioria das soluções de segurança não confia na extensão informada de um arquivo; em vez disso, verifica seu início para determinar sua estrutura real. É por isso que, no ataque descrito acima, o arquivo PDF com extensão DOC foi analisado como um PDF inofensivo, enquanto a macro maliciosa estava na parte DOC concatenada.
- Se um arquivo começar como algo inofensivo (por exemplo, uma imagem) e sua extensão corresponder, uma análise mais sofisticada provavelmente não será aplicada a ele. Os invasores podem explorar isso: as instruções que acompanham o arquivo podem orientar a vítima a renomeá-lo para que o comportamento do sistema acabe associado à segunda carga útil, e não à imagem.
Como proteger uma organização contra ataques de arquivos poliglotas
A defesa contra arquivos poliglotas não requer soluções técnicas ou organizacionais complexas. O que exige são boas práticas de segurança sólidas e consistentes em toda a organização:
- use listas fechadas de aplicativos autorizados a serem executados nas estações de trabalho dos funcionários. exclua aplicativos do Windows desatualizados, ferramentas administrativas da Microsoft não utilizadas, softwares de acesso remoto e de transferência de arquivos e qualquer outro software considerado potencialmente perigoso ou obsoleto.
- use soluções de segurança de e-mail avançadas e equipadas com CDR (tecnologia de Desarme e Reconstrução de Conteúdo, que desarma anexos suspeitos e os reconstrói em versões mais seguras) e tecnologia de detonação (que executa anexos suspeitos em um ambiente isolado para análise). configure a análise aprofundada para anexos que apresentem sinais externos de serem arquivos poliglotas: todos os arquivos compactados e do Office, arquivos com extensões não padrão e assim por diante.
- da mesma forma, configure a solução EDR para realizar uma análise aprofundada de possíveis arquivos poliglotas.
- crie regras de monitoramento que gerem alertas para combinações incomuns entre um processo e os arquivos que ele recebe para processamento, como um arquivo CHM iniciado por meio do mshta ou um arquivo HTML iniciado por meio do rundll32, como nos exemplos acima.
- adicione informações básicas sobre arquivos poliglotas ao programa de conscientização em segurança utilizado pela organização, para que os usuários fiquem atentos quando forem orientados a alterar a extensão de um arquivo ou a manipulá-lo de alguma forma incomum, por exemplo, abrindo-o em um aplicativo específico.
malware
Dicas