Tudo bem?
Hoje nós vamos falar sobre imagens EWF/E01. Mas, primeiramente, vamos falar um pouco sobre a história de como surgiu esse tipo de imagem.
1) História
Bom, em 1998, a empresa Guidance criou um software inovador que viria a ser o líder de mercado na área de forense computacional. Na época, ou seja, em 1998, este software se chamava Expert Witness. Então, uma empresa chamada ASR Data, que já detinha a marca "expert witness" registrada, entrou com um processo contra a Guidance com o intuito de proibí-la a usar a marca "expert witness". No fim das contas, a Guidance mudou a marca para EnCase. E é por isso que o formato da imagem gerada pelo software EnCase se chama EWF (Expert Witness Format).
Acontece que este formato começou a ser também chamado de E01. Isso significa que o formato EWF pode ser também chamado de E01.
2) LibEWF
Uma das primeiras coisas a se falar é que para se manipular imagens no formato ewf/e01 (ler e escrever), precisamos de uma biblioteca chamada libewf. É ela quem permite fazer leitura e escrita no formato ewf/e01.
Os formatos suportados para leitura e escrita são:
- SMART .s01 (EWS-S01),
- EnCase .E01 (EWF-E01) e Ex01 (EWF2-Ex01);
Os formatos suportados somente para leitura são:
- LEF (Logical Evidence File), .L01 (EWF-L01) e o formato Lx01 (EWF2-Lx01)
A biblioteca libewf possui algumas ferramentas que permite trabalharmos com as imagens forense. As principais ferramentas são:
- ewfacquire: utilitário que cria uma imagem forense de algum dispositivo. Essa imagem será no formato EWF.
- ewfinfo: utilitário que mostra os metadados da imagem. Estes metadados foram criados no momento da criação da imagem forense.
- ewfverify: utilitário que verifica a integridade de cada pedaço da imagem forense.
- ewfexport: utilitário que exporta a imagem do formato EWF para o formato RAW
3) Características
O formato ewf/e01 é um formato interessante. Ele permite comprimir os dados da imagem forense, Assim, quando analisamos um arquivo de imagem do tipo "raw" (criado através da ferramenta DD) e o comparamos com a sua versão no formato ewf/e01, podemos notar que a imagem no formato do encase é bem menor. Ou seja: o formato do encase permite a compressão de dados.
A imagem a seguir mostra a diferença entre a imagem no formato e01 (comprimida) e a mesma imagem em formato raw (não comprimida):
Uma outra característica interessante é que agente pode dividir a imagem forense de um HD ou de uma partição em pedaços. Cada um desses pedaços serão renomeados da seguinte forma: imagem.Exx. Portanto, se eu tenho um HD de 20 gigas, e quero ter 2 pedaços no formato ewf, os meus arquivos de imagem forense ficam desta forma: imagem.E01 e imagem .E02. Se eu quero ter 3 pedaços no formato ewf, os meus arquivos de imagem forense ficam desta forma: imagem.E01, imagem.E02 e imagem.E03. Resumindo a história é que eu posso ter múltiplos pedaços que formam a imagem forense do meu disco/partição
4) Criando uma Imagem Forense E01
Já falamos sobre a história do formato ewf/e01, já falamos sobre a libewf, já falamos sobre algumas características do formato ewf/e01; agora é mão na massa. Nós vamos falar agora sobre como criar uma imagem forense no formato ewf/e01.
Uma das formas de criar uma imagem forense no formato ewf/e01 é usando o FTK Imager. E essa opção é boa se eu tenho, por exemplo, uma máquina virtual e quero criar uma imagem forense dessa máquina virtual. Basta carregar o FTK Imager e no momento de escolher qual o alvo, eu indico o disco virtual da máquina virtual em questão. Maiores explicações sobre como realizar uma imagem forense com o FTK Imager podem entrar neste link: http://periciadigitaldf.blogspot.com.br/2012/12/criando-imagens-forense-com-ftk-imager.html
Uma outra forma de criar uma imagem forense no formato ewf/e01 é usando distribuições linux voltadas para forense computacional. Como exemplo, nós temos as distribuições Helix, Caine, SIFT, e até mesmo a Kali Linux, etc.
Neste exemplo aqui, eu vou fazer uma imagem forense de um pendrive.
OBS: Se você tiver alguma dúvida persistente, existem alguns vídeos no youtube mostrando o processo. Um exemplo de vídeo é este aqui.
Bom, vamos para o primeiro passo: eu vou atachar o pendrive no SIFT. Depois eu digito o comando "fdisk -l" para ver se o pendrive foi reconhecido. Após isso, eu já posso começar a fazer a imagem da minha pendrive. O comando é: ewfacquire (dispositivo alvo que eu quero criar a imagem)
Pode-se notar que o utilitário pergunta algumas informações. Basta responder; é muito tranquilo. Algumas perguntas ele já até coloca a opção entre colchetes; neste caso basta apertar a tecla "enter", ele já escolhe a opção default. Antes de iniciar o processo de realizar a imagem, ele mostra um resumo com as opções que você escolheu.
Quando ele terminar todo o processo de realização da imagem forense, ele mostra o hash e informa se o processo foi realizado com sucesso
Neste momento, em que todo o processo foi realizado com sucesso, eu posso ainda usar a ferramenta ewfinfo para ver algumas informações sobre a minha imagem forense. Estas informações são os metadados que nós informamos no momento que estávamos iniciando o processo dei magem forense (com a ferramenta ewfacquire). O comando é: ewfinfo (imagem.E01)
Outro utilitário que também posso usar neste momento é o ewfverify. O comando é: ewfverify (imagem.E01)
5) Montando Imagens EWF
Um fato interessante é que quando temos imagens .e01, vamos notar que depois de montá-la, vamos ver que lá dentro dela existe uma imagem RAW. Ou seja: imagens .e01 funcionam como se fosse contêineres.
Agora, vamos partir para o próximo passo: montar as imagens.
Nesse momento eu não vou usar a imagem do pendrive; eu vou usar as imagens da digital corpora. O cenário que vou usar como exemplo é o M57-Jean. São dois arquivos no formato E01; estes arquivos são o "nps-2008-jean.E01" e "nps-2008-jean.E02".
OBS 1: sempre que temos uma imagem forense no formato EWF com mais de um arquivo (.e01, .e02, .e03 ...), é preciso que todos eles estejam no mesmo diretório. No nosso exemplo aqui, é necessário ter no mesmo diretório os arquivos "nps-2008-jean.E01" e o "nps-2008-jean.E02".
OBS 2: na hora de montar, eu não preciso montar os arquivos com extensão .e02, .e03, .e04, etc. Basta montar o arquivo com extensão .e01. Então, aqui no nosso exemplo, eu só vou montar o arquivo "nps-2008-jean.e01".
Eu vou usar 2 scripts para montar imagens no formato EWF: mount_ewf.py e ewfmount. Mas por que eu vou mostrar exemplos com esses 2 scripts? Porque na hora de montar a imagem, pode ser que um dê algum tipo de problema; então nós temos a outra opção. Além dessas 2, existem outras opções de scripts para se montar uma imagem; o xmount é uma dessas opções (eu não vou mostrar o xmount nesse post).
Para montar as imagens no formato EWF, precisamos realizar 2 passos (sequencialmente):
- O diretório /mnt/ewf é onde vai ficar a minha imagem RAW. Então primeiro eu vou montar a imagem .e01 usando o comando mount_ewf.py (ou ewfmount)
- O segundo passo é rodar o comando mount em cima da imagem RAW (e vou montar a imagem RAW no diretório /mnt/windows_mount).
No exemplo a seguir, a imagem "nps-2008-jean.e01" está no diretório /home/sansforensics/Desktop/cases/Corpora/nps-jean-2008.e01.
Então, a linha de comando fica assim:
# mount_ewf.py /home/sansforensics/Desktop/cases/Corpora/nps-jean-2008.e01 /mnt/ewf
O que chama a atenção neste último comando (comando mount) é o parâmetro offset. Este parâmetro indica o offset da partição que vamos analisar dentro do disco virtual (lembrando que esta imagem é uma imagem do HD, ou seja, uma imagem física).
Toda vez que temos uma imagem de um disco virtual (e não de uma partição), precisamos usar este parâmetro offset e indicar justamente o offset do início da partição, que neste caso o offset é o setor 63. Como os setores são de 512 bytes, basta multiplicar o offset pelo tamanho do setor (63 setores * 512 bytes por setor = 32256). Ou seja, para montar partição com o filesystem NTFS, eu preciso passar o parâmetro offset=32256.
E se ao invés de 63, estivesse aparecendo 2048? Aí bastaria fazer o seguinte: 2048 * 512, que seria igual a 1048576. Assim, o parâmetro offset=1048576. Fácil, né? :)
Para desmontar a imagem, é preciso fazer 3 coisas.
- Sair do diretório /mnt/ (e consequentemente sair também dos seus subdiretórios). Por exemplo, eu fui para o diretório /home/sansforensics
- umount /mnt/windows_mount
- Por fim, o comando: umount /mnt/ewf
Se eu desmontasse somente o diretório /mnt/windows_mount, o diretório /mnt/ewf ainda estaria montado. Por isso é necessário desmontar os dois diretórios.
5.2) Montando uma imagem usando o script ewfmount
Este script tem a linha de comando igual ao mount_ewf.py. A diferença entre os dois é que o script ewfmount é produto de uma atualização do outro script. Isso significa que o ewfmount é mais atual que o mount_ewf.py. Mas os dois funcionam do mesmo jeito.
A linha de comando é:
# ewfmount /home/sansforensics/Desktop/cases/Corpora/nps-jean-2008.e01 /mnt/ewf
Para Desmontar, vamos fazer do mesmo jeito que fizemos com o mout_ewf.py: desmontamos primeiro o diretório /mnt/windows_mount (umount /mnt/windows_mount) e depois desmontamos o diretório /mnt/ewf (umount /mnt/ewf)
Bom, é isso galera
Um abração!
Referências Bibliográficas:
- http://www.reydes.com/d/?q=Utilizando_LibEWF_para_Manipular_Imagenes_Forenses_de_EnCase
- http://www.forensicswiki.org/wiki/Libewf
- https://github.com/libyal/libewf/wiki/Mounting
- http://www.forensicswiki.org/wiki/Encase_image_file_format
- https://www.sans.org/reading-room/whitepapers/forensics/forensic-images-viewing-pleasure-35447
- https://digital-forensics.sans.org/blog/2011/11/28/digital-forensic-sifting-mounting-ewf-or-e01-evidence-image-files
- https://whereismydata.wordpress.com/2009/01/08/how-do-i-access-encase-files/
Nenhum comentário:
Postar um comentário