TL;DR. A ShimCache prova que um ficheiro existiu em disco. A AmCache prova que foi executado e identifica-o por SHA-1. A ShimCache só descarrega num clean shutdown. A AmCache escreve continuamente. Recolha as duas. São coelhas-testemunhas, não substitutas.
Cada analista júnior que integrei fez a mesma pergunta na primeira semana: "Se a AmCache é melhor, porque é que ainda extraímos a ShimCache?" A resposta é que registam eventos diferentes, em momentos diferentes, com modos de falha diferentes. Trate-as como substitutas e escreverá relatórios que se desfazem na primeira revisão técnica.
Numa rápida vista de olhos
| ShimCache | AmCache | |
|---|---|---|
| Localização no registo | HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\AppCompatCache | C:\Windows\AppCompat\Programs\Amcache.hve |
| Capacidade | Até cerca de 1024 entradas | Milhares de entradas, sem limite fixo |
| Dados por entrada | Caminho, mtime do ficheiro, flag de execução (legado) | Caminho, SHA-1, tamanho, publisher, data de instalação e muito mais |
| Quando é escrita | Apenas em clean shutdown | Continuamente e em execuções da tarefa Appraiser |
| Sobrevive a reboot forçado | Não, perde entradas recentes | Sim, já está em disco |
| Melhor para | Provar que um ficheiro existiu em disco | Provar que um ficheiro correu e identificá-lo por hash |
Quando a ShimCache ganha
A cache dispara em exame, não em execução. Essa sensibilidade torna-a a melhor testemunha para ficheiros que um atacante largou brevemente e depois apagou. Um binário que aterrou em C:\Users\Public\ às 14:33 e foi eliminado às 14:35 pode ainda aparecer na ShimCache se o Windows lhe tiver tocado por qualquer razão nessa janela de dois minutos.
A cache transporta também o mtime $STANDARD_INFORMATION do ficheiro. Esse timestamp não é uma hora de execução. É uma propriedade do ficheiro, o que significa que sobrevive a renomeações e cópias que preservem metadata. Útil para agrupar builds relacionados entre hosts. Inútil para sequenciar eventos numa timeline, como detalhado em o que o timestamp da ShimCache realmente significa.
Quando a AmCache ganha
Pergunte à AmCache "este binário foi de facto executado, e qual binário exatamente?" e obterá uma resposta real. Cada entrada InventoryApplicationFile em Amcache.hve traz um hash SHA-1, tamanho do ficheiro, publisher, estado de assinatura, e um LastWrite por ficheiro que funciona como proxy de "quando o Appraiser deu por isto". Isto basta para pivotar para o VirusTotal, para threat intel, ou para outros hosts do parque mesmo quando o ficheiro em disco já desapareceu há muito.
O modelo de persistência também ganha. A AmCache é descarregada pelo compattelrunner.exe em agenda e em eventos de instalador. Reboots forçados e BSODs não destroem silenciosamente a atividade recente como fazem com a ShimCache. Extraia Amcache.hve mais Amcache.hve.LOG1 e Amcache.hve.LOG2 para reproduzir quaisquer transações pendentes.
Usando as duas em conjunto
Trate-as como coelhas-testemunhas com pontos cegos diferentes.
- Ambas presentes, caminhos coincidem. Forte evidência de execução. Use a AmCache para identidade baseada em hash, a ShimCache para confirmar que o ficheiro viveu naquele caminho a dado momento.
- Só ShimCache. O ficheiro existiu. Execução não está provada. Procure corroboração em Prefetch, EVTX, ou BAM/DAM.
- Só AmCache. O host não teve um clean shutdown desde a atividade. A ShimCache nunca descarregou. Tire um dump de RAM se a máquina ainda estiver ligada; a ShimCache em memória está lá.
- Nenhuma presente, mas suspeita de atividade. Verifique se a tarefa Appraiser correu. Um Compatibility Appraiser desativado produz hives AmCache aparentemente vazias.
Para os detalhes técnicos da disposição, veja o passo a passo do formato binário do Windows 10/11. Para analisar uma hive já sem instalar nada, largue-a no Shimcache Parser. Corre inteiramente no browser.
Leitura adicional
- AppCompatCacheParser do Eric Zimmerman, implementação de referência em C#.
- Artefacto
Windows.Registry.AppCompatCachedo Velociraptor, lógica de recolha em sistema vivo. - ShimCache & AmCache forensic analysis de Mehrnoush, percurso orientado a casos.