Textos Embutidos em Malwares
Analisando o binário de um arquivo, é possível extrair as strings utilizadas internamnete. Várias strings podem aparecer em malwares, como: - caminhos de importação e exportação - URLs e IPs. - Entidades envolvidas e alvos. - Etc.
É sem dúvida uma das técnicas mais simples de análise de malware e por isso, muitas produtores de malware tentam ofuscar as strings com criptografia e codificação. Alguns até colocam strings com informações falsas! Então tome cuidado com strings, usa-as somente como pistas.
Aqui veremos estratégias de atacantes e defensores em relação a strings escondidas.
O que procurar em análises manuais de strings
- Qualquer informação relevante, mesmo que cortada, separada ou com algum caractere extra.
- Endereços de serviços muito comuns, como URL do google, podem significar que o Malware tenta se conectar ao site para testar se não está em uma sandbox.
- Nomes ou referências a aplicativos e softwares utilizados por análise de malware ou redes pode significar que o Malware tem capacidade de anti-análise.
- Aplicações, arquivos, diretórios, bibliotecas, etc. Podem ser alvos ou dar dicas das TTPs do malware.
- É comum achar textos de bilbiotecas utilizadas, então tome cuidado com falsos positivos.
- Sempre procure por sinais de codificações e qual base foi usada.
- A base64 costuma ter
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890+/como string em alguma parte do código.
- A base64 costuma ter
Escondendo strings
Formas comuns e conhecidas
- Separando as strings para depois juntar. Isso pode:
- Dificultar a leitura quando há análise simples de strings.
- Diminuir o tamanho das strings analisadas.
- Codificação e encriptação de strings. Isso pode:
- Dificultar a leitura quando há análise simples de strings.
Ferramentas de Extração e Análise de Strings
Cuidados ferramentas de extração de Strings
- Falsos positivos: muitas ferramentaas de strings interpretam bytes de dados como bytes de strings, gerando strings sem sentido.
- Tamanho mínimo de strings: muitas ferramentas ignoram strings de menor tamanho. Informações importantes podem ter tamanho pequeno também, então sempre conheça o tamanho mínimo da sua ferramenta.
- Ferramentas exclusivas para ASCII: muitas ferramentas procuram somente strings ASCII (1 byte). Textos em outros padrões, como UTF16 (Unicode de 2 bytes ou 16 bits) podem mostrar strings legítmas em formatos estranhos.
Ferramentas Somente de Extração
- Microsoft Strings (strings.exe)
- Extrai ASCII e Unicode simultaneamente.
- Mínimo de 3 caracteres em strings por padrão. Permite mudança de valor.
- Mostra a localização das strings com a opção -o ou --offset.
- Bintext
- Extrai ASCII e Unicode simultaneamente.
- Mínimo de 5 caracteres por padrão.
- Mostra a localização das strings por padrão.
Ferramentas de Extração e Análise
- Virus Total YARA
- FLOSS