sexta-feira, 28 de fevereiro de 2014

Técnicas anti-forense para ocultação de dados

Neste primeiro post, abordaremos a técnica denominada File Slack Space, que nada mais é do que a utilização dos espaços subaproveitados de um ou mais blocos de um sistema de arquivos para ocultar informações.
Os sistemas de arquivos armazenam as informações em disco utilizando blocos de dados de tamanho fixo (1Kb, 2Kb ou 4Kb). Contudo, os arquivos em um disco podem ter os mais variados tamanhos, dependendo do seu conteúdo. Desta forma, raramente o tamanho de um arquivo é múltiplo do tamanho de um bloco, o que impede seu armazenamento ideal. Sendo assim, é comum que o último bloco associado a um arquivo não seja totalmente utilizado por ele, permitindo que dados excluídos deste e de antigos arquivos possam ser capturados e analisados.
A figura abaixo ilustra um bloco de 4 Kb com um slack space com mais de um setor de 512 bytes:

Isso não significa dizer que os slack spaces são espaços livres para armazenamento de dados de forma convencional. Os blocos que contém slack spaces são marcados pelo sistema operacional como utilizados e somente serão sobrescritos pelo sistema de arquivos caso o arquivo que o ocupa for expandido. Para o armazenamento, detecção e recuperação de informações em slack spaces, é preciso utilizar ferramentas especializadas, como por exemplo o bmap para sistemas de arquivos ext2/ext3 ou o slacker para NTFS. Essas ferramentas são necessárias pois o sistema operacional ignora as informações armazenadas em slack spaces, uma vez que não há alteração aparente no checksum ou no MAC Time dos arquivos envolvidos.

Bmap

Bmap é uma ferramenta forense que pode ser obtida de forma gratuíta. Após sua compilação, podemos ocultar ou recuperar alguma informação e/ou arquivo de forma bem simples.
Em primeiro lugar, devemos identificar algum arquivo já gravado que possua slack space. O comando abaixo exibe a espaço utilizado (277 bytes) pelo arquivo /etc/hosts e seu espaço livre (3819 bytes).
  [root@grego ~]# bmap --mode slack /etc/hosts
  getting from block 2148457
  file size was: 277
  slack size: 3819
  block size: 4096
Sabemos que o arquivo /etc/hosts possui 3819 bytes de espaço livre para armazenar informações. Antes de armazenar alguma informação no slack space, vamos extrair o checksum do arquivo:
  [root@grego ~]# md5sum /etc/hosts
  b0627774adcc1129143b2d1d08ecd133  /etc/hosts
Vamos extrair também as informações de MAC Time do arquivo, para compararmos com após a ocultação das informações:
  [root@grego ~]# stat /etc/hosts
  File: `/etc/hosts'
  Size: 277             Blocks: 16         IO Block: 4096   regular file
  Device: fd00h/64768d    Inode: 2131987     Links: 1
  Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
  Access: 2009-10-29 01:54:10.000000000 -0200
  Modify: 2009-09-18 12:55:16.000000000 -0300
  Change: 2009-09-18 12:55:16.000000000 -0300
Podemos ocultar um texto, binário ou imagem usando o pipe para direcionar a saída do comando para o programa bmap. O exemplo abaixo ilustra a ocultação de um texto simples:
  [root@grego ~]# echo "Hello World" | bmap --mode putslack /etc/hosts
  getting from block 2148457
  file size was: 277
  slack size: 3819
  block size: 4096
Podemos confirmar que o MAC Time e o checksum não foram alterados:
  [root@grego ~]# md5sum /etc/hosts
  b0627774adcc1129143b2d1d08ecd133  /etc/hosts
  [root@grego ~]# stat /etc/hosts
  File: `/etc/hosts'
  Size: 277             Blocks: 16         IO Block: 4096   regular file
  Device: fd00h/64768d    Inode: 2131987     Links: 1
  Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
  Access: 2009-10-29 01:54:10.000000000 -0200
  Modify: 2009-09-18 12:55:16.000000000 -0300
  Change: 2009-09-18 12:55:16.000000000 -0300
Para listar o conteúdo armazenado no slack space de um arquivo, o comando abaixo pode ser executado:
  [root@grego ~]# bmap --mode slack /etc/hosts
  getting from block 2148457
  file size was: 277
  slack size: 3819
  block size: 4096
  Hello World
Para apagar o conteúdo armazenado no slack space, preservando o conteúdo original de um arquivo, o comando abaixo pode ser executado:
  [root@grego ~]# bmap --mode wipe /etc/hosts
Para identificar se um arquivo têm seu slack space utilizado, podemos utilizar o comando abaixo:
  [root@grego ~]# bmap --mode checkslack /etc/hosts
  /etc/hosts does not have slack

Conclusão

A análise de informações extraídas das áreas não acessíveis através de um sistema de arquivos é, na maioria das vezes, um processo tedioso e demorado já que esses dados geralmente constituem um fluxo de bits sem estrutura alguma aparente. Porém, com o uso de ferramentas adequadas, pode-se obter bons resultados no processo investigativo.
Espero que isso não seja mais "grego" para você!!

Fonte:http://www.dicas-l.com.br

0 comentários:

Postar um comentário