Высокоскоростной инструмент форензики: сканирует образы дисков, файлы и потоки данных без предварительного монтирования и парсинга файловой системы. Извлекает email-адреса, URL, номера кредитных карт, MAC-адреса, GPS-координаты, домены и другие артефакты напрямую из бинарного потока.
# Ubuntu/Debian: sudo apt install bulk-extractor # Из исходников: git clone https://github.com/simsong/bulk_extractor cd bulk_extractor bash bootstrap.sh ./configure && make && sudo make install # Сканирование образа диска: bulk_extractor -o output_dir/ disk_image.dd # Сканирование конкретного потока: bulk_extractor -o output_dir/ -E pdf disk_image.dd # Параллельная обработка: bulk_extractor -o output_dir/ -j 8 disk_image.dd
bulk_extractor — это производительный инструмент для эксплуатации в цифровой криминалистике. Это кнопка "получить доказательства", которая быстро сканирует любой вид входных данных (образы дисков, файлы, каталоги файлов и т.д.) и извлекает структурированную информацию, такую как адреса электронной почты, номера кредитных карт, изображения JPEG и фрагменты JSON, без разбора файловой системы или ее структур. Результаты сохраняются в текстовых файлах, которые легко просматривать, искать или использовать в качестве входных данных для другой криминалистической обработки. bulk_extractor также создает гистограммы определенных типов обнаруженных признаков, таких как поисковые запросы Google и адреса электронной почты, поскольку, как показали предыдущие исследования, такие гистограммы особенно полезны в расследовательных и правоохранительных приложениях.
В отличие от других инструментов для цифровой криминалистики, bulk_extractor проверяет каждый байт данных, чтобы увидеть, не является ли он началом последовательности, которую можно распаковать или иным образом декодировать. Если да, декодированные данные рекурсивно повторно проверяются. В результате bulk_extractor может находить такие вещи, как JPEG, закодированные в BASE64, и сжатые объекты JSON, которые пропускаются традиционными инструментами "вырезания".
Это ветка разработки bulk_extractor 2.1! Она надежна, но если вам нужен хорошо протестированный релиз промышленного качества, скачайте релиз с https://github.com/simsong/bulk_extractor/releases.
bulk_extractorМы рекомендуем собирать из исходного кода. В каталоге etc/ мы предоставляем ряд скриптов bash, которые настраивают чистую виртуальную машину:
git clone --recurse-submodules https://github.com/simsong/bulk_extractor.git
./bootstrap.sh
./configure
make
make install
Подробные инструкции по установке пакетов и сборке bulk_extractor читайте на странице вики: https://github.com/simsong/bulk_extractor/wiki/Installing-bulk_extractor
Дополнительную информацию о bulk_extractor можно найти по адресу: https://forensics.wiki/bulk_extractor
Этот релиз bulk_extractor требует C++17 и был протестирован на компиляцию на следующих платформах:
Вы всегда должны начинать с новой виртуальной машины и готовить систему с помощью соответствующего скрипта подготовки в каталоге etc/.
Если вы пишете научную статью и используете bulk_extractor, пожалуйста, цитируйте его следующим образом:
Garfinkel, Simson, Digital media triage with bulk data analysis and bulk_extractor. Computers and Security 32: 56-72 (2013) * Science Direct * Bibliometrics * Сайт автора
@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}
}
Следующие переменные окружения могут быть установлены для изменения работы bulk_extractor:
| Переменная | Поведение |
|---|---|
DEBUG_BENCHMARK_CPU |
Включает информацию о производительности процессора в файл report.xml |
DEBUG_NO_SCANNER_BYPASS |
Отключает логику обхода сканеров, которая пропускает некоторые сканеры, если sbuf содержит нгаммы или не имеет высокого количества различных символов. |
DEBUG_HISTOGRAMS |
Выводит отладочную информацию о основанных на файлах гистограммах. |
DEBUG_HISTOGRAMS_NO_INCREMENTAL |
Не использует инкрементальные, основанные на памяти гистограммы. |
DEBUG_PRINT_STEPS |
Печатает в stdout, когда каждый сканер вызывается для каждого sbuf |
DEBUG_DUMP_DATA |
Дампит в шестнадцатеричном формате каждый sbuf, который подлежит сканированию. |
DEBUG_SCANNERS_IGNORE |
Разделенный запятыми список сканеров для игнорирования (не загрузки). Полезно для отладки модульных тестов. |
Другие подсказки для отладки:
Примечание: В настоящее время bulk_extractor 2.1 не собирается на Windows, но 2.0 собирается.
Если вы хотите собрать для Windows, вам следует выполнить кросс-компиляцию с системы Fedora. Начните с чистой виртуальной машины и используйте следующие команды:
$ git clone --recurse-submodules https://github.com/simsong/bulk_extractor.git
$ cd bulk_extractor/etc
$ bash CONFIGURE_FEDORA36_win64.bash
$ cd ..
$ make win64
Рекордер признаков jpeg_carved переименован в jpeg, чтобы режим вырезания jpeg можно было задать с помощью -S jpeg_carve_mode=2, а не -S jpeg_carved_carve_mode=2, что вводило в заблуждение.
bulk_extractor 2.0 (BE2) теперь работает. Хотя он работает с просмотрщиком на Java, у нас в настоящее время нет установщика, работающего под Windows.
BE2 требует C++17 для компиляции. Он требует https://github.com/simsong/be13_api.git в качестве подмодуля, который, в свою очередь, требует dfxml в качестве подмодуля.
Проект занял больше времени, чем ожидалось. Помимо обновления до C++17, он был использован как возможность для масштабного рефакторинга кода и общего повышения его качества, тестируемости и надежности. Статья об этом эксперименте появится в ближайшем номере ACM Queue