
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.
1 2 3 4 5 6 7 8 9 10 |
#!/usr/bin/env python3 import sys from Registry.Registry import Registry hive = Registry(str(sys.argv[1])) root = hive.open("Root") for rec in root.subkeys(): print(rec.name()) |
O resultado desse parser ao ser executado é: