此 X-Ways Forensics X-Tension 允许在 X-Ways 中原生使用 YARA。它同时使用 X-Ways Forensics API 和 YARA API 来实现这一点。
注意:这是一个开源项目,并非正式的 CrowdStrike 产品。
在 X-Ways 中运行 YARA 相比通过命令行界面运行 YARA 有许多好处。
假设 X-Ways Forensics 已正确安装和设置,只需从 发布页面 下载编译好的 DLL,并将其复制到 X-Ways Forensics 安装文件夹中的 x64 文件夹内。
X-Tension 可以通过 X-Ways Forensics GUI 或 X-Ways Forensics 命令行来执行。本说明将重点介绍 GUI 方法。
在 GUI 中,有两种方式执行 X-Tension:通过“优化卷快照”(RVS)菜单,或通过“目录浏览器上下文”(DBC)菜单。选择哪种方法取决于您的目标。通常,如果用户指定一个合理的最大文件大小(例如 25MB),通过 RVS 菜单运行 YARA 会非常快。如果由于任何原因用户想通过 DBC 菜单对较大的单个文件运行 YARA,X-Tension 会将数据分成块(块大小由用户提供)。
如果有任何 YARA 规则编译失败,将在 X-Ways 消息窗口中显示错误,指出错误发生的行以及 YARA 错误消息。在 YARA 规则中修复这些错误后重试。YARA 警告的数量将通过 X-Ways 消息窗口显示,这些警告的详细内容记录在 X-Ways 案例日志中。
X-Tension 支持使用多个 YARA 规则文件(注意:YARA 会对重复规则报错并编译失败)。同时它也支持使用单个已编译的规则文件(.yara/.yar)。
注意:如果扫描的数据跨越两个块/缓冲区边界,存在错过有效 YARA 命中的风险。如果这是个问题,请增大缓冲区大小或将文件从 X-Ways 复制出来,使用 YARA 命令行界面进行扫描。
| 方法 -> | RVS | DBC |
|---|---|---|
| 多线程 | 是 | 否 |
| 提示最大文件大小 | 是 | 否 |
| 提示扫描缓冲区大小 | 是* | 是 |
* 仅当用户输入的最大文件大小大于 100MB 时。如果最大文件大小小于 100MB,则使用 100MB 作为缓冲区大小。
在 GUI 中,一旦您创建或打开了一个已有案例,请转到 Specialist -> Refine Volume Snapshot。然后勾选“运行 X-Tensions”选项,并点击出现的三个点。在弹出的菜单中,点击加号 (+) 符号,导航到从本仓库下载的 XT_Yara.dll 文件,然后按确定。
然后系统会提示您选择 YARA 规则文件。将显示一个输入窗口,要求您提供要扫描的最大文件大小,这是必需的。例如,如果您只查找恶意软件样本或 Web Shell,25-50MB 可能是一个合适的最大大小。
如果用户选择的最大文件大小超过 100MB,将显示第二个用户输入提示,要求输入 YARA 扫描器使用的缓冲区大小。它已经过测试,最高 2GB 没有问题,但请根据您的内存限制和所选线程数明智选择。
在 GUI 中,一旦您创建或打开了一个已有案例,选择您要扫描的文件,然后右键单击其中一个并选择“运行 X-Tensions...”。然后系统会提示您指定 YARA 规则文件。将显示一个用户输入提示,要求输入 YARA 扫描器使用的缓冲区大小。它已经过测试,最高 2GB 没有问题,但请根据您的内存限制和所选线程数明智选择。
没有提示输入最大文件大小。
带有 YARA 命中的文件会被添加到名为“YARA Hits”的报表表中。命中的具体规则按文件逐行添加到 X-Ways Forensics 内的“注释”字段中。
典型输出如下所示:
[XT] YARA 4.2.2 library initialised
[XT] There were 9 YARA compile warnings. Check the XWF case log for details
[XT] YARA rules compiled successfully
[XT] Operation Complete. Processing time: 0.000000s
[XT] Summary: Found 240 YARA hits
[XT] YARA library finalised