Construindo uma timeline de execução de programas a partir de uma hive SYSTEM

4 min de leitura

TL;DR. Construa uma timeline fundida de ShimCache + AmCache + Prefetch + BAM/DAM + Security/Sysmon. Use o ShimCache para definir o elenco (caminhos), depois enriqueça cada linha com timestamps de outras fontes. Etiquete cada timestamp com sua semântica de origem — nunca colapse «mtime do arquivo» e «início do processo» na mesma coluna.

Uma timeline de execução de programas é o artefato singular mais útil que um investigador IR de Windows produz. Bem feita, conta uma história cronológica através de várias fontes. Mal feita, exagera as evidências e é contestada. Este post mostra como construir uma com o ShimCache como espinha dorsal.

Por que o ShimCache é uma boa espinha dorsal

O ShimCache raramente é a fonte mais precisa para qualquer campo individual, mas tem vantagens únicas como âncora temporal:

  • Carrega o caminho do arquivo explicitamente (alguns artefatos só têm hashes ou caminhos parciais).
  • Captura executáveis que o Windows apenas examinou — portanto inclui binários que rodaram brevemente e foram apagados, que Prefetch e BAM podem perder.
  • Sobrevive a muitas tentativas anti-forenses que apagam outros artefatos (com ressalvas importantes).

Use o ShimCache para definir o elenco da sua timeline, depois enriqueça cada linha com artefatos corroborantes para atribuir horários confiáveis.

As fontes a fundir

Uma timeline completa de execução puxa de pelo menos estas cinco:

FonteO que adiciona à linha
ShimCacheCaminho + mtime do arquivo
AmCacheSHA-1, tamanho, editor, data de instalação, data da primeira execução
PrefetchHorários de início de processo (até os 8 últimos), arquivos carregados
BAM/DAMTimestamp «última execução» por usuário no Win10/11
Security/SysmonEventos de criação de processo com linha de comando, parent, usuário

Para o detalhe de cada uma, veja a referência de artefatos de execução.

Um fluxo reprodutível

  1. Colete os artefatos. Hive SYSTEM (com logs de transação), Amcache.hve, C:\Windows\Prefetch\*.pf, log Security exportado, log Sysmon se disponível.
  2. Parseie cada um em uma tabela normalizada. Use a suíte Eric Zimmerman (AppCompatCacheParser, AmcacheParser, PECmd) ou o Shimcache Parser para a parte ShimCache no seu navegador.
  3. Funda em (caminho, SHA-1 opcional). A chave de junção é o caminho, com SHA-1 como sinal secundário quando AmCache fornece. Cuidado: o ShimCache pode ter o caminho ligeiramente diferente (maiúsculas, normalização).
  4. Rotule cada timestamp com sua semântica de fonte. Não funda «data de instalação AmCache» e «horário de execução Prefetch» em uma única coluna — respondem a perguntas diferentes. Mantenha-as adjacentes mas distintas.
  5. Renderize com uma ferramenta que lide com atribuição por linha. O Timeline Explorer (TLE) de Eric Zimmerman e o Plaso / log2timeline fazem isso bem. CSV em planilha funciona para casos menores.

Como uma linha «boa» se parece

Uma linha defensável em uma timeline final se parece com:

2026-04-12 09:14:33 UTC  C:\Users\alice\AppData\Local\Temp\setup.exe
  ShimCache mtime : 2026-04-12 09:14:30 UTC
  AmCache         : SHA-1 a3b8c9…, signatário «Acme Updates», install 2026-04-12 09:14:33
  Prefetch        : última execução 2026-04-12 09:15:01 UTC (1 execução)
  Security 4688   : 2026-04-12 09:15:01 UTC, PID 4521, PID pai 1234 (svchost.exe)

Cada timestamp é fonteado e a linha aguenta contestação. O oposto — «o ShimCache mostra que setup.exe rodou às 09:14:33» — confunde mtime do arquivo com horário de execução e é o tipo de afirmação que faz um relatório ser rejeitado. Veja prova de execução.

Quando as fontes discordam

Conflitos são dados úteis:

  • mtime ShimCache ≠ primeira execução Prefetch. Normal — eles medem coisas diferentes. Anote ambos, não escolha um.
  • AmCache diz executado, ShimCache está vazio para esse arquivo. Possíveis razões: apagamento anti-forense (padrões de detecção), entrada expulsa do teto de 1.024, binário que rodou depois do último desligamento limpo.
  • Prefetch ausente. SKUs de servidor e hosts pesados em SSD frequentemente têm Prefetch desabilitado — caia para AmCache + BAM.

Parar no ponto certo

Uma timeline não precisa ser completa para ser valiosa. Uma janela focada — «o que rodou no host X entre 14:00 e 18:00 do dia 2026-04-11?» — construída rigorosamente bate uma sprawling com atribuição fraca. O fluxo de caça a malware te ajuda a escolher essa janela.

Leitura adicional

Artigos relacionados