← Voltar ao blog

Provar que um arquivo existiu em um sistema Windows

· 2 min de leitura

Investigações forenses giram com frequência em torno de uma única pergunta: este arquivo já esteve neste computador? Não «está no disco agora?» — isso é dir. A versão difícil é: dá para mostrar que estava no disco ontem, na semana passada, no ano passado? Em volumes NTFS, o $MFT costuma ser a resposta mais sólida.

O que sobrevive a uma exclusão

Quando um arquivo é excluído no NTFS, o bit «em uso» do seu registro MFT é apagado, mas o restante do registro fica. Esse registro carrega:

  • o nome completo (em $FILE_NAME);
  • a referência ao diretório pai;
  • quatro timestamps (criação, modificação, acesso, modificação MFT) — em duplicata, em SI e FN;
  • os tamanhos lógico e físico;
  • para arquivos pequenos, todo o conteúdo ($DATA residente);
  • para arquivos maiores, a runlist dos clusters que continham os dados.

Cada um desses é evidência direta. Um registro MFT excluído com $FILE_NAME = plano-secreto.docx, diretório pai \Users\bob\Documents e SI-criação 2024-11-03T14:02:11Z demonstra que um arquivo com esse nome existiu naquele diretório naquele dia, independentemente do que o dir mostraria hoje.

A força probante

Três propriedades fazem dos registros MFT uma evidência forense robusta:

  1. O próprio NTFS os escreve. Não são editáveis pelo usuário com ferramentas comuns do Windows. Um réu não pode alegar que foram plantados sem que o $MFT inteiro tenha sido forjado — tarefa colossal.
  2. Oito timestamps se cruzam entre si. A manipulação costuma deixar marca: SI alterado mas FN intacto é a assinatura do timestomping.
  3. $UsnJrnl e $LogFile corroboram. Se o $MFT diz que um arquivo foi criado em T, o change journal deve registrar o evento na mesma hora. Discrepâncias são, elas mesmas, evidência.

O que o $MFT não prova sozinho

O $MFT prova que o arquivo existia em determinado diretório em determinado momento. Não prova:

  • quem o criou ou acessou — exige os Security event logs;
  • qual programa o produziu — Prefetch e ShimCache ajudam aqui;
  • o que continha, para arquivos grandes — a menos que se recupere os clusters de dados;
  • se um usuário chegou a abri-lo — Jump Lists e arquivos LNK são mais úteis.

Uma resposta completa costuma fundir o $MFT com os artefatos vizinhos. Mas o $MFT é a pedra angular — sem ele, os demais não têm a que se ancorar.

Recursos externos