De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.

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

Colaboração: Alexandre Stratikopoulos

Data de Publicação: 05 de Novembro de 2009

Informações podem ser armazenados em discos rígidos sem a utilização das estruturas e facilidades de um sistema de arquivos. Desse modo, informações consideradas valiosas para um processo de análise forense podem estar armazenadas não somente nos arquivos, mas também em áreas do disco que não são acessíveis através do funcionamento normal de um sistema de arquivos.

Diversas técnicas são utilizadas para a ocultação de dados, as quais podem ser aplicadas em 3 camadas:

  • Camada de Hardware: MBR, HPA, DCO
  • Camada do Sistema de Arquivos: Slack Spaces, ADS, Extended Attributes
  • Camada de Aplicação: Esteganografia

File Slack Space

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ê!!

Artigo publicado originalmente em http://gregoweblog.blogspot.com/2009/10/tecnicas-anti-forense-para-ocultacao-de.html

Alexandre Stratikopoulos é um paulistano com alma grega. É formado Ciência da Computação e atualmente faz Mestrado em Engenharia da Computação no Instituto de Pesquisas Tecnológicas de São Paulo IPT/SP. Tendo como principal foco as tecnologias open-source, possui várias certificações em tecnologia, tais como: RHCE, RHCI, RHCX, RHCDS, RHCA, LPI-II, MCP. Atualmente trabalha como Consultor Senior na Red Hat Brasil, onde também atua como Instrutor e Examinador dos cursos e certificações oficiais da Red Hat. Acima de tudo, está sua paixão por tudo que seja relacionado à pátria de seus antepassados: Música, Cultura, História, Dança, Idioma, Churrasco Grego.

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


Veja a relação completa dos artigos de Alexandre Stratikopoulos