Manual
do
Maker
.
com
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.
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.
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.
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.
Alguns pré-requisitos devem ser supridos para que possamos brincar com as ferramentas disponíveis no sleuthkit.
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:
apt-get install autopsy dc3dd dcfldd ext4magic foremost forensics-all forensics-colorize forensics-extra forensics-extra-gui forensics-full ewf-tools myrescue scalpel sleuthkit testdisk undbx
Agora, o último passo antes de iniciarmos a brincadeira.
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:
dd if=/dev/zero of=filesystem.fake count=1048576 bs=512
sudo mkfs.ext4 filesystem.fake
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.
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:
sudo su
mount filesystem.fake /mnt/
Agora, podemos copiar alguns arquivos para lá. Copiei 3 arquivos jpg e um arquivo txt, sendo dobitaobyte o arquivo txt :
cp {AFSmartRadio,freertos,jiripoca,dobitaobyte}.* /mnt/
Primeiro, vamos verificar como ficou o sistema de arquivos. Desmonte a partição fake com o comando umount /mnt e execute o seguinte comando:
fls filesystem.fake
Como o sistema de arquivos é novo e só temos alguns arquivos alocados, o resultado será algo como:
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:
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:
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.
Inscreva-se no nosso canal Manual do Maker no YouTube.
Também estamos no Instagram.
Autor do blog "Do bit Ao Byte / Manual do Maker".
Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.