forense

Introdução à análise forense – Sleuthkit

DWOS - Djames Watson

Acredito que muitos devam ter assistido a entrevista que dei ao sistemas embarcados (se não, veja lá no canal DobitAoByteBrasil e não esqueça de se inscrever). Quem viu, sabe que sou perito forense ad-hoc e por essa razão, tenho meus “TOCs”. Bem, recentemente estava em uma determinada tarefa, bastante simples e, o que pode dar errado em uma tarefa simples, não é mesmo? Apenas criando um script rc, nada de mais. Só que em determinado momento executei um comando para listar as variáveis relacionadas e adivinha só? Um determinado diretório foi excluído. Por qual razão? Não sei, não deveria ter acontecido e não tinha como analisar, afinal o /home estava na mesma partição do restante do sistema (Linux, porque não uso outro sistema). Por essa razão decidi começar alguns tutoriais novos sobre análise forense, mostrar algumas ferramentas e boas práticas para facilitar diagnósticos.

Sleuthkit

Nesse artigo vou mostrar alguns recursos do Sleuthkit, uma excelente ferramenta que já tive algumas oportunidades de trabalhar com ela e que poderia ter me ajudado a recuperar 100% dos arquivos excluídos, além de que eu poderia ter encontrado a razão pela qual os arquivos foram excluídos. Não vou reproduzir ou citar o ambiente por questões de segurança, mas vou criar alguns exemplos para que você possa também experimentar a ferramenta.

Se esse é um assunto que te interessa, talvez você queira ler sobre cadeia de custódia também. Uma coisa que muitas pessoas desejam é o superres, aquele “zoom” mágico do CSI. Tem um artigo a respeito aqui, mas trazido para a realidade. Nesse artigo mostro outras interações interessantes com imagem e video, vale a pena conferir.

Sistema de arquivos

Na perícia forense digital, a maioria das informações importantes estão no sistema de arquivos, seja ele um HD, um pendrive, um cartão de memória ou qualquer outro dispositivo de bloco.

Timelines

Toda a análise forense consiste em remontar um evento, conforme ele ocorreu no tempo. Não é apenas questão de confirmar que algo ocorreu, mas em que momento e de que modo; quais passos antecederam e procederam um ou mais eventos. A reconstituição de uma cadeia de eventos é chamada de timeline e sem ela a perícia não teria valor algum. Para não virar um livro, vou discorrendo sobre cada assunto conforme for exemplificando, assim desfrutaremos de interação, que é muito mais legal do que encher a cabeça de teorias; o entendimento será absorvido mais facilmente assim, acredito.

Preparando um ambiente para diversão

Alguns pré-requisitos devem ser supridos para que possamos brincar com as ferramentas disponíveis no sleuthkit.

  • Linux – Você vai precisar de um sistema Linux.
  • Instalar o sleuthkit – Podemos fazer isso pelo gerenciador de pacotes mesmo.
  • Ter um sistema de arquivos para análise – criaremos um.

Instalando ferramentas para análise forense digital

Tendo o Linux instalado (recomendo qualquer um baseado em Debian e, preferencialmente Debian), instalemos agora o sleuthkit e aproveitemos para instalar outras ferramentas que utilizaremos posteriormente:

Agora, o último passo antes de iniciarmos a brincadeira.

Preparando um sistema de arquivos

Se desejar, pode utilizar um HD externo, um pendrive ou um cartão de memória. No exemplo, criaremos um sistema de arquivos em arquivo para fazer os testes iniciais. Proceda com os comandos:

Não poderemos fazer uma análise de tabela de partições desse modo, mas futuramente escrevo algo a respeito sobre a constituição do gerenciador de boot e da tabela de partições.

Procurando por dados não alocados

O que não foi excluído, está visível no disco. Na perícia forense digital esses dados também são analisados, mas separadamente. O que faremos nesse momento é separar os dados não alocados; isto é, pegar os dados que estão na mídia de armazenamento cujo clusters correspondente a cada arquivo esteja liberado para escrita. Isso porque quando excluímos um arquivo ele não é realmente apagado do disco, isso seria um trabalho desnecessário para o sistema de arquivos. O que acontece realmente é que como esses setores se tornarão disponíveis para escrita novamente, o sistema de arquivos simplesmente remove a “trava de proteção”, eliminando as informações da superfície, mas deixando os dados escritos intocados.

Vamos criar alguns arquivos no nosso sistema de arquivos fake, mas primeiramente, devemos montá-lo para que possa ser escrito:

Agora, podemos copiar alguns arquivos para lá. Copiei 3 arquivos jpg e um arquivo txt:

análise forense
análise forense

 

Primeiro, vamos verificar como ficou o sistema de arquivos. Desmonte a partição fake com o comando umount /mnt e execute o seguinte comando:

Como o sistema de arquivos é novo e só temos alguns arquivos alocados, o resultado será algo como:

análise forense
análise forense

Vamos começar excluindo um arquivo. Vou apagar o arquivo dobitaobyte.txt. Para apagar um arquivo, monte novamente o sistema de arquivos e execute o comando rm -f nomeDoArquivoPretendido.

Executando novamente o comando fls veremos uma modificação na saída do comando, mostrando com um asterísco o arquivo desalocado:

análise forense
análise forense

Timeline

Até agora foi só o preparatório, vamos iniciar um busca nos arquivos desalocados. Nesse exemplo está bastante simples; temos poucos arquivos e sabemos qual arquivo foi excluído e é desejado recuperar. Então, sabendo que o arquivo desalocado é o dobitaobyte.txt, o primeiro passo é coletar os dados para a timeline:

análise forense
análise forense

Já podemos iniciar a informação da timeline no laudo pericial, pois temos evidências de que o arquivo foi criado Dia 11 de Fevereiro de 2018, às 08:04:20 e foi excluído às 08:20:19. Só faz parte da perícia recuperar o arquivo quando da necessidade de analisar o conteúdo. Por exemplo, Sr Fulano apagou a planilha de propinas e esse arquivo é alvo de investigação. Claro que de forma indireta, porque ninguém imagina se o conteúdo está em uma planilha, um arquivo txt, um pdf etc. Deixaremos a recuperação para o próximo artigo.

Apenas como adicional, supondo que arquivos tenham sido apagados de um computador Linux e desejassemos descobrir de que modo isso aconteceu, bastaria recuperarmos o arquivo .bash_history para analisar os comandos digitados pelo usuário para descobrir se foi intencional ou acidental. Isso é comum por exemplo em casos de vingança por parte de um funcionário demitido.

Procedimentos diferentes devem ser adotados conforme o sistema de arquivos. Para diversos sistemas de arquivos suportados (e mais comumente utilizados) em Linux, esse procedimento deve funcionar a contento.

Siga-nos no Do bit Ao Byte no Facebook.

Prefere twitter? @DobitAoByte.

Inscreva-se no nosso canal Do bit Ao Byte Brasil no YouTube.

Nossos grupos:

Arduino BR

https://www.facebook.com/groups/microcontroladorarduinobr/
Raspberry Pi BR

https://www.facebook.com/groups/raspberrybr/
Orange Pi BR

https://www.facebook.com/groups/OrangePiBR/
Odroid BR

https://www.facebook.com/groups/odroidBR/
Sistemas Embarcados BR

https://www.facebook.com/groups/SistemasEmbarcadosBR/

Sistemas Eletrônicos

https://www.facebook.com/groups/544679592355388/

Projetos Arduino | Eletrônica

https://www.facebook.com/groups/projetosarduinoeletronica/

ESP8266 e ESP32

https://www.facebook.com/groups/ESP8266BR/

ARM Brasil

https://www.facebook.com/groups/508153815944410/

MIPS BR

https://www.facebook.com/groups/MIPSBR/
Do Bit ao Byte

https://www.facebook.com/groups/dobitaobyte/

Próximo post a caminho!