当前位置: 首页 > news >正文

使用 Elastic 收集 Windows 遥测数据:ETW Filebeat 输入简介

作者:来自 Elastic Chema Martinez

在安全领域,能够使用 Windows 主机的系统遥测数据为监控、故障排除和保护 IT 环境开辟了新的可能性。意识到这一点,Elastic 推出了专注于 Windows 事件跟踪 (ETW) 的新功能 - 这是一种强大的 Windows 原生机制,用于捕获大量系统和应用程序事件。借助这些新功能,Elastic 用户可以使用 Elastic Search AI 平台捕获、分析和可视化 Windows 遥测数据。

什么是 ETW?

ETW 是一种轻量级、高性能的 Windows 原生机制,用于记录有关系统性能和活动(system performance and activity)的详细事件数据。与传统的 Windows 事件日志不同,ETW 使用户能够收集低级遥测数据,这些遥测数据可针对不同的提供商和场景进行定制,包括系统性能洞察和特定于应用程序的诊断。

在 Elastic 中集成 ETW 的动机

ETW 已广泛用于 Windows 环境中的诊断和性能监控,但收集和管理 ETW 数据传统上需要复杂的设置。通过将 ETW 功能直接集成到 Elastic 中,我们的目标是简化此过程,使在 Elastic 中收集、过滤和分析 ETW 事件以及其他系统和应用程序日志变得更加容易。

深入探究:Filebeat ETW 输入

Elastic 的新 ETW 功能的核心是 Filebeat 的 ETW 输入。此新输入允许 Filebeat 直接订阅 ETW 提供商,从而简化了收集、传输和处理 ETW 数据的方式。下面深入了解它的工作原理以及你可以使用它的方式。

Filebeat ETW 输入的工作原理

Filebeat ETW 输入(Filebeat ETW input)订阅 Windows 主机上的 ETW 会话。ETW 会话是来自 ETW 提供商的事件的逻辑分组,这些提供商本质上是遥测数据的来源,例如 Windows 内核和应用程序提供商。

Filebeat 中的 ETW 输入使用此订阅机制,实时收集数据并将其发送到 Elasticsearch 进行分析和可视化。它可以在三种灵活的模式下运行,并适应一系列数据收集场景,以满足实时和历史数据需求:

  1. 创建新会话:在此模式下,Filebeat 在 Windows 主机上初始化新的 ETW 会话以捕获来自用户模式提供商的事件。此设置非常适合需要从系统上当前运行的应用程序或服务获取实时数据的场景。通过创建专用会话,用户可以收集特定的遥测数据,而不会影响或依赖系统上预先存在的 ETW 会话。
  2. 附加到现有会话:Filebeat 还可以附加到已经活动的 ETW 会话,收集该会话中生成的持续事件数据。这种方法对于已在使用 ETW 会话的环境非常有用。它允许管理员与其他监控工作流一起捕获事件,而不会重复会话或影响系统性能。
  3. 从预先录制的 .etl 文件中读取:在某些情况下,ETW 数据可能会提前记录并存储在 .etl 文件中。Filebeat 可以解析这些文件,使用户能够分析历史事件数据。此模式对于回顾性分析特别有价值,用户可能希望根据先前捕获的 ETW 数据调查以前的系统或应用程序行为。

这种操作模式的灵活性使 Filebeat 的 ETW 输入能够适应各种用例 —— 无论是用于实时监控、取证分析还是操作故障排除。

技术工作流程概述

设置模式后,ETW 输入将遵循简化的流程来收集数据并将其发送到 Elastic:

  • 提供商订阅:Filebeat 根据用户配置发起对一个或多个 ETW 提供商的订阅,无论是通过创建新会话还是连接到现有会话。
  • 数据收集:从活动 ETW 会话捕获事件或从 .etl 文件中解析事件。ETW 记录被收集、解析并转换为 JSON 对象,以确保它们的结构一致,以便有效提取。此转换为 Elasticsearch 中的顺利索引做好了准备,使其能够与 Elastic 中的其他日志和指标数据无缝集成。
  • 传输到 Elasticsearch:收集事件后,它们将被发送到 Elasticsearch 进行存储和分析 - 并准备在 Kibana 中进行可视化。

示例用例:配置 ETW 输入

为了演示如何配置 Filebeat ETW 输入以从特定 ETW 提供程序捕获数据,我们以监控 Microsoft DNS 服务器提供程序为例。

要配置 Filebeat ETW 输入以监控 DNS 事件,我们可以使用 logman 命令行实用程序,该实用程序可以深入了解可用的 ETW 提供程序及其详细信息。logman 允许我们列出所有可用的提供程序,查看每个提供程序的清单,并检查可过滤关键字、跟踪级别和其他配置等详细信息。

在配置 Filebeat 以从特定提供程序收集事件之前,你可能需要查看系统中所有可用的 ETW 提供程序。要查看提供程序的完整列表,请运行以下命令:

PS> logman query providers

示例输出:

Provider                                 GUID
-------------------------------------------------------------------------------
Microsoft-Windows-Kernel-Process         {75A03DF8-6A47-4C6C-B0A0-FB37A13CA342}
Microsoft-Windows-Kernel-File            {EDD08927-9CC4-4E65-B970-C2560FB5C289}
Microsoft-Windows-Kernel-Network         {7DD42A49-5329-4832-8DFD-43D979153A88}
Microsoft-Windows-DNSServer              {EB79061A-A566-4698-9119-3ED2807060E7}
Microsoft-Windows-PowerShell             {A0C1853B-5C40-4B15-8766-3CF1C58F985A}
...

此命令输出可用 ETW 提供程序的列表,显示每个提供程序的名称和唯一 GUID。通过找到感兴趣的提供程序,你可以记下其名称和 GUID 以用于配置目的。

要查看有关特定提供程序作为 Microsoft DNS 服务器的更多详细信息,请在命令 shell 中运行:

PS> logman query providers "Microsoft-Windows-DNSServer"

示例输出如下:

Provider                                 GUID
-------------------------------------------------------------------------------
Microsoft-Windows-DNSServer              {EB79061A-A566-4698-9119-3ED2807060E7}Value               Keyword              Description
-------------------------------------------------------------------------------
0x0000000000000001  QUERY_RECEIVED
0x0000000000000002  RESPONSE_SUCCESS
0x0000000000000004  RESPONSE_FAILURE
0x0000000000000008  IGNORED_QUERY
0x0000000000000010  RECURSE_QUERY_OUT
0x0000000000000020  RECURSE_RESPONSE_IN
0x0000000000000040  RECURSE_QUERY_DROP
...
0x8000000000000000  Microsoft-Windows-DNSServer/Analytical Microsoft-Windows-DNS-Server/Analytical
0x4000000000000000  Microsoft-Windows-DNSServer/Audit Microsoft-Windows-DNS-Server/AuditValue               Level                Description
-------------------------------------------------------------------------------
0x02                win:Error            Error
0x03                win:Warning          Warning
0x04                win:Informational    InformationPID                 Image
-------------------------------------------------------------------------------
0x00000354          C:\Windows\System32\dns.exe
0x00000354          C:\Windows\System32\dns.exe

从此输出中,我们可以看到提供程序 Microsoft-Windows-DNSServer 提供了几个关键字来过滤特定事件类型,例如 QUERY_RECEIVED、RESPONSE_SUCCESS、RESPONSE_FAILURE 等 - 每个关键字都由唯一的十六进制代码表示。此外,它还提供级别(错误、警告、信息),指定可以捕获的事件的严重性。

Filebeat ETW 输入提供过滤选项,允许你仅捕获来自特定提供程序的相关事件:

  • match_any_keyword:如果事件与指定的任何一个关键字匹配,则捕获事件。当你想要监控一系列不一定同时发生的事件类型时,这很有用。
  • match_all_keyword:仅当事件与所有指定的关键字匹配时才捕获事件。此选项非常适合高度特定的事件监控,其中事件必须同时满足多个条件。
  • trace_level:根据事件的严重性级别过滤事件,允许你指定是否仅捕获错误、警告或信息性消息。这有助于将监控工作集中在高优先级问题上。

logman 的输出列出了各种事件类型和相应的关键字,允许你选择要监控的特定事件。例如,如果你想要跟踪递归查询,你可以查找诸如 RECURSE_QUERY_OUT、RECURSE_RESPONSE_IN 或 RECURSE_QUERY_DROP 之类的关键字。要专门针对这些递归查询事件进行过滤,你可以计算它们的值的位掩码总和:

1. 确定每个关键字的十六进制值:

  • RECURSE_QUERY_OUT:0x0000000000000010
  • RECURSE_RESPONSE_IN:0x0000000000000020
  • RECURSE_QUERY_DROP:0x0000000000000040
  • Microsoft-Windows-DNSServer/Analytical(确保捕获分析事件):0x8000000000000000

2. 将这些值相加:

  • 0x8000000000000000 + 0x000000000000010 + 0x0000000000000020 + 0x0000000000000040 = 0x8000000000000070

此结果位掩码 0x8000000000000070 将在 match_any_keyword 配置中使用,以仅捕获这些特定的递归查询事件。

此方法允许对 ETW 输入所摄取的数据进行精细控制,确保你仅收集与你的监控需求相关的事件。

引入基于 ETW 的集成

除了 Filebeat ETW 输入之外,我们还引入了两个集成,它们可简化特定用例的 ETW 数据收集。

Microsoft DNS 服务器集成

监控 DNS 服务器分析日志对于维护网络基础设施的安全性和性能至关重要。常见的 DNS 攻击类型 — DNS 劫持、DNS 隧道、各种拒绝服务 (DoS) 攻击和 DNS 缓存中毒 — 对组织来说意味着重大风险。Windows DNS 分析日志记录是管理员和安全分析师需要了解的重要事件源。它提供了对网络上内部和外部发生的每个 DNS 事务的详细见解。

Microsoft DNS 服务器集成专注于收集 DNS 服务器审计和分析日志。通过此集成,组织可以轻松跟踪和分析 DNS 查询、响应和错误率 — 从而更深入地了解 DNS 活动。集成中包含的预构建仪表板允许用户深入研究 DNS 活动分析,而无需进行复杂的配置或大量设置。

Microsoft DNS 服务器分析仪表板

自定义 ETW 集成

自定义 ETW(custom ETW)集成使用户能够将 ETW 事件导入 Elastic,从而可以灵活地配置与任何兼容提供商的集成或从预先记录的 .etl 文件中读取。

这种适应性使用户能够捕获特定于提供商的数据(应用程序日志、系统性能指标或历史事件数据),以满足他们的监控需求。

尝试 ETW 输入

Elastic 中的新 ETW 输入揭示了监控和保护 Windows 环境的强大可能性。用户现在可以从依赖 ETW 的 Windows 应用程序和服务中收集详细的遥测数据,从而实时洞察系统性能、应用程序行为和潜在的安全风险。

此功能由内置集成(例如 Microsoft DNS 服务器集成)补充,这些集成使无需复杂设置即可轻松获得即时、可操作的洞察。

这些新功能只是 ETW 可以为 Elastic 用户带来的开始。我们很高兴你尝试这些功能、探索新的用例并分享你的反馈,以帮助我们继续在 Elastic 中发展 ETW 功能。要开始使用,请访问 ETW 输入(ETW input)页面获取设置说明,或在 Elastic Cloud 上免费试用这些功能。

本文中描述的任何功能或特性的发布和时间均由 Elastic 自行决定。任何当前不可用的功能或特性可能无法按时交付或根本无法交付。

原文:Collecting Windows telemetry with Elastic: An introduction to the ETW Filebeat input | Elastic Blog

相关文章:

使用 Elastic 收集 Windows 遥测数据:ETW Filebeat 输入简介

作者:来自 Elastic Chema Martinez 在安全领域,能够使用 Windows 主机的系统遥测数据为监控、故障排除和保护 IT 环境开辟了新的可能性。意识到这一点,Elastic 推出了专注于 Windows 事件跟踪 (ETW) 的新功能 - 这是一种强大的 Windows 原生机…...

力扣-位运算-4【算法学习day.44】

前言 ###我做这类文章一个重要的目的还是给正在学习的大家提供方向和记录学习过程(例如想要掌握基础用法,该刷哪些题?)我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非…...

Stable Diffusion 3详解

🌺系列文章推荐🌺 扩散模型系列文章正在持续的更新,更新节奏如下,先更新SD模型讲解,再更新相关的微调方法文章,敬请期待!!!(本文及其之前的文章均已更新&…...

c#异步编程(async/await)

注:下文摘自ChatGPT,总结与案例都非常完善,可以快速理解并应用 0:使用场景 在winform界面程序中,在ui操作中涉及到一些耗时的等待操作,使用线程自己处理已经显得力不从心,如何能更好的实现&am…...

TCP/IP学习笔记

TCP\IP从实际应用的五层结构开始,自顶而下的去分析每一层。 TCP/IP五层架构概述 学术上面是TCP/IP四层架构,OSI/ISO是七层架构,实际中使用的是TCP/IP五层架构。 数据链路层 ICMP数据包分析 Wireshark抓包分析ICMP协议_wireshark抓ping包分析…...

0000_vim自定义快捷键_alias

vim自定义快捷键_alias 如下: 1.直接打开vi ~/.bashrc 然后到最底部,添加alias快捷键 2.添加alias快捷键mgplat 以后只要发送mgplat就等于出发了那么长一条指令 3.保存退出即可 【注意】 操作完后,可能你用mgplat无法使用,可…...

Spring Boot项目中,实体类是否需要实现Serializable接口

在Spring Boot项目中,实体类是否需要实现Serializable接口并不是一个硬性规定,而是取决于具体的应用场景和需求。以下是对这一问题的更详细分析: 1. 序列化的基本概念 序列化是将对象的状态信息转换为可以存储或传输的形式的过程。反序列化则…...

打通工业通信壁垒实现Ethernetip转profinet网络互通

西门子S7-1500 PLC(profinet)与AB PLC 1769-L32E以太网通讯(EtherNet/IP)。今天与大家分享一篇Profinet转EtherNet/IP的通讯配置方案。本文主要介绍开疆智能的Profinet转EtherNet/IP网关KJ-PNG-208,连接西门子S7-1500 …...

数据结构_图的应用

最小生成树 Prim算法 int AMGraph::sum(string v) {int start, totalW, cnt, minW, u, vv, i, j;start LocateVex(v); // 获取起始顶点编号memset(visited, false, sizeof(visited)); // 初始化访问状态visited[start] true;totalW 0; // 最小生成树的总权重cnt 1; // 当前…...

C#中面试的常见问题002

1.wpf和Winfrom的区别 1. 技术基础 WPF:基于.NET Framework,使用XAML(可扩展应用程序标记语言)作为界面描述语言,支持矢量图形和高级布局。WinForms:基于.NET Framework,使用纯代码或拖放设计…...

快速理解微服务中Ribbon的概念

一.基本概念 1.在微服务架构中,Ribbon 是一个客户端负载均衡器,用于控制服务间的通信方式。 2.Ribbon 是一个开源的库,最早由 Netflix 开发,用于实现客户端负载均衡。 3.Ribbon 主要解决的是在微服务架构中,多个服务…...

K8S简介、使用教程

以下是关于 Kubernetes(通常缩写为 K8S)的简介和使用教程: 一、Kubernetes 简介 定义与作用 Kubernetes 是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。它最初由谷歌开发,后捐赠给云原生计算基…...

极狐GitLab 17.6 正式发布几十项与 DevSecOps 相关的功能【四】

GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料: 极狐GitLab 官网极狐…...

麦肯锡报告 | 科技落地的真谛:超越技术本身的价值创造

科技创新正在以惊人的速度改变企业运作和客户体验,但实现其潜力的关键在于正确的策略、流程、文化和人才。麦肯锡强调了一个理念:Never just tech(不仅仅是技术)。这表明,成功的数字化转型不仅依赖于技术,还…...

彻底解决 macOS 下Matplotlib 中文显示乱码问题

彻底解决 macOS 下Matplotlib 中文显示乱码问题 在使用 Python 的 Matplotlib 库进行数据可视化时,中文字符的显示常常会出现乱码问题,尤其在 macOS 系统上。在网上找了一大堆方法,花了很久,发现不是要安装各种字体就是要改配置&…...

STM32-- keil 的option for target使用

keil版本号 1.device界面 如:stm32f103c8t6的工程,可以直接在device这里修改成stm32f103vct6,虽然引脚不一样,但是很多一样的地方,可以直接使用,有些不修改也可以下载程序。 2.target xtal的设置不起作用了…...

【MCU】微控制器的编程技术:ISP 与 IAP

在嵌入式领域中,将程序下载到内置 Flash 有两种技术 ISP (In-system programming) ISP 即在系统编程,是指一些可编程逻辑器件、微控制器、芯片组和其他嵌入式设备在安装到完整嵌入式系统后能够进行编程,而不需要在将芯片安装到系统中之前对…...

C#基础题总结

16.一张单据上有一个5位数的号码为6**42,其中百位数和千位数已模糊不清,但知道该数能被 57 和 67 除尽。设计一个算法,找出该单据所有可能的号码。 17.编程序求2~10000以内的完全数。一个数的因子(除了这个数本身&…...

Elasticsearch中的节点(比如共20个),其中的10个选了一个master,另外10个选了另一个master,怎么办?

大家好,我是锋哥。今天分享关于【Elasticsearch中的节点(比如共20个),其中的10个选了一个master,另外10个选了另一个master,怎么办?】面试题。希望对大家有帮助; Elasticsearch中的节…...

《参与中型项目,领略 Spring 魅力》

一、Spring 在中型项目中的魅力展现 Spring 框架以其强大的功能和灵活性,在中型项目中发挥着重要作用。它不仅简化了开发过程,还提高了代码的可维护性和可扩展性。 Spring 在中型项目中魅力十足,其优势主要体现在以下几个方面。 首先&#…...

计算机网络-GRE(通用路由封装协议)简介

昨天我们学习了VPN的基本概念,虚拟专用网络在当前企业总部与分支间广泛使用。常用的划分方法为基于协议层次有GRE VPN、IPSec VPN、L2TP VPN、PPTP VPN、SSL VPN等。其实我有考虑该怎么讲,因为在IP阶段好像虚拟专用网络讲得不深,在IE的阶段会…...

开源电话机器人产品的优点是什么?

开源电话机器人产品的优点是什么? 作者:开源呼叫中心系统 FreeIPCC,Github地址:https://github.com/lihaiya/freeipcc 开源电话机器人产品作为人工智能技术的一种应用,近年来在电销、客户服务等多个领域展现出了显著的…...

Spring Boot 集成 Knife4j 的 Swagger 文档

在开发微服务应用时,API 文档的生成和维护是非常重要的一环。Swagger 是一个非常流行的 API 文档工具,可以帮助我们自动生成 RESTful API 的文档,并提供了一个友好的界面供开发者测试 API。本文将介绍如何在 Spring Boot 项目中集成 Knife4j …...

极狐GitLab 17.6 正式发布几十项与 DevSecOps 相关的功能【一】

GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料: 极狐GitLab 官网极狐…...

C# 在Word文档模板中,按照占位符插入文字或图片

1,引入包:DocX 2,代码如下 public class CC{public static void Ma22in(){// 示例:加载现有模板并替换占位符string templatePath "报告模板.docx"; // 模板文件路径string outputPath "Output.docx"; // 输出文…...

在使用PCA算法进行数据压缩降维时,如何确定最佳维度是一个关键问题?

一、PCA算法的基本原理 PCA算法的核心思想是通过正交变换,将一组可能相关的变量转换成一组线性不相关的变量,称为主成分。这组主成分能够以最小的信息损失来尽可能多地保留原始数据集的变异性。具体来说,PCA算法包括以下几个步骤&#xff1a…...

深度学习3

五、自动微分 1、基础概念 模块 autograd 负责自动计算张量操作的梯度,具有自动求导功能;autograd 创建一个动态计算图来跟踪张量的操作,每个张量是计算图中的一个节点,节点之间的操作构成图的边。 属性 requires_grad 决定…...

Qt5.14.2的安装与环境变量及一些依赖库的配置

目录 1.Qt5.14.2安装 2.Qt环境变量及一些依赖库的配置 1.Qt5.14.2安装 QT从入门到入土(一)——Qt5.14.2安装教程和VS2019环境配置 - 唯有自己强大 - 博客园 2.Qt环境变量及一些依赖库的配置 假设QT安装目录为: D:\Qt\Qt5.14.2 将目录: D:\Qt\Qt5.14.…...

PYNQ 框架 - 时钟系统 + pl_clk 时钟输出不准确问题

目录 1. 简介 2. PS 时钟计算 2.1 计算框架 2.2 KV260 的参考时钟 2.3 PL_CLK 设置 3. 测试 3.1 Block design 3.2 引脚绑定 3.3 使用 AD2 测量 3.4 调整分频 4. PYNQ 时钟驱动 4.1 源码解析 4.2 查看 PL_CLK 4.3 配置 PL_CLK 5. 总结 1. 简介 ZYNQ MPSoC 具有…...

CDAF / PDAF 原理 | PDAF、CDAF 和 LAAF 对比 | 图像清晰度评价指标

注:本文为 “CDAF / PDAF 原理 | PDAF、CDAF 和 LAAF 对比 | 图像清晰度评价指标” 几篇相关文章合辑。 文章中部分超链接、图片异常受引用之前的原文所限。 相机自动对焦原理 TriumphRay 于 2020-01-16 18:59:41 发布 凸透镜成像原理 这一部分大家中学应该就学过…...

外国出名的设计网站/兰州seo快速优化报价

1 先创建虚拟机 1 新建虚拟机 3 使用已有的虚拟磁盘 4 点击创建 5 完成 本文转自zhang25yun51CTO博客,原文链接: http://blog.51cto.com/1585654/1673214,如需转载请自行联系原作者...

张家口做网站便宜点的/淘宝补流量平台

http://www.seowhy.com/ 转载于:https://www.cnblogs.com/releaseyou/archive/2009/05/12/1455175.html...

aspcms中引文 网站修改配置/服务推广软文范例

题目:点击打开链接 这个题目来自多校练习5,求整数划分的种类数,二维DP一定超时,一维打表试了试(参考poj上吃蛋糕的题,范围是5000/5S),大于120KB,没法提交。 找了半天&a…...

一站式网站搭建/外贸b2b平台都有哪些网站

职位职能: 数据库工程师/管理员 职位描述:岗位职责:数据库管理的持续配置和调优管理和支持大型Oracle数据库系统监控线上数据库系统并及时对预警/警报信息做出正确的反应持续7x24对异常做出响应并以恰当的方式汇报为企业建立数据监控,故障排除以及维护机…...

赚钱网站如何做/it教育培训机构

由于公司停了系统的密码认证,所有传输文件只能用其他认证方式。 rsync和scp都可以用自己的认证方式传输数据,rsync传输速度快,但是需要deamon模式运行,配置起来比较慢,而scp可以比较快速的部署两台机器之间的认证&…...

定制网站开发报价/app推广赚钱平台

Java Q&A: 使用Factory Method模式 (转)[more]Java Q&A: 使用Factory Method模式Q: 阅读 "Polymorphism in its purest form" 一文时,我看到了一个不熟悉的术语 "Factory method"。你能解释一下什么是Factory method并说明如何使用它吗…...