bulk_extractor
é uma ferramenta de exploração forense digital de alto desempenho. É um botão "obter evidências" que verifica rapidamente qualquer tipo de entrada (imagens de disco, arquivos, diretórios de arquivos, etc.) e extrai informações estruturadas, como endereços de e-mail, números de cartão de crédito, JPEGs e trechos JSON sem analisar o sistema de arquivos ou estruturas do sistema de arquivos. Os resultados são armazenados em arquivos de texto que são facilmente inspecionados, pesquisados ou usados como entradas para outros processos forenses. bulk_extractor também cria histogramas de certos tipos de recursos que encontra, como termos de pesquisa do Google e endereços de e-mail, já que pesquisas anteriores mostraram que tais histogramas são especialmente úteis em aplicações investigativas e de aplicação da lei.
Ao contrário de outras ferramentas forenses digitais, bulk_extractor
investiga cada byte de dados para ver se é o início de uma sequência que pode ser descompactada ou decodificada. Nesse caso, os dados decodificados são reexaminados recursivamente. Como resultado, bulk_extractor
pode encontrar coisas como JPEGs codificados em BASE64 e objetos JSON compactados que as ferramentas de escultura tradicionais não percebem.
Este é o ramo de desenvolvimento bulk_extractor
2.1! É confiável, mas se você deseja ter uma versão com qualidade de produção bem testada, baixe uma versão em https://github.com/simsong/bulk_extractor/releases.
bulk_extractor
Recomendamos construir a partir de fontes. Fornecemos vários scripts bash
no diretório etc/
que configurarão uma máquina virtual limpa:
git clone --recurse-submodules https://github.com/simsong/bulk_extractor.git
./bootstrap.sh
./configure
make
make install
Para obter instruções detalhadas sobre como instalar pacotes e construir o bulk_extractor, leia a página wiki aqui: https://github.com/simsong/bulk_extractor/wiki/Installing-bulk_extractor
Para obter mais informações sobre bulk_extractor, visite: https://forensics.wiki/bulk_extractor
Esta versão do bulk_extractor requer C++17 e foi testada para compilar nas seguintes plataformas:
Você deve sempre começar com uma VM nova e preparar o sistema usando o script de preparação apropriado no diretório etc/
.
Se você estiver escrevendo um artigo científico e usando bulk_extractor, cite-o com:
Garfinkel, Simson, Triagem de mídia digital com análise de dados em massa e bulk_extractor. Computadores e Segurança 32: 56-72 (2013)
@article{10.5555/2748150.2748581,
author = {Garfinkel, Simson L.},
title = {Digital Media Triage with Bulk Data Analysis and Bulk_extractor},
year = {2013},
issue_date = {February 2013},
publisher = {Elsevier Advanced Technology Publications},
address = {GBR},
volume = {32},
number = {C},
issn = {0167-4048},
journal = {Comput. Secur.},
month = feb,
pages = {56–72},
numpages = {17},
keywords = {Digital forensics, Bulk data analysis, bulk_extractor, Stream-based forensics, Windows hibernation files, Parallelized forensic analysis, Optimistic decompression, Forensic path, Margin, EnCase}
}
As seguintes variáveis de ambiente podem ser definidas para alterar a operação de bulk_extractor
:
Variável | Comportamento |
---|---|
DEBUG_BENCHMARK_CPU | Incluir informações de benchmark de CPU no arquivo report.xml |
DEBUG_NO_SCANNER_BYPASS | Desativa a lógica de desvio do scanner que ignora alguns scanners se um sbuf contiver ngrams ou não tiver uma contagem alta de caracteres distintos. |
DEBUG_HISTOGRAMS | Imprima informações de depuração em histogramas baseados em arquivo. |
DEBUG_HISTOGRAMS_NO_INCREMENTAL | Não use histogramas incrementais baseados em memória. |
DEBUG_PRINT_STEPS | Imprime em stdout quando cada scanner é chamado para cada sbuf |
DEBUG_DUMP_DATA | Faça um dump hexadecimal de cada sbuf que será verificado. |
DEBUG_SCANNERS_IGNORE | Uma lista separada por vírgulas de scanners a serem ignorados (não carregados). Útil para depurar testes unitários. |
Outras dicas para depuração:
Nota: Atualmente, o bulk_extractor 2.1 não é baseado no Windows, mas o 2.0 sim.
Se você deseja compilar para Windows, você deve compilar cruzadamente a partir de um sistema Fedora. Comece com uma VM limpa e use estes comandos:
$ git clone --recurse-submodules https://github.com/simsong/bulk_extractor.git
$ cd bulk_extractor/etc
$ bash CONFIGURE_FEDORA36_win64.bash
$ cd ..
$ make win64
Renomeado gravador de recursos jpeg_carved para jpeg, para que o modo jpeg carve possa ser definido com -S jpeg_carve_mode=2, em vez de -S jpeg_carved_carve_mode=2, o que era confuso.
bulk_extractor
2.0 (BE2) agora está operacional. Embora funcione com o visualizador baseado em Java, atualmente não temos um instalador que execute no Windows.
BE2 requer C++17 para compilar. Requer https://github.com/simsong/be13_api.git
como um submódulo, que por sua vez requer dfxml
como um submódulo.
O projeto demorou mais do que o previsto. Além da atualização para C++ 17, foi usado como uma oportunidade para refatoração massiva de código e aumento geral na qualidade, testabilidade e confiabilidade do código. Um artigo sobre o experimento aparecerá na próxima edição da ACM Queue