EventHorizon 是一款旨在为安全分析师和/或研究人员提供 Windows 事件跟踪 (ETW) 遥测数据的工具,结合类似 sigma 的规则,可实现强大的端点检测与响应能力。但需说明,EventHorizon 绝不可替代正规解决方案。本项目主要目的是简化 ETW 遥测数据的收集过程,并支持在不编写代码的情况下生成检测规则。为提升易用性,EventHorizon 的安装过程力求尽可能简单:提供 .msi 安装程序(参见 releases 标签)以及基本的安装说明(参见 wiki)。
[!WARNING]
请仅在测试环境(非生产环境)中使用 EventHorizon。安装时需要禁用某些 Windows 安全功能,且我不保证 EventHorizon 是安全或专业编写的软件。
要开始使用,请访问 EventHorizon Wiki
虽然无法承诺我会持续维护 EventHorizon,但未来我希望增加/修改以下内容:
EventHorizon 由多个跨用户模式和内核模式的组件组成。以下部分旨在详细概述各组件及其大致功能。
在用户模式下,EventHorizon 包含一个名为 EventHorizon 的服务,负责协调 EventHorizon 的其他各种用户模式组件。与用户模式功能相关的文件位于 C:\Program Files\EventHorizon\,但该路径在安装时可能发生变化。
EventHorizon 的内核模式组件由一个名为 EventHorizonELAM 的早期启动反恶意软件 (ELAM) 驱动程序组成,位于 C:\Windows\System32\drivers\。

EventHorizon 还致力于最大程度地降低系统开销。空闲时,通常仅占用 2MB 多一点的 RAM。不过,接收的遥测数据越多、加载的规则越多,所使用的处理能力和 RAM 也会增加。如果使用事件量较大的提供程序,资源消耗会迅速上升。

EventHorizon 编排服务(EventHorizon.exe):协调与 EventHorizon 功能相关的用户模式组件。服务启动时,会以 PPL 反恶意软件保护级别生成遥测可执行文件和检测引擎,并监控它们是否意外终止。同时处理卸载请求。
EventHorizon 遥测服务(EventHorizonTelemetry.exe):读取 ETW 配置、订阅相关提供程序、过滤传入事件,并通过命名管道使用队列将事件发送到检测引擎。
EventHorizon 检测引擎(EventHorizonDetectionEngine.exe):加载规则,接收来自遥测可执行文件的数据,并在规则触发时将检测结果写入 Windows 事件查看器。

在 Windows 事件查看器的 应用程序和服务日志 > EventHorizon 下,EventHorizon 使用了 3 个不同的通道。
与通道名称相关的事件会被放置在其中。有关具体事件的更多信息,请参阅 wiki。

如前所述,EventHorizon 的内核模式组件由一个名为 EventHorizonELAM 的早期启动反恶意软件 (ELAM) 驱动程序组成,位于 C:\Windows\System32\drivers\。正是这个 ELAM 驱动程序使得 EventHorizon 的用户模式组件能够获得 PPL 反恶意软件保护。此外,该驱动程序通过 IOCTL 响应用户模式组件的请求,以执行以下操作:
EventHorizon 依赖以下几个库:
以下是开发过程中使用的资源列表,但首先我要感谢几位直接贡献者。首先,感谢 Jacob Acuna 在项目整体结构和功能方面的早期贡献。此外,还要感谢 Eric Esquivel、Julian Peña 和 Kyle Avery 提供的宝贵见解。