适用于 Microsoft Sentinel 的经由 AMA 的 Syslog 连接器和通用事件格式 (CEF) 连接器

适用于 Microsoft Sentinel 的 Syslog via AMA 和 Common Event Format (CEF) via AMA 数据连接器筛选和引入 Syslog 消息,包括来自 Linux 计算机、网络和安全设备及装置的通用事件格式 (CEF) 消息。 这些连接器会在要从中收集 Syslog 和/或 CEF 消息的任何 Linux 计算机上安装 Azure Monitor 代理 (AMA)。 此计算机可以是消息的发起方,也可以是从其他计算机(例如网络或安全设备及装置)收集消息的转发器。 连接器根据定义的数据收集规则 (DCR) 发送代理指令。 DCR 指定要监视的系统以及要收集的日志或消息的类型。 它们还定义在引入日志之前要应用于消息的筛选器,以提高性能并实现更高效的查询和分析。

Syslog 和 CEF 是记录不同设备和应用程序中的数据的两种常见格式。 它们可帮助系统管理员和安全分析师监视和排查网络问题,并确定潜在的威胁或事件。

什么是 Syslog?

Syslog 是一种标准协议,用于通过网络在不同设备或应用程序之间发送和接收消息。 它最初是为 Unix 系统开发的,但现在受到各种平台和供应商的广泛支持。 Syslog 消息具有预定义的结构,其中包含优先级、时间戳、主机名、应用程序名称、进程 ID 和消息文本。 可以根据配置和安全要求,通过 UDP、TCP 或 TLS 来发送 Syslog 消息。

Azure Monitor 代理支持 Syslog RFC 3164 和 5424。

什么是通用事件格式 (CEF)?

CEF 或通用事件格式是一种非特定于供应商的格式,用于记录来自网络和安全设备及装置的数据,例如防火墙、路由器、检测和响应解决方案、入侵检测系统,以及其他类型的系统(如 Web 服务器)。 Syslog 的扩展,它专为安全信息和事件管理 (SIEM) 解决方案开发。 CEF 消息具有一个标准标头,其中包含设备供应商、设备产品、设备版本、事件类、事件严重性和事件 ID 等信息。 CEF 消息还具有可变数量的扩展,这些扩展提供有关事件的更多详细信息,例如源和目标 IP 地址、用户名、文件名或执行的操作。

使用 AMA 收集 Syslog 和 CEF 消息

下图演示了使用通过 AMA 的 Syslog通过 AMA 的通用事件格式 (CEF) 连接器在 Microsoft Sentinel 中收集 Syslog 和 CEF 消息的体系结构。

此图显示了从安装了 Azure Monitor 代理 (AMA) 的单个 Linux 虚拟机收集的 Syslog 消息。

来自单个源的 Syslog 集合的示意图。

使用 Azure Monitor 代理的数据引入过程使用以下组件和数据流:

  • 日志来源是你的环境中生成 Syslog 消息的各种 Linux VM。 这些消息由本地 Syslog 守护程序通过 TCP 或 UDP 端口 514 进行收集(或者根据你的偏好通过其他端口进行收集)。

  • 本地 Syslog 守护程序rsyslogsyslog-ng)通过 TCP 或 UDP 端口 514 收集日志消息(或者根据你的偏好通过其他端口进行收集)。 然后,守护程序以两种不同的方式将这些日志发送到 Azure Monitor 代理,具体取决于 AMA 版本:

    • AMA 版本 1.28.11 及更高版本通过 TCP 端口 28330 接收日志
    • 更低版本的 AMA 通过 Unix 域套接字接收日志。

    如果要使用 514 以外的端口来接收 Syslog/CEF 消息,请确保 Syslog 守护程序上的端口配置与生成消息的应用程序的端口配置匹配。

  • 通过设置数据连接器,在要从中收集 Syslog 消息的每个 Linux VM 上安装的 Azure Monitor 代理。 代理分析日志,然后将其发送到 Microsoft Sentinel (Log Analytics) 工作区

  • Microsoft Sentinel (Log Analytics) 工作区:此处发送的 Syslog 消息最终出现在 Syslog 表中,你可以在该表中查询日志并对日志执行分析以检测和响应安全威胁。

设置用于收集日志消息的流程

从 Microsoft Sentinel 中的“内容中心”,安装适合 Syslog 或通用事件格式的解决方案。 此步骤安装相应的数据连接器:经由 AMA 的 Syslog 数据连接器或经由 AMA 的通用事件格式 (CEF) 数据连接器。 有关更多信息,请参阅发现和管理 Microsoft Sentinel 的现成内容

在安装过程中,请创建数据收集规则并在日志转发器上安装 Azure Monitor 代理 (AMA)。 使用 Azure 门户或 Azure Monitor 日志引入 API 执行这些任务。

  • 在 Azure 门户中配置 Microsoft Sentinel 的数据连接器时,可以按工作区创建、管理和删除 DCR。 AMA 将自动安装在你在连接器配置中选择的 VM 上。

  • 或者,将 HTTP 请求发送到日志引入 API。 使用此设置可以创建、管理和删除 DCR。 此选项比门户更灵活。 例如,使用该 API,可以按特定日志级别进行筛选。 在 Azure 门户中,只能选择最低日志级别。 使用此方法的缺点是,必须在创建 DCR 之前在日志转发器上手动安装 Azure Monitor 代理。

创建 DCR 并安装 AMA 后,在日志转发器上运行“安装”脚本。 此脚本将 Syslog 守护程序配置为侦听来自其他计算机的消息,并打开必要的本地端口。 然后,根据需要配置安全设备或装备。

有关详细信息,请参阅以下文章:

避免数据引入重复

将相同的设备用于 Syslog 和 CEF 消息可能导致 CommonSecurityLog 和 Syslog 表之间出现数据引入重复。

要避免这种情况,请使用以下方法之一:

  • 如果源设备启用了目标设备的配置:在以 CEF 格式将日志发送到日志转发器的每台源计算机上,编辑 Syslog 配置文件来移除用于发送 CEF 消息的设备。 这样一来,使用 CEF 发送的设备就不会也使用 Syslog 发送。 请确保配置的每个 DCR 分别使用 CEF 或 Syslog 的相关设备。

    若要查看如何排列 DCR 以从同一代理引入 Syslog 和 CEF 消息的示例,请参阅同一 DCR 中的 Syslog 和 CEF 流

  • 如果不适合更改源设备的设施:在创建 DCR 后,添加引入时间转换从 Syslog 流中筛选出 CEF 消息来避免重复。 请参阅教程:编辑数据收集规则 (DCR)。 添加类似于以下示例的 KQL 转换:

    "transformKql": "  source\n    |  where ProcessName !contains \"CEF\"\n"
    

后续步骤