自定义 Windows ETW 包

编辑

自定义 Windows ETW 包

编辑

版本

0.1.0 [beta] 此功能为 Beta 版本,可能会发生更改。其设计和代码不如正式 GA 功能成熟,按原样提供,不提供任何保证。Beta 功能不受官方 GA 功能的支持 SLA 的约束。 (查看全部)

兼容的 Kibana 版本

8.13.0 或更高版本

支持的无服务器项目类型
这是什么?

安全性
可观测性

订阅级别
这是什么?

基本

支持级别
这是什么?

Elastic

自定义 Windows ETW (Windows 事件跟踪) 包允许您从任何可用的 ETW 提供程序中采集事件。可以通过在任何 Windows 命令行界面中运行 logman query providers 来列出提供程序。

此集成当前支持基于清单的、用户模式 MOF(经典)和 TraceLogging 提供程序,而 WPP 提供程序不受支持。您可以在 此处 找到有关可用提供程序类型的更多信息。

它在 Filebeat 支持的每个 Windows 版本中都受支持,从 Windows 10 和 Windows Server 2016 开始。

此包不包含任何采集管道,因此开箱即用不会应用任何预采集数据处理。可以通过 Kibana UI 添加自定义采集管道,以获得所需格式的数据。

配置

编辑

此集成可以通过三种不同的方式与 ETW 交互:它可以创建一个新会话来捕获用户模式提供程序的事件,附加到现有会话以收集正在进行的事件数据,或从预先录制的 .etl 文件中读取事件。因此,在配置集成时,有三个参数是互斥的,但必须至少设置一个参数:Provider(名称或 GUID)、File 和 Session。

事件跟踪级别可以指定为 criticalerrorwarninginformationverbose。系统将采集与指定的跟踪级别相对应或在严重性方面超过它的事件。

可以使用带有 Match Any KeywordMatch All Keyword 参数的事件掩码来筛选事件。Match Any Keyword 参数指定一个 64 位位掩码,如果此位掩码中设置的任何位与事件属性中设置的任何关键字位匹配,则会采集事件,从而允许基于多个条件广泛选择事件。相反,Match All Keyword 参数要求其 64 位位掩码中设置的所有位都与事件的关键字位相匹配,才能采集事件。这两个字段的正确格式都是 0x,后跟一个 16 个字符的十六进制数字。

此处可以阅读有关这些参数的更多信息。

有关输入的完整文档,请访问 此处,其中包括有关如何配置它的更多示例。

字段映射

编辑

除了下面指定的字段外,此集成还包括 ECS 动态模板。任何遵循 ECS 架构的字段都将获得正确的索引字段映射,无需手动添加。

导出的字段
字段 描述 类型

@timestamp

事件时间戳。

日期

cloud.account.id

用于在多租户环境中标识不同实体的云帐户或组织 ID。示例:AWS 帐户 ID、Google Cloud ORG ID 或其他唯一标识符。

关键字

cloud.availability_zone

此主机运行所在的可用区。

关键字

cloud.image.id

云实例的映像 ID。

关键字

cloud.instance.id

主机的主机实例 ID。

关键字

cloud.instance.name

主机的主机实例名称。

关键字

cloud.machine.type

主机的主机类型。

关键字

cloud.project.id

Google Cloud 中项目的名称。

关键字

cloud.provider

云提供商的名称。示例值包括 aws、azure、gcp 或 digitalocean。

关键字

cloud.region

此主机运行所在的区域。

关键字

container.id

唯一容器 ID。

关键字

container.image.name

构建容器所基于的映像名称。

关键字

container.labels

映像标签。

对象

container.name

容器名称。

关键字

data_stream.dataset

数据流数据集。

常量关键字

data_stream.namespace

数据流命名空间。

常量关键字

data_stream.type

数据流类型。

常量关键字

ecs.version

此事件遵循的 ECS 版本。ecs.version 是一个必填字段,并且必须存在于所有事件中。在查询可能符合略微不同 ECS 版本的多个索引时,此字段可让集成调整为事件的架构版本。

关键字

event.category

这是四个 ECS 分类字段之一,指示 ECS 类别层次结构中的第二层。event.category 表示 ECS 类别的“大桶”。例如,筛选 event.category:process 会产生所有与进程活动相关的事件。此字段与用作子类别的 event.type 密切相关。此字段是一个数组。这将允许对某些属于多个类别的事件进行正确分类。

关键字

event.code

此事件的标识代码(如果存在)。一些事件源使用事件代码来明确标识消息,而不管消息语言或随着时间的推移进行的措辞调整。一个例子是 Windows 事件 ID。

关键字

event.created

event.created 包含代理或管道首次读取事件时的日期/时间。此字段与 @timestamp 不同,因为 @timestamp 通常包含从原始事件中提取的时间。在大多数情况下,这两个时间戳会略有不同。可以使用此差值来计算源生成事件与代理首次处理事件的时间之间的延迟。这可以用来监视代理或管道跟上事件源的能力。如果两个时间戳相同,则应使用 @timestamp

日期

event.dataset

事件数据集。

常量关键字

event.kind

这是四个 ECS 分类字段之一,指示 ECS 类别层次结构中的最高级别。event.kind 提供有关事件包含的信息类型的概括性信息,而不特定于事件的内容。例如,此字段的值区分警报事件和指标事件。可以使用此字段的值来了解应如何处理这些类型的事件。它们可能需要不同的保留期、不同的访问控制,它也有助于了解数据是否以有规律的间隔传入。

关键字

event.module

事件模块。

常量关键字

event.original

整个事件的原始文本消息。用于证明日志完整性,或在可能需要完整的日志消息(在将其拆分为多个部分之前)时使用,例如,用于重新索引。此字段未编制索引,并且禁用 doc_values。它无法搜索,但可以从 _source 中检索。如果用户希望覆盖此项并为此字段编制索引,请参阅 Elasticsearch 参考中的 字段数据类型

关键字

event.provider

事件的来源。事件传输(例如 Syslog 或 Windows 事件日志)通常会提及事件的来源。它可以是生成事件的软件名称(例如 Sysmon、httpd)或操作系统子系统(内核、Microsoft-Windows-Security-Auditing)。

关键字

event.severity

根据事件源,事件的数值严重性。不同严重性值的含义在不同来源和用例之间可能有所不同。实施者有责任确保来自同一来源的事件的严重性保持一致。Syslog 严重性属于 log.syslog.severity.codeevent.severity 旨在表示根据事件源(例如防火墙、IDS)的严重性。如果事件源不发布自己的严重性,则可以选择将 log.syslog.severity.code 复制到 event.severity

长整数

event.type

这是四个 ECS 分类字段之一,指示 ECS 类别层次结构中的第三层。event.type 表示一个分类“子桶”,当与 event.category 字段值一起使用时,可以将事件筛选到适合单次可视化的级别。此字段是一个数组。这将允许对某些属于多种事件类型的事件进行正确分类。

关键字

host.architecture

操作系统架构。

关键字

host.containerized

如果主机是容器。

布尔值

host.domain

主机所属域的名称。例如,在 Windows 上,这可以是主机的 Active Directory 域或 NetBIOS 域名。对于 Linux,这可以是主机 LDAP 提供程序的域。

关键字

host.hostname

主机的 hostname。它通常包含主机上 hostname 命令返回的内容。

关键字

host.id

唯一主机 ID。由于主机名并非始终唯一,因此请使用在您的环境中具有意义的值。示例:当前 beat.name 的用法。

关键字

host.ip

主机 IP 地址。

IP

host.mac

主机 MAC 地址。

关键字

host.name

主机的名称。它可以包含 Unix 系统上 hostname 返回的内容、完全限定域名或用户指定的名称。发送方决定使用哪个值。

关键字

host.os.build

操作系统版本信息。

关键字

host.os.codename

操作系统代号(如果有)。

关键字

host.os.family

操作系统系列(例如 redhat、debian、freebsd、windows)。

关键字

host.os.kernel

操作系统内核版本(作为原始字符串)。

关键字

host.os.name

操作系统名称,不带版本。

关键字

host.os.name.text

host.os.name 的多字段。

文本

host.os.platform

操作系统平台(例如 centos、ubuntu、windows)。

关键字

host.os.version

操作系统版本(作为原始字符串)。

关键字

host.type

主机类型。对于云提供商,这可以是机器类型,如 t2.medium。如果是虚拟机,则可以是容器,例如,或者在您的环境中具有意义的其他信息。

关键字

input.type

输入类型。

关键字

log.file.path

此事件来源的日志文件的完整路径,包括文件名。应包含驱动器盘符(如果适用)。如果事件不是从日志文件读取的,则不应填充此字段。

关键字

log.level

日志事件的原始日志级别。如果事件的来源提供日志级别或文本严重性,则此级别将放入 log.level 中。如果您的来源未指定,您可以将事件传输的严重性放在此处(例如,Syslog 严重性)。一些示例包括 warnerriinformational

关键字

tags

用于标记每个事件的关键字列表。

关键字

winlog.activity_guid

一个全局唯一标识符,用于标识当前活动。使用此标识符发布的事件是同一活动的一部分。 从 8.14.0 版本开始,不推荐使用,改为使用 winlog.activity_id,并将在未来的版本中删除。

关键字

winlog.activity_id

一个全局唯一标识符,用于标识当前活动。使用此标识符发布的事件是同一活动的一部分。

关键字

winlog.channel

用于启用特殊事件处理。小于 16 的通道值保留供 Microsoft 使用,以启用 ETW 运行时的特殊处理。ETW 运行时将忽略 16 及以上的通道值(与通道 0 的处理方式相同),并且可以赋予用户定义的语义。

关键字

winlog.event_data

特定于事件的数据。此对象的内容特定于任何提供程序和事件。

对象

winlog.event_data.Address

关键字

winlog.event_data.AddressLength

关键字

winlog.event_data.DynamicAddress

关键字

winlog.event_data.Index

关键字

winlog.event_data.Interface

关键字

winlog.event_data.TotalServerCount

关键字

winlog.flags

提供有关事件的信息的标志,例如记录事件的会话类型以及事件是否包含扩展数据。

关键字

winlog.keywords

关键字用于指示事件在事件类别集中的成员资格。

关键字

winlog.opcode

事件中定义的操作码。任务和操作码通常用于标识记录事件的应用程序中的位置。

关键字

winlog.process_id

标识生成事件的进程。

关键字

winlog.provider_guid

一个全局唯一标识符,用于标识记录事件的提供程序。

关键字

winlog.session

配置的会话,用于将 ETW 事件从提供程序转发到使用者。

关键字

winlog.task

事件中定义的任务。任务和操作码通常用于标识记录事件的应用程序中的位置。

关键字

winlog.thread_id

标识生成事件的线程。

关键字

winlog.version

指定基于清单的事件的版本。

长整数

变更日志

编辑
变更日志
版本 详细信息 Kibana 版本

0.1.0

增强 (查看拉取请求)
初始版本