GRAVAÇÃO DE ARQUIVOS E RECUPERAÇÃO DE DADOS (pt. 1) – ANÁLISE FORENSE

Olá!

Bem-vindo a série de postagens que introduz conhecimentos sobre gravação de arquivos e recuperação de dados. Nesta postagem apresentarei o processo de criação de arquivos e conceitos importantes, como espaço livre não alocado e arquivos excluídos. Também cobrirei a lixeira do Windows e uma ferramenta para examiná-la (Rifiuti2).

Nas próximas postagens veremos as ferramentas de escultura de arquivo. Ferramentas para recuperar automaticamente arquivos excluídos de uma imagem de disco, como Foremost, Scalpel e Photorec. Em seguida, mostrarei como usar o extrator em massa, uma ferramenta que extrai muitas informações, incluindo as excluídas de uma imagem de disco.

VISÃO GERAL DA ESCULTURA DE ARQUIVOS

Nesta primeira postagem da série vamos dar uma olhada no processo de construção de arquivo e conceitos importantes como folga de espaço não alocado e arquivos excluídos. Também cobrirei Rifiuti2 para examinar a lixeira do Windows.

INTRODUÇÃO AO ESPAÇO FOLGA (SLACK SPACE)

Na postagem https://douglasmendes.code.blog/2020/05/06/visao-geral-das-ferramentas-sleuth-kit-o-kit-detetive-e-dos-sistemas-de-arquivos/ vimos que as menores unidades de dados endereçáveis no sistema de arquivos são chamadas de blocos ou clusters. Eles podem ser de tamanhos diferentes, dependendo do sistema de arquivos, mas geralmente são usados blocos de 4 kilobytes. O tamanho do bloco é, portanto, o menor espaço em disco que um arquivo pode usar. Se o arquivo for maior do que o tamanho do bloco, então vários blocos são alocados para esse arquivo.

O número de blocos utilizado para um arquivo depende do tamanho do arquivo. Se o tamanho do arquivo não for um múltiplo exato do tamanho do bloco, o último bloco alocado será usado apenas parcialmente para armazenar os dados do arquivo. O espaço deixado entre o final lógico do arquivo e o final do bloco é chamado de espaço folga (slack space).

IMAGEM: Digital Forensics with Kali Linux – Packt>

Por exemplo, como podemos ver neste diagrama, se o tamanho de um arquivo ocupa apenas dois kilobytes do último bloco, e o tamanho do bloco é de 4 kilobytes, ele usa apenas os primeiros dois kilobytes e os dois restantes do bloco não são usados e formam a folga do arquivo.

ARQUIVOS EXCLUÍDOS E ESPAÇO NÃO ALOCADO

A análise de folga é importante para um examinador forense porque algumas ferramentas, por exemplo BMAP (no Linux) (https://github.com/intel/bmap-tools), permitem ocultar dados em uma folga de arquivo. O espaço livre (folga) também pode conter resquícios de um arquivo excluído anteriormente. Na verdade, quando o arquivo for excluído, a entrada de diretório relativa é removida, mas a entrada da tabela de arquivos mestre no Windows e o inode no Linux ainda permanecem. Além disso, seu bloco alocado permanece intacto, mas são marcados como livres, os quais não são usados e podem ser alocados para outro arquivo.

Esses blocos são parte do chamado espaço não alocado (unallocated space), também podendo residir entre duas partições de disco. Eles podem ser revelados pelas ferramentas The Sleuth Kit, como vimos na postagem referente.

Até que eles não sejam alocados novamente e sobrescritos, o conteúdo dos blocos pode ser recuperado usando as ferramentas do Sleuth Kit ou com ferramentas específicas de escultura de dados, como veremos na próxima postagem.

INTRODUÇÃO À ESCULTURA DE DADOS (DATA CARVING)

Data Carving é o processo de identificar e extrair dados significativos do espaço não alocado e vazio. Geralmente é executado para recuperar os arquivos excluídos que não têm mais uma entrada na tabela de arquivos, que poderia dizer quais blocos de dados foram alocados para eles.

Na postagem https://douglasmendes.code.blog/2020/06/27/ferramentas-de-analise-de-arquivos-analise-forense/ vimos que os arquivos são identificáveis através dos números mágicos incluídos no cabeçalho dos arquivos. A escultura de dados se baseia em localizar o número mágico de um determinado tipo de arquivo e copiar todos os dados binários entre ele e o marcador de fim de arquivo correspondente (ou EOF – End of File). Se os dados dos arquivos forem armazenados em blocos contíguos, o processo será direto. Se o arquivo estiver fragmentado, seus blocos estarão espalhados no disco. Assim, o Data Carving se torna mais desafiador.

A LIXEIRA DO WINDOWS

Algoritmos que usam técnicas que também podem lidar com a fragmentação de arquivos foram desenvolvidos e usados em ferramentas de carving. Em sistemas operacionais modernos, os arquivos não são excluídos permanentemente na primeira instância, a menos que o usuário o faça explicitamente. Em vez disso, são primeiro movidos para a lixeira (Recycle Bin) ou lixo (Trash) dependendo do sistema operacional.

Eles podem ser restaurados em seus locais originais ou excluídos permanentemente quando a lixeira for esvaziada. Os blocos de dados são deixados intocados e não são marcados como livres até que o arquivo permaneça lá.

Em sistemas Windows XP ou anteriores, os arquivos excluídos são movidos para a lixeira (C:\Recycler\) ou para a pasta nas subpastas com os nomes dos identificadores de segurança dos usuários. Os caminhos dos nomes dos arquivos originais e os tempos de exclusão são armazenados em um arquivo de índice denominado INFO2.

O Windows Vista e as versões mais recentes armazenam arquivos excluídos em um cifrão oculto (C:\$Recycle.Bin) com a mesma estrutura de subpastas do Windows XP. Porém, as informações sobre os arquivos não são armazenadas no INFO2, mas em um par de arquivos para cada arquivo excluído cujo nome começa com $I, $1 e $R. O primeiro tipo é um arquivo de índice que armazena as informações originais, enquanto o último tipo contém uma cópia da referência do arquivo excluído.

O uso do Rifiuti2 é direto. Simplesmente executamos a ferramenta com o arquivo INFO2 como parâmetro exclusivo.

rifiuti INFO2

IMAGEM: Do Autor

A saída exibe cada arquivo na lixeira, mostrando o caminho original e o tamanho do tempo excluído. Diferentemente, o rifiuti-vista geralmente é executado para verificar e analisar as subpastas da lixeira.

rifiuti-vista {DIRETORIO}

IMAGEM: Do Autor

IMAGEM: Do Autor

Como pudemos ver, a saída é semelhante ao comando rifiuti INFO2 porque exibe o índice com o caminho original do tempo excluído e o tamanho de cada arquivo.

Nesta postagem, abordei o processo de criação de arquivos. Apresentei conceitos como espaço em disco não alocado e espaço livre no arquivo, até mesmo a teoria por trás da identificação de arquivos excluídos. Em seguida, apresentei a Lixeira do Windows e expus como examiná-la com a ferramenta Rifiuti2.

Comente! Deixe seu Like!

Até breve!

2 comentários em “GRAVAÇÃO DE ARQUIVOS E RECUPERAÇÃO DE DADOS (pt. 1) – ANÁLISE FORENSE

Deixe um comentário