EXTRAINDO IMAGEM PARA ANÁLISE FORENSE COM A FERRAMENTA DC3DD

Olá a todos!
Iremos conversar sobre a ferramenta DC3DD para análise forense, que é uma ferramenta que roda pelo terminal (text-only). Nesta postagem, veremos como identificar nossa unidade de destino entre as unidades conectadas à estação de trabalho forense. Em seguida, abordaremos o procedimento de aquisição da imagem forense da unidade com o DC3DD.
Por fim, como assinar criptograficamente o arquivo de log de hash com o GPB.
Vamos lá?


IDENTIFICANDO O DRIVE ALVO


Como exemplo prático, irei extrair a imagem do mesmo Pendrive de 8Gb que utilizei nas postagens sobre a ferramenta GUYMAGER:


https://douglasmendes.code.blog/2020/04/18/fazendo-clonagem-de-hd-com-guymager-para-analise-forense/


https://douglasmendes.code.blog/2020/04/30/como-extrair-uma-imagem-de-um-disco-rigido-pelo-linux-utilizando-a-ferramenta-guymager-para-analise-forense/


Imaginemos que o pendrive (simulando um HD) que imaginamos ter removido de um computador suspeito antigo, presumimos ter anexado nossa unidade de destino à estação de trabalho forense usando um mecanismo de bloqueio correto. O primeiro passo é a identificação correta do drive.
Entre as outras unidades em nosso sistema, lembre-se de que o Linux identifica unidades como arquivos de dispositivo de bloco no diretório /dev. Geralmente, na forma de /dev/sdXN, está a letra que identifica a unidade, enquanto N é o número que representa o número da partição para listar todas as unidades conectadas. Para listar todas as unidades conectadas, podemos usar a ferramenta de disco seguida pela opção –l: (comando fdisk –l)

IMAGEM: Do Autor


A saída do comando mostra para cada unidade a capacidade e o número total de setores, o tipo de etiqueta do disco e o ID do disco. Abaixo, ele lista as partições nas quais o disco é dividido para cada partição da unidade. Há muitas informações detalhadas, como se a partição foi inicializável, setores em que a partição inicia e termina, número de setores, tamanho e tipo de sistema de arquivos.
No nosso caso, como sabemos que a unidade de destino tem 8 GB de tamanho, devemos relatar que ela é representada por /dev/sdb, pois possui capacidade total de 7,47 GB. O primeiro número é a capacidade total disponível para o usuário e pudemos ver que a unidade contém apenas uma partição marcada com o sistema de arquivos NTFS. Caso você ainda tenha alguma dúvida sobre a identificação da unidade, lembre-se de que podemos usar o HD PARK TOOL para obter informações mais detalhadas sobre a unidade.
No caso do meu pendrive ele não funcionou.Então, coloquei um HD Externo que se localizou em /dev/sdc e executei o comando hdparm -I /dev/sdb para exemplificar:

IMAGEM: Do Autor


A saída do comando mostra o número do modelo e o número de série. Podemos comparar esses dois valores com os impressos na própria unidade, para garantir que nossa unidade seja corretamente identificada.
Após identificar a unidade, podemos executar o DC3DD para adquirir sua imagem.Primeiro, temos que decidir um local para armazenar o arquivo de imagem de saída. Obviamente, esse local deve ter espaço livre suficiente para armazená-lo. Nesse caso, decidimos armazenar o arquivo de imagem do pendrive no disco rígido externo para ver o arquivo do dispositivo anexado. Para ver o arquivo do dispositivo associado ao disco, podemos executar como sempre DISK TOOLS:

IMAGEM: Do Autor
Como notamos, o disco rígido externo de 500 Gb está associado ao arquivo de dispositivo /dev/sdc. Para descobrir o diretório aonde esse dispositivo foi montado, utilizo o comando df –h. Nesse caso, ficou identificado na frente de /dev/sda1:

IMAGEM: Do Autor

Agora poderíamos executar a ferramenta DC3DD. O primeiro parâmetro a ser especificado é IF seguido pelo dispositivo de entrada que, no nosso caso, if=/dev/sdb. Em seguida, devemos especificar o parâmetro H-1 que leva o caminho e o nome do arquivo de imagem para onde copiar os dados de entrada. Precisamos especificar um local para salvar a imagem que tenha mais espaço livre do que o tamanho do dispositivo de entrada. A opção HOF calcula o algoritmo HASH da saída para verificar a integridade. Essa opção deve ser usada junto com o hash=, especificando quais algoritmos usar. Nesse caso, especificar entre SHA-1, SHA-256 e SHA-512. Também uso as opções de log= para registrar quaisquer erros, estatísticas e hashes de saída de entrada.

Agora podemos executar o comando. Antes de executar o comando, devemos garantir que o arquivo de saída de entrada não seja trocado. Caso contrário, substituiríamos a mídia de entrada. E, assim, destruímos a evidência digital com a qual o arquivo de entrada não especifica nenhum número de partição porque queremos adquirir o disco completo

O comando aplicado no meu caso foi dc3dd if=/dev/sdb hof=/media/root/’Backup BTC’/forense/casos/suspeito_pendrive.img hash=sha512 log=/media/root/’Backup BTC’/forense/casos/suspeito_pendrive.log :

IMAGEM: Do Autor


Pode ser que demore dependendo da velocidade do CPU x Memória Ram disponível x Velocidade do dispositivo de barramento (USB no meu caso). Também pode ser que o programa te exija criar as pastas de destino caso elas não existam. Mas pra quem utiliza Linux, isso é simples. Só utilizar o comando mkdir para criar. Caso precise, escreva nos comentários, que de acordo com a disposição de tempo que tiver, direi como fazer.
Agora é rodar o programa.
Imagem com o programa rodando:

IMAGEM: Do Autor


No meu caso, devido HD estar formatado em NTFS, a imagem foi construída com sucesso, porque o sistema NTFS não limita o tamanho dos arquivos. Mas em sistemas FAT arquivos maior de 4Gb não são permitidos de serem construidos/escritos. Portanto, há a necessidade, nesse tipo de sistema de particionar em arquivos separados.
Demorou cerca de duas horas pra completar aqui. Eis a imagem mostrando que a criação da imagem x vistoria de integridade ocorreu OK.

IMAGEM: Do Autor


Caso dê problema devido o sistema de arquivos FAT, a mensagem será aproximadamente igual a da foto (file too large):

IMAGEM: Do Autor


A operação para nos 4 Gb conforme a imagem comprova:

IMAGEM: Do Autor


Nesse caso, aplicando o mesmo comando que utilizei, seria necessário discriminar o tamanho do arquivo.

Comando atualizado para, por exemplo, arquivos com 3Gb máx. Os acréscimos estão sublinhados:
dc3dd if=/dev/sdb hofs=/media/root/’Backup BTC’/forense/casos/suspeito_pendrive.img.00 ofsz=3G hash=sha512 log=/media/root/’Backup BTC’/forense/casos/suspeito_pendrive.log

Essa imagem foi extraída um dia depois da postagem, para melhor ilustrar.

IMAGEM: Do Autor

Ainda não acabou, pois devemos demonstrar que o hash produzido na aquisição realmente se refere à evidência original e que eles não foram adulterados posteriormente. É uma boa prática assinar criptograficamente o arquivo de log produzido pelo DC3DD para esse fim.
Utilizei o comando cat /media/root/’Backup BTC’/forense/casos/suspeito_pendrive.log e consegui constatar que os hashes são compatíveis.

IMAGEM: Do Autor


Uma ferramenta útil é o GPG, a nova versão do PGP (Pretty Good Privacy). Você deve entender de geração de chaves públicas ou privadas. Mas se você não souber como gerá-lo, consulte a página de manual do GPG para saber como gerá-lo para assinar o arquivo de log.
Apenas para exemplificar, montei esse comando baseado no exemplo utilizado nessa postagem para que compreenda. Mas vale a pena entender dela.


gpg –clearsign /media/root/ ‘Backup BTC’/forense/casos/suspeito_pendrive.log


Por aqui termino a postagem. Deixe seus comentários e não esqueça de clicar em Like caso gostou.

Até mais.

3 comentários em “EXTRAINDO IMAGEM PARA ANÁLISE FORENSE COM A FERRAMENTA DC3DD

Deixe um comentário