bulk_extractor
是一种高性能数字取证利用工具。它是一个“获取证据”按钮,可以快速扫描任何类型的输入(磁盘映像、文件、文件目录等)并提取结构化信息,例如电子邮件地址、信用卡号码、JPEG 和 JSON 片段,而无需解析文件系统或文件系统结构。结果存储在文本文件中,可以轻松检查、搜索或用作其他取证处理的输入。 bulk_extractor 还创建它找到的某些类型特征的直方图,例如 Google 搜索词和电子邮件地址,因为之前的研究表明,此类直方图在调查和执法应用程序中特别有用。
与其他数字取证工具不同, bulk_extractor
会探测数据的每个字节,以查看它是否是可以解压缩或以其他方式解码的序列的开始。如果是,则递归地重新检查解码的数据。因此, bulk_extractor
可以找到传统雕刻工具遗漏的 BASE64 编码的 JPEG 和压缩的 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的详细说明,请阅读此处的wiki页面: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,使用批量数据分析和批量提取器进行数字媒体分类。计算机与安全 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}
}
可以设置以下环境变量来更改bulk_extractor
的操作:
多变的 | 行为 |
---|---|
DEBUG_BENCHMARK_CPU | 在report.xml 文件中包含CPU 基准测试信息 |
DEBUG_NO_SCANNER_BYPASS | 如果 sbuf 包含 ngram 或不具有较高的不同字符计数,则禁用绕过某些扫描仪的扫描仪绕过逻辑。 |
DEBUG_HISTOGRAMS | 在基于文件的直方图上打印调试信息。 |
DEBUG_HISTOGRAMS_NO_INCREMENTAL | 不要使用增量的、基于内存的直方图。 |
DEBUG_PRINT_STEPS | 当每个 sbuf 调用每个扫描仪时打印到标准输出 |
DEBUG_DUMP_DATA | 十六进制转储每个要扫描的 sbuf。 |
DEBUG_SCANNERS_IGNORE | 要忽略(不加载)的扫描仪的逗号分隔列表。对于调试单元测试很有用。 |
其他调试提示:
注意:Currenltybulk_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,以便可以使用 -S jpeg_carve_mode=2 设置 jpeg 雕刻模式,而不是 -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 杂志上