Publicações sobre SOC, TI e IR

Jornada forense: identificação de aplicativos maliciosos via AmCache

Introdução

Quando falamos de análise forense digital, o artefato AmCache tem fundamental importância na identificação de atividades maliciosas em sistemas Windows. Esse artefato permite a identificação da execução de binários legítimos e maliciosos. Ele é gerenciado pelo sistema operacional e, até o momento da redação deste artigo, não existe uma maneira conhecida para modificar ou remover dados do AmCache. Logo, em um cenário de resposta a um incidente cibernético, o AmCache pode ser a chave para identificar artefatos perdidos (por exemplo, ransomware que se auto apaga), permitindo que analistas pesquisem padrões deixados pelo atacante, como nomes de arquivos e diretórios. Ademais, o AmCache armazena os hashes SHA-1 dos arquivos executados, o que permite aos profissionais de forense a pesquisa em feeds de threat intelligence (como o OpenTIP e VirusTotal) e a geração de regras para bloquear os arquivos identificados em outras máquinas presentes na rede.

Este artigo apresenta uma análise abrangente do artefato AmCache, permitindo que os leitores compreendam melhor o seu funcionamento interno. Além disso, apresentamos uma nova ferramenta chamada “AmCache-EvilHunter“, que pode ser utilizada por qualquer profissional para analisar facilmente o arquivo Amcache.hve e extrair indicadores de comprometimento (IOCs). A ferramenta também é capaz de consultar os feeds de inteligência supracitados para verificar detecções de arquivos maliciosos; esse nível de automação integrada reduz o esforço manual e acelera a detecção de ameaças, o que é de grande valor para analistas e equipes de resposta.

A importância das evidências de execução

A evidência de execução é fundamental para a análise forense digital e resposta a incidentes, pois ajuda os investigadores a reconstruírem como o sistema foi utilizado durante uma invasão. Artefatos como o Prefetch, ShimCache e UserAssist oferecem pistas sobre o que foi executado. O AmCache também é um artefato robusto para identificação de evidência de execução, preservando metadados que indicam a presença e a execução de um arquivo, mesmo que o arquivo tenha sido excluído ou modificado. Uma vantagem do AmCache em relação a outros artefatos do Windows é que ele armazena o hash do arquivo, o que é extremamente útil para os analistas, pois pode ser usado para buscar arquivos maliciosos pela rede, aumentando a probabilidade de identificar completamente, conter e erradicar a ameaça.

Introdução ao AmCache

O Application Activity Cache (AmCache) foi introduzido pela primeira vez no Windows 7 e completamente implementado no Windows 8 e superiores. Seu propósito é substituir o antigo RecentFileCache.bcf em sistemas recentes. Ao contrário do seu antecessor, o AmCache inclui informações forenses valiosas sobre execução de programas e drivers carregados.

Esse artefato é armazenado como um arquivo de hive de registro chamado Amcache.hve no diretório C:\Windows\AppCompat\Programs. Os metadados armazenados nesse arquivo incluem os caminhos dos arquivos, dados dos desenvolvedores, timestamps de compilação, tamanhos de arquivos e hashes SHA-1.

É importante destacar que o formato do AmCache não depende da versão do sistema operacional, mas sim da versão das bibliotecas (DLLs) responsáveis por preencher o cache. Dessa forma, mesmo sistemas Windows com diferentes níveis de atualização podem apresentar pequenas diferenças na estrutura dos arquivos AmCache. As bibliotecas conhecidas usadas para preencher esse cache estão armazenadas em %WinDir%\System32 com os seguintes nomes:

  • aecache.dll
  • aeevts.dll
  • aeinv.dll
  • aelupsvc.dll
  • aepdu.dll
  • aepic.dll

Vale ressaltar que esse artefato possui algumas particularidades e limitações. O AmCache calcula o hash SHA-1 considerando apenas os primeiros 31.457.280 bytes (aproximadamente 31 MB) de cada executável; portanto, comparar seu hash online pode falhar para arquivos que excedam esse tamanho. Além disso, Amcache.hve não é realmente um log de execução: ele registra arquivos em diretórios examinados pelo Microsoft Compatibility Appraiser, executáveis e drivers copiados durante a execução de programas, e aplicativos GUI que exigiram shimming de compatibilidade. Apenas a última categoria indica execução real de forma confiável. Itens nos dois primeiros grupos simplesmente confirmam a presença do arquivo no sistema, sem dados sobre se ou quando foram executados.

No mesmo diretório, podemos encontrar arquivos LOG adicionais usados para garantir a consistência do Amcache.hve e operações de recuperação:

  • C:\Windows\AppCompat\Programs\Amcache.hve.*LOG1
  • C:\Windows\AppCompat\Programs\Amcache.hve.*LOG2

O arquivo Amcache.hve pode ser coletado de um sistema para análise forense usando ferramentas como Aralez, Velociraptor ou Kape.

A estrutura do Amcache.hve

O arquivo Amcache.hve é um hive do Registro do Windows no formato REGF; ele contém várias subchaves que armazenam diferentes classes de dados. Um parser simples em Python pode ser implementado para iterar o Amcache.hve e apresentar suas chaves.

O resultado desse parser ao ser executado é: