bulk_extractor
es una herramienta de explotación forense digital de alto rendimiento. Es un botón de "obtener evidencia" que escanea rápidamente cualquier tipo de entrada (imágenes de disco, archivos, directorios de archivos, etc.) y extrae información estructurada como direcciones de correo electrónico, números de tarjetas de crédito, archivos JPEG y fragmentos JSON sin analizar el sistema de archivos ni estructuras del sistema de archivos. Los resultados se almacenan en archivos de texto que se pueden inspeccionar, buscar o utilizar fácilmente como entradas para otros procesos forenses. Bulk_extractor también crea histogramas de ciertos tipos de características que encuentra, como términos de búsqueda de Google y direcciones de correo electrónico, ya que investigaciones anteriores han demostrado que dichos histogramas son especialmente útiles en aplicaciones de investigación y aplicación de la ley.
A diferencia de otras herramientas forenses digitales, bulk_extractor
analiza cada byte de datos para ver si es el comienzo de una secuencia que puede descomprimirse o decodificarse de otro modo. Si es así, los datos decodificados se vuelven a examinar de forma recursiva. Como resultado, bulk_extractor
puede encontrar cosas como archivos JPEG codificados en BASE64 y objetos JSON comprimidos que las herramientas de tallado tradicionales pasan por alto.
¡Esta es la rama de desarrollo bulk_extractor
2.1! Es confiable, pero si desea tener una versión con calidad de producción bien probada, descargue una versión de https://github.com/simsong/bulk_extractor/releases.
bulk_extractor
Recomendamos construir a partir de fuentes. Proporcionamos una serie de scripts bash
en el directorio etc/
que configurarán una máquina virtual limpia:
git clone --recurse-submodules https://github.com/simsong/bulk_extractor.git
./bootstrap.sh
./configure
make
make install
Para obtener instrucciones detalladas sobre la instalación de paquetes y la creación de Bulk_extractor, lea la página wiki aquí: https://github.com/simsong/bulk_extractor/wiki/Installing-bulk_extractor
Para obtener más información sobre Bulk_extractor, visite: https://forensics.wiki/bulk_extractor
Esta versión de Bulk_extractor requiere C++17 y se ha probado para compilarse en las siguientes plataformas:
Siempre debe comenzar con una máquina virtual nueva y preparar el sistema utilizando el script de preparación apropiado en el directorio etc/
.
Si está escribiendo un artículo científico y utiliza Bulk_extractor, cítelo con:
Garfinkel, Simson, Clasificación de medios digitales con análisis de datos masivos y extractor masivo. Computadoras y Seguridad 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}
}
Se pueden configurar las siguientes variables de entorno para cambiar el funcionamiento de bulk_extractor
:
Variable | Comportamiento |
---|---|
DEBUG_BENCHMARK_CPU | Incluir información de referencia de CPU en el archivo report.xml |
DEBUG_NO_SCANNER_BYPASS | Deshabilita la lógica de omisión del escáner que omite algunos escáneres si un sbuf contiene ngrams o no tiene un recuento alto de caracteres distintos. |
DEBUG_HISTOGRAMS | Imprima información de depuración en histogramas basados en archivos. |
DEBUG_HISTOGRAMS_NO_INCREMENTAL | No utilice histogramas incrementales basados en memoria. |
DEBUG_PRINT_STEPS | Imprime en la salida estándar cuando se llama a cada escáner para cada sbuf |
DEBUG_DUMP_DATA | Realice un volcado hexadecimal de cada sbuf que se va a escanear. |
DEBUG_SCANNERS_IGNORE | Una lista separada por comas de escáneres que se deben ignorar (no cargar). Útil para depurar pruebas unitarias. |
Otros consejos para la depuración:
Nota: Actualmente Bulk_extractor 2.1 no se basa en Windows, pero 2.0 sí.
Si desea compilar para Windows, debe realizar una compilación cruzada desde un sistema Fedora. Comience con una VM limpia y use estos comandos:
$ git clone --recurse-submodules https://github.com/simsong/bulk_extractor.git
$ cd bulk_extractor/etc
$ bash CONFIGURE_FEDORA36_win64.bash
$ cd ..
$ make win64
Se cambió el nombre del grabador de características jpeg_carved a jpeg, de modo que el modo de tallado jpeg se pueda configurar con -S jpeg_carve_mode=2, en lugar de -S jpeg_carved_carve_mode=2, lo cual era confuso.
bulk_extractor
2.0 (BE2) ya está operativo. Aunque funciona con el visor basado en Java, actualmente no contamos con un instalador que se ejecute en Windows.
BE2 requiere C++17 para compilar. Requiere https://github.com/simsong/be13_api.git
como submódulo, que a su vez requiere dfxml
como submódulo.
El proyecto duró más de lo previsto. Además de actualizar a C++ 17, se aprovechó como una oportunidad para una refactorización masiva del código y un aumento general en la calidad, capacidad de prueba y confiabilidad del código. Un artículo sobre el experimento aparecerá en una próxima edición de ACM Queue