Imagens AFF

Opa, e aí galera.

Tudo bem?
Nós já falamos sobre imagens no formato EWF/E01 aqui. Agora, nesse post, nós vamos falar sobre um outro tipo de formato de imagens forense: o formato AFF.

1) História
Pra começo de história, este formato foi idealizado pelo cientista Simson Garfinkel e a empresa Basis Technology. AFF significa Advanced Forensics Format. A versão mais recente do AFF foi implementado pela sua biblioteca, a AFFLIBv3, que pode ser encontrado em seu github. Não vamos confundir o formato AFF com o AFFv4. Este último foi um "redesenho" do formato AFF, ou seja, é um novo formato (Fonte: AFF4).

2) AFFLIBv3
Como já dissemos, para ter suporte ao formato AFF precisamos ter instalado sua biblioteca, a AFFLIBv3. Essa biblioteca permite ter suporte a algumas ferramentas que iremos falar mais adiante. Mas vamos falar primeiro sobre o AFF.

O formato AFF foi criado para ser um formato extensível e aberto para o armazenamento de imagens de disco e de seus metadados. Quando eu digo aberto, é porque qualquer um pode "integrar/acoplar" os utilitários da AFFLIB em seus próprios softwares, sejam eles abertos ou proprietários. Quando eu digo extensível, é porque novas características podem ser adicionadas mantendo, ainda assim, a compatibilidade (Fonte: aqui). Além disso, o formato AFF é livre de patentes.

Segundo o Luiz Rabelo, "AFF suporta dois algoritmos de compressão: zlib, que é rápido e razoavelmente eficiente, e LZMA, que é mais lento, mas muito mais eficiente. O zlib é o mesmo algoritmo de compactação usado pelo EnCase. Como resultado, arquivos AFF compactados com zlib são aproximadamente do mesmo tamanho que o arquivo  equivalente no formato EnCase. A grande vantagem é que arquivos AFF  podem ser "re-compactados" (!) utilizando o algoritmo LZMA. Esses arquivos tem um tamanho aproximado de 1/2 a 1/10 do tamanho do original AFF / arquivo EnCase."

As imagens no formato AFF podem ser armazenadas em um destes 3 métodos/formatos:
  • AFF: formato padrão. Neste método, um único arquivo de imagem forense contém os dados forense (que é a imagem forense em si) e os metadados embarcados.
  • AFD: Neste método, o metadado está armazenado na imagem forense. Porém, "quebra-se" a imagem forense em tamanhos fixos.
  • AFM: Neste método a imagem é armazenada no formato raw e os metadados são armazenados em um outro arquivo.

A biblioteca AFFLIBv3 possui algumas ferramentas que permite trabalharmos com imagens no formato AFF. Algumas dessas ferramentas são:
  • affconvert: permite converter imagens em todos os formatos suportados pelo formato AFF (RAW --> AFF; AFF --> RAW; AFF-->AFF). 
  • affuse: permite que os arquivos de imagens AFF (imagens AFF) apareçam como arquivos/imagens no formato RAW. Assim, o affuse permite que as imagens de disco sejam montadas.
  • affinfo: exibe algumas informações sobre a imagem AFF
  • affxml: exibe algumas informações sobre a imagem AFF como XML



3) Criando uma Imagem Forense AFF
Já fizemos uma introdução sobre o formato AFF, agora vamos ver como criar uma imagem forense no formato AFF. 

Para criar uma imagem forense no formato AFF podemos usar o software FTK Imager. Ele permite tanto criar uma imagem física quanto uma imagem lógica. Como dissemos no post sobre imagens ewf, o FTK Imager serve tanto para criar imagens de dispositivos atachados na minha estação forense (HDs, pendrives, etc) quanto também serve para criar imagens forense de uma máquina virtual (se eu tenho uma máquina virtual qualquer e quero criar uma imagem forense desta máquina, eu posso usar o FTK Imager pra isso) (Fonte: aqui).
OBS: Vale lembrar que para se criar uma imagem forense de uma máquina virtual no VMWare (considerando que esta máquina virtual está ligada e funcionando), precisamos primeiro suspender esta máquina virtual pra depois começar o processo de criação da imagem forense.

Se alguém tiver alguma dúvida de como se criar uma imagem forense utilizando o FTK Imager, pode entrar neste link.


4) Montando Imagens AFF
Agora que já temos nossa imagem no formato AFF, vamos montá-la. É um processo simples.
Precisamos primeiro ter o diretório para o ponto de montagem. Vamos montar a imagem no formato AFF no diretório /mnt/aff. Como a SIFT vem com esse diretório criado por default, não precisamos criá-lo. O próximo passo é usar o utilitário affuse para podermos montar a imagem no formato AFF no diretório /mnt/aff. Depois de usar o affuse e montando a imagem no formato AFF, vamos ver que ele é, na verdade, um container, e que carrega lá dentro dele uma imagem no formato raw. Então, se entrarmos no diretório /mnt/aff vamos ver que existe uma imagem no formato raw lá dentro. Depois disso, podemos montar a imagem no formato raw normalmente, utilizando o comando mount.

A imagem que eu montei foi uma imagem de uma pendrive, que não tinha nada armazenado lá dentro. Por isso que depois de montada, não apareceu nenhum arquivo com o comando "ls".

No post sobre imagens ewf, comentamos sobre o parâmetro offset. Se alguém tiver alguma dúvida, pode ir lá e ver a explicação sobre este parâmetro. Naquele post também comentamos a necessidade de se desmontar a imagem depois de analisá-la. O processo de desmontagem de imagens no formato AFF é o mesmo processo de desmontagem de imagens ewf (acontece em 2 passos).


Bom, é isso.
Um abração!





Referências:



Imagens E01/EWF

Opa, e aí galera?

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
Existem outros utilitários que fazem parte do pacote libewf, mas creio que estes sejam os principais.


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). Como no meu exemplo a pendrive foi reconhecida como o dispositivo /dev/sdc, a linha de comando fica assim: ewfacquire /dev/sdc.


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). No nosso exemplo aqui, a linha de comando fica assim: ewfinfo USB.E01


Outro utilitário que também posso usar neste momento é o ewfverify. O comando é: ewfverify (imagem.E01). No nosso exemplo aqui, a linha de comando fica assim: ewfverify USB.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):
  1. 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)
  2. O segundo passo é rodar o comando mount em cima da imagem RAW (e vou montar a imagem RAW no diretório /mnt/windows_mount).
5.1) Montando uma imagem usando o script mount_ewf.py
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.
  1. Sair do diretório /mnt/ (e consequentemente sair também dos seus subdiretórios). Por exemplo, eu fui para o diretório /home/sansforensics
  2. umount /mnt/windows_mount
  3. 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:

Cinco Tecnologias de Espionagem Que Não Podem Ser Interrompidas Mesmo no Modo Offline

Opa, e aí galera?

Tudo bem?
Dando uma olhadinha em alguns blogs, achei uma matéria interessante no blog da kaspersky. Nessa matéria, o autor mostra 5 maneiras de espionar sistemas offline. São técnicas bem interessantes para quem trabalha com segurança nacional e/ou sistemas críticos de infraestrutura nacional, ou até mesmo, em empresas de grande porte como alguns bancos.

As 5 maneiras de espionar um sistema offline são:

  1. Espionagem eletromagnética - método de interceptação de sinais eletromagnéticos
  2. Cuidado com o laser - Registro das vibrações e dos impulsos que correspondem às teclas digitadas em um teclado ou smartphone (este é um método de keylogging).
  3. Ouvir o rádio - método que modula a radiação eletromagnética no hardware do PC. Segundo a wikipédia, modulação é o processo no qual a informação a transmitir numa comunicação é adicionada à ondas eletromagnéticas.
  4. Quente, mais quente! Arde! - Roubo de dados por meio das emissões de calor.
  5. Toc, toc. Quem está aí? - Uso do ultra-som em equipamentos de espionagem para vazar dados.
O link para o post é este: https://blog.kaspersky.com.br/when-going-offline-doesnt-help/5443/

Bom, é isso
Um abração!