Assinatura do arquivo por bytes mágicos
É uma técnica de identificação da extenção de malwares através de bytes mágicos, ou seja, padrões binários típicos daquela extensão de arquivo. Normalmente encontram-se no cabeçalho ou final do arquivo.
Técnicas de Obfuscação de Extensão de arquivos
- Mudança de nome.
- Dupla extensão: adicionar mais uma extensão no nome do arquivo. Exemplo:
foto_com_nome_grande.png.exe. - Arquivos de auto extração.
- Empacotadores.
Bytes Mágicos
Padrões
Entre as assinaturas, ou padrões, mais comuns dos arquivos, estão:
- Todos os arquivos executáveis Windows:
- Começarão com "MZ" nos bytes 0 e 1.
- Sempre apresentarão os bytes em posição hexagonal 000e0 e 000e1 como "P" e "E" (numa representação por tabela ASCII).
- Todo arquivo PDF terá
%PDF-seguido pela versão mínima do requerida pelo carregador do PDF. Esse trecho pode aparecer em qualquer lugar nos primeiros 1024 bytes. - Arquivos de documentos antigos do Office começarão com os números hexagonais D0CF11E0.
- Arquivos comprimidos Zip sempre começam com "PK" em seus bytes 0 e 1. Atente-se que o formato Zip é usado como base a muitos formatos, como:
- Android APK.
- Arquivos .JAR
- Novo modelo de coumentos do Office.
Ferramentas de identificação por bytes mágicos
Ferramentas automatizadas podem fazer esse trabalho de identificar os tipos de arquivos por bytes mágicos. Entre eles, estão:
File
É uma ferramenta padrão da maioria dos sistemas UNIX. Ela analisa o cabeçalho do arquivo alvo e o compara como uma série de padrões de bytes mágicos. Se algum padrão bater, a ferramenta retorna o tipo de arquivo que você está lidando.
Utilizamos File da seguinte forma, mesmo com extensões duplas:
file arquvivo.extensao
Infelizmente a ferramenta não gera mais informação além disso.
Exeinfo PE
Ferramenta GUI ou CLI que analisa e procura por cabeçalhos de executáveis do Windows. A ferramenta pode dizer quais compiladores foram usados para construir a aplicação, assim como identificar executáveis criados por empacotadores e dizer qual que foi usado. Por fim, a ferramenta ainda lhe dá dicas de como desempacotar o executável.
Detect it Easy
Identifica propriedades e características do binário, além de detectar possíveis packers embutidos.
TrID
Em uma abordagem um pouco diferente do tópico, o TrID não busca exatamente por assinaturas de bytes mágicos. Ao invés disso, o TrID usa identificação baseada em padrões típicos em arquivos, o que também pode ser considerado um tipo de determinar uma assinatura. O TrID é CLI e possui uma base de dados regularmente atualizada com os padrões e os consulta quando precisa analisar um arquivo. Dessa forma, ele é útil quando os atacantes tentam remover ou esconder os bytes mágicos.
O TrID mostra as chances do arquivo ser de determinados tipos e acaba gerando mais informação do que o clássico file.
PEStudio
Entre suas várias funções, também mostra o tipo do arquivo.