Wednesday, May 4, 2011

Detalhes dos Artefatos da Lixeira do Windows

Sempre que vou falar da lixeira do Windows e explicar as peculiaridades de como o sistema operacional trata este diretório, começo com a pergunta: No Windows, eu consigo criar dois arquivos com o mesmo nome na mesma pasta? E duas pastas com o mesmo nome, é possível?

A resposta óbvia para esta pergunta é NÃO, então eu mostro esta janela:

Explique, Mr. M!??!!

A resposta, claro, continua sendo não. Isso não é uma limitação do Windows, e sim do file system. Inclusive, é uma limitação comum a todos os file system que conheço... O fato é que o Windows trata de uma forma muito especial a Lixeira do sistema operacional, garantindo que o usuário possa mover arquivos para este "repositório temporário" sem perda de informações, até que seja selecionada a opção "Esvaziar Lixeira", onde então o Windows irá eliminar os arquivos (a.k.a. marcar o espaço utilizado pelo arquivo como espaço não utilizado =D ) ou "Restaure" o arquivo para seu local de origem.
Até o  Windows XP, a Microsoft tratava a Lixeira de uma forma, e mudou um pouco no Windows Vista, mantendo estas alterações para o Windows 7.

Até o Windows XP funciona assim:
Em file system FAT, a pasta é chamada de Recycled e arquivo INFO2 mantém registros de 280 bytes que contêm o nome do arquivo (255 caracteres) e a data/hora da exclusão.
Em file system NTFS, a pasta é chamada de Recycler. O arquivo INFO2 mantém registros de 800 bytes que contêm o nome do arquivo, o nome do arquivo em UNICODE e a data/hora da exclusão.

Quando o arquivo é movido para a lixeira, ele é renomeado. Por exemplo, quando o arquivo c:\foto.jpg é movido para a lixeira, ele é renomeado para DC1.jpg, onde:
  • D - deleted file, identifica que é um arquivo que foi "movido para a lixeira";
  • C - drive de origem do disco (DC* se o arquivo original estiver no drive C:\, DD* se estiver no drive d:\);
  • 1 - índice do arquivo, número do arquivo até a exclusão definitiva do arquivo;
  • .JPG - extensão do arquivo original.
Todos os arquivos DC*.JPG são então listados no arquivo INFO2.



A partir do Windows Vista, a Microsoft fez assim: quando um arquivo é movido para a lixeira, ele é renomeado e são criados dois arquivos: $I*.* e $R*.*. Por exemplo, quando o arquivo c:\foto.jpg é movido para a lixeira, ele é renomeado para $R4SF903.jpg e é criado um $I4SF903.jpg "casando" com este arquivo.





A estrutura deste arquivo $I* é:

  • Bytes 0-7: Cabeçalho (header) – geralmente como 01 00 00 00 00 00 00 00.
  • Bytes 8-15: Tamanho do arquivo original – armazenado em hex, formato little-endian.
  • Bytes 16-23: Data e hora que o arquivo foi movido para a lixeira – representado em números de segundos desde 01 de Janeiro de 1601.  
  • Bytes 24-543: Caminho e nome do arquivo original.

Tanto o FTK quanto o EnCase são capazes de trabalhar e interpretar as informações dos arquivos INFO2 e $I*


Leitura recomendada:

http://www.forensicfocus.com/downloads/forensic-analysis-vista-recycle-bin.pdf
http://whereismydata.files.wordpress.com/2009/07/vista-recycle-bin-forensics.pdf
http://dereknewton.com/2010/06/recycle-bin-forensics-in-windows-7-and-vista/

No comments:

Post a Comment