...一款简单、独立的模块化主机入侵指标扫描器
Spyre 是一款基于 YARA 模式匹配引擎及其他扫描模块的简单主机入侵指标扫描器。该项目的主要目标是让 YARA 规则和其他入侵指标易于投入实际使用。
用户需要自行准备规则集。awesome-yara 仓库提供了互联网上免费 YARA 规则集的良好概览。
Spyre 旨在供事件响应人员用作调查工具。它不打算发展成任何形式的端点保护服务。
使用 Spyre 很简单:
添加 YARA 签名。在默认配置中,Spyre 会分别从 filescan.yar 和 procscan.yar 读取用于文件和进程扫描的 YARA 规则。向 Spyre 提供规则文件有以下几种方式(将按此顺序尝试):
spyre 或 spyre.exe,则使用 spyre.zip。可以使用密码 infected(反病毒行业标准)对 ZIP 文件内容进行加密,以防止反病毒软件扫描规则集,将其归类为恶意内容并阻止扫描。
YARA 规则文件可以包含 include 语句。
部署并运行扫描器。
收集报告和证据。
运行时配置通过可选的配置文件 spyre.yaml 完成。
如果已将 ZIP 文件附加到 Spyre 二进制文件,则配置和其他文件(如 YARA 规则)仅从该 ZIP 文件中读取。否则,从二进制文件所在目录读取。
示例配置请参见 example-configuration/ 子目录。
hostname / 命令行开关 --set-hostname:显式设置将在日志文件和报告中使用的主机名。通常不需要。
max-file-size / 命令行开关 --max-file-size:使用 YARA 等昂贵文件扫描模块扫描的文件的最大大小。默认值:32MB
proc-ignore-names / 命令行开关 --proc-ignore:不进行进程内存扫描的进程名称。
paths / 命令行开关 --path:使用文件扫描模块扫描的路径。默认值:/(Unix)或所有固定驱动器(Windows)。
report / 命令行开关 --report:设置一个或多个报告目标。默认值:当前工作目录下的 spyre_${hostname}_${time}.log,使用纯文本格式。可以通过添加 ,format=FORMAT 来指定不同的输出格式。
目前支持以下格式:
目前有三个可以实施扫描模块的领域:系统级检查、文件扫描和进程扫描。
下面列出当前已实现的模块及其支持的配置参数。
system
eventobj (Windows)
iocsregistry (Windows)
iocswinkernelobj (Windows)
iocsconficker,布尔值:是否应将动态(基于主机/进程)的 Conficker IOC 添加到 IOC 列表中?(默认值:false)findwindow (Windows)
iocsfile
yara
rule-filesfail-on-warnings有关如何描述每个模块的入侵指标的提示,请参阅示例配置文件 example-spyre.yaml。
YARA 使用默认设置编译,并附加了以下显式开关(参见 3rdparty.mk):
--disable-magic--disable-cuckoo--enable-dotnet--enable-macho--enable-dex对于文件扫描,定义了以下变量:
filename,filepath,extension,filetype(扫描时当前未填充)对于进程扫描,定义了变量 pid 和 executable。
可以使用元变量 spyre_collect_limit 来限制从匹配文件中收集的写入次数,或完全禁止收集文件。这有助于限制证据包的大小,并避免收集敏感信息。
Spyre 可以为 32 位和 64 位的 Linux 和 Windows 目标构建。
在已安装以下软件包的 Debian/buster 系统(或 chroot)上:
GOROOT,否则 Makefile 会自动选择最新版本。这是通过 CI 定期测试的构建环境。
相同的构建也已在 Fedora 30 上成功尝试,并安装了以下软件包:
安装所有内容后,只需输入 make。这将下载 musl-libc、openssl、yara 的存档,构建它们,然后构建 spyre。
裸 spyre 二进制文件创建在 _build/<triplet>/ 目录下。
运行 make release 会创建一个 ZIP 文件,其中包含所有支持架构的这些二进制文件。
这些系统的兼容性在 Go 1.11 中被移除,因此需要 Go 1.10 工具链。由于 Go 1.10 不支持 Go 模块,因此必须将第三方 Go 依赖项进行 vendor:使用较新的 Go 版本执行此操作(只需运行 go vendor),并在运行 make 之前将 GOROOT 设置为指向 Go 1.10 工具链。
目前不支持交叉编译。
系统自带的 make 太旧,因为 Apple 对 GPLv3 过敏。Homebrew 中的 gmake 可以正常工作。
参见 HACKING.md
Copyright 2018-2020 DCSO Deutsche Cyber-Sicherheitsorganisation GmbH
Copyright 2020-2021 Spyre Project Authors (参见:AUTHORS.txt)
本程序是自由软件:您可以重新分发和/或修改它,前提是遵守由自由软件基金会发布的 GNU Lesser General Public License 的条款,即许可证的第三版,或(根据您的选择)任何更高版本。
完整许可文本请参见 LICENSE 文件。
plain,默认格式,一种简单的可读文本格式。tsjson,一种可导入 Timesketch 的 JSON 文档。hostname 和 time 变量仅在目标文件名中展开。
注意: 报告目标的配置可能在下一个版本中发生变化。
high-priority / 命令行开关 --high-priority:在默认配置(禁用此设置)下,Spyre 会指示操作系统调度程序降低 CPU 时间和 I/O 操作的优先级,以避免干扰正常系统运行。
命令行开关 --loglevel=LEVEL:设置日志级别。有效值:trace, debug, info, notice, warn, error, quiet。
proc
yara
rule-filesfail-on-warnings