使用 AMA 连接器流式传输和筛选 Windows DNS 服务器中的数据

本文介绍如何使用 Azure Monitor 代理 (AMA) 连接器流式传输和筛选 Windows 域名系统 (DNS) 服务器日志中的事件。 然后,可以深入分析数据,以避免 DNS 服务器遭受威胁和攻击。

AMA 及其 DNS 扩展安装在 Windows Server 上,用于将 DNS 分析日志中的数据上传到 Microsoft Sentinel 工作区。 了解连接器

概述

为何监视 DNS 活动非常重要

DNS 是一种广泛使用的协议,它在主机名和计算机可读 IP 地址之间进行映射。 由于 DNS 的设计并未考虑到安全性,该服务很容易成为恶意活动的目标,因此其日志记录成了安全监视的重要组成部分。

针对 DNS 服务器的一些众所周知的威胁包括:

  • DNS 劫持
  • DNS 隧道攻击
  • DNS 中毒
  • DNS 欺骗
  • NXDOMAIN 攻击
  • 幻影域攻击

“通过 AMA 处理 Windows DNS 事件”连接器

虽然引入的一些机制可以提高此协议的整体安全性,但 DNS 服务器仍然是恶意活动经常针对的服务。 组织可以监视 DNS 日志来更好地了解网络活动,并识别针对网络中资源的可疑行为或攻击。 “通过 AMA 处理 Windows DNS 事件”连接器可以提供这种可见性。

借助该连接器,可以:

  • 确定尝试解决恶意域名的客户端。
  • 查看和监视 DNS 服务器上的请求负载。
  • 查看动态 DNS 注册错误。
  • 识别经常查询的域名和频繁通信的客户端。
  • 确定过时的资源记录。
  • 在一个位置查看所有 DNS 相关日志。

如何在“通过 AMA 处理 Windows DNS 事件”连接器中使用收集

  1. AMA 连接器使用安装的 DNS 扩展来收集和分析日志。

    注意

    “通过 AMA 处理 Windows DNS 事件”连接器目前仅支持分析事件活动。

  2. 该连接器将事件流式传输到 Microsoft Sentinel 工作区以供进一步分析。

  3. 现在你可以使用高级筛选器来筛选出特定的事件或信息。 使用高级筛选器可以仅上传你要监视的重要数据,从而降低了成本和带宽使用量。

使用 ASIM 进行规范化

已使用高级安全信息模型 (ASIM) 分析器完全规范化此连接器。 该连接器将源自分析日志的事件流式传输到名为 ASimDnsActivityLogs 的规范化表中。 此表充当转换器,它使用一种统一语言在所有 DNS 连接器之间共享。

对于统一所有 DNS 数据并确保跨所有配置的源运行分析的源不可知分析器,请使用 ASIM DNS 统一分析器 _Im_Dns

ASIM 统一分析器补充了本机 ASimDnsActivityLogs 表。 虽然本机表符合 ASIM 规范,但需要通过分析器来添加仅在查询时可用的功能(例如别名),并将 ASimDnsActivityLogs 与其他 DNS 数据源相结合。

ASIM DNS 架构代表 DNS 协议活动,如 Windows DNS 服务器的分析日志中所记录的那样。 该架构由定义字段和值的正式参数列表和 RFC 控制。

请参阅已转换为规范化字段名称的 Windows DNS 服务器字段列表

设置“通过 AMA 处理 Windows DNS”连接器

可通过两种方式设置该连接器:

  • Microsoft Sentinel 门户。 通过此设置,可为每个工作区创建、管理和删除单个数据收集规则 (DCR)。 即使你通过 API 定义了多个 DCR,该门户也只显示一个 DCR。
  • API。 通过此设置,可以创建、管理和删除多个 DCR。

先决条件

在开始之前,请确认已做好以下准备:

  • 已启用 Microsoft Sentinel 解决方案。
  • 已定义一个 Microsoft Sentinel 工作区。
  • 包含审核修补程序的 Windows Server 2012 R2 和更高版本。
  • Windows DNS Server。
  • 若要从非 Azure 虚拟机的任何系统收集事件,请确保已安装 Azure Arc。 在启用基于 Azure Monitor 代理的连接器之前安装并启用 Azure Arc。 此要求包括:
    • 安装在物理计算机上的 Windows 服务器
    • 安装在本地虚拟机上的 Windows 服务器
    • 安装在非 Azure 云中虚拟机上的 Windows 服务器

在 Microsoft Sentinel 门户 (UI) 中设置连接器

打开连接器页并创建 DCR

  1. 打开 Azure 门户,导航到 Microsoft Sentinel 服务。
  2. 在“数据连接器”边栏选项卡上的搜索栏中键入“DNS”。
  3. 选择“通过 AMA 处理 Windows DNS 事件”连接器
  4. 在连接器说明的下方,选择“打开连接器页”。
  5. 在“配置”区域中,选择“创建数据收集规则”。 可为每个工作区创建单个 DCR。 如果需要创建多个 DCR,请使用 API

DCR 名称、订阅和资源组是根据工作区名称、当前订阅和选择的连接器所在的资源组自动设置的。

为“通过 AMA 处理 Windows DNS”连接器创建新 DCR 的屏幕截图。

定义资源 (VM)

  1. 选择“资源”选项卡,然后选择“添加资源”。

  2. 选择要在其上安装连接器以收集日志的 VM。

    为“通过 AMA 处理 Windows DNS”连接器选择资源的屏幕截图。

  3. 查看更改并选择“保存”>“应用”。

筛选掉不需要的事件

使用筛选器时,可以排除筛选器指定的事件。 换言之,Microsoft Sentinel 不会收集指定的事件的数据。 虽然此步骤不是必需的,但它有助于降低成本并简化事件会审。

创建筛选器:

  1. 在连接器页上的“配置”区域中,选择“添加数据收集筛选器”。

  2. 键入筛选器的名称并选择筛选器类型。 筛选器类型是用于减少收集的事件数的参数。 参数已根据 DNS 规范化架构进行规范化。 请参阅可用于筛选的字段列表。

    为“通过 AMA 处理 Windows DNS”连接器创建筛选器的屏幕截图。

  3. 从下拉列表列出的值中选择要筛选此字段的值。

    为“通过 AMA 处理 Windows DNS”连接器将字段添加到筛选器的屏幕截图。

  4. 若要添加复杂筛选器,请选择“将排除字段添加到筛选器”并添加相关字段。 请参阅下面的使用高级筛选器部分中的示例。

  5. 若要添加更多新筛选器,请选择“添加新的排除筛选器”

  6. 添加完筛选器后,请选择“添加”

  7. 返回到连接器主页,选择“应用更改”以保存筛选器并将其部署到连接器。 若要编辑或删除现有的筛选器或字段,请在“配置”区域下的表中选择编辑或删除图标

  8. 若要在进行初始部署后添加字段或筛选器,请再次选择“添加数据收集筛选器”

使用 API 设置连接器

可以使用 API 创建 DCR。 如果需要创建多个 DCR,请使用此选项。

使用此示例作为模板来创建或更新 DCR:

请求 URL 和标头


PUT 

https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/dataCollectionRules/{dataCollectionRuleName}?api-version=2019-11-01-preview 

请求正文


{
    "properties": {
        "dataSources": {
            "windowsEventLogs": [],
            "extensions": [
                {
                    "streams": [
                        "Microsoft-ASimDnsActivityLogs"
                    ],
                    "extensionName": "MicrosoftDnsAgent",
                    "extensionSettings": {
                        "Filters": [
                            {
                                "FilterName": "SampleFilter",
                                "Rules": [
                                    {
                                        "Field": "EventOriginalType",
                                        "FieldValues": [
                                            "260"
                                        ]
                                    }
                                ]
                            }
                        ]
                    },
                    "name": "SampleDns"
                }
            ]
        },
        "destinations": {
            "logAnalytics": [
                {
                    "workspaceResourceId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.OperationalInsights/workspaces/{sentinelWorkspaceName}",
                    "workspaceId": {WorkspaceGuid}",
                    "name": "WorkspaceDestination"
                }
            ]
        },
        "dataFlows": [
            {
                "streams": [
                    "Microsoft-ASimDnsActivityLogs"
                ],
                "destinations": [
                    " WorkspaceDestination "
                ]
            }
        ],
    },
    "location": "chinaeast2",
    "tags": {},
    "kind": "Windows",
    "id":"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Insights/dataCollectionRules/{workspaceName}-microsoft-sentinel-asimdnsactivitylogs ",
    "name": " {workspaceName}-microsoft-sentinel-asimdnsactivitylogs ",
    "type": "Microsoft.Insights/dataCollectionRules",
}

使用高级筛选器

DNS 服务器事件日志可能包含巨量事件。 在上传数据之前,可以使用高级筛选来筛选掉不需要的事件,从而节省宝贵的会审时间和成本。 筛选器从上传到工作区的事件流中删除不需要的数据。

筛选器基于多个字段的组合。

  • 可以使用逗号分隔的列表来为每个字段使用多个值。
  • 若要创建复合筛选器,请使用不同的字段并在它们之间建立 AND 关系。
  • 若要组合不同的筛选器,请在它们之间使用 OR 关系。

查看可用于筛选的字段

使用通配符

可以在高级筛选器中使用通配符。 使用通配符时请查看以下注意事项:

  • 在每个星号 (*.) 后添加一个句点。
  • 不要在域列表之间使用空格。
  • 不管协议是什么,通配符都只应用于域的子域,包括 www.domain.com。 例如,如果在高级筛选器中使用 *.domain.com
    • 该筛选器应用于 www.domain.comsubdomain.domain.com,而不管协议是 HTTPS、FTP 还是其他。
    • 筛选器不会应用于 domain.com。 若要将筛选器应用于 domain.com,请直接指定域,而不要使用通配符。

高级筛选器示例

不要收集特定的事件 ID

此筛选器指示连接器不要收集包含 IPv6 地址的 EventID 256、EventID 257 或 EventID 260。

使用 Microsoft Sentinel 门户

  1. 使用 EventOriginalType 字段、Equals 运算符和值 256257260 创建筛选器。

    为“通过 AMA 处理 Windows DNS”连接器筛选掉事件 ID 的屏幕截图。

  2. 使用上面定义的 EventOriginalType 字段创建筛选器,并使用 And 运算符,同时包含设置为 AAAADnsQueryTypeName 字段。

    为“通过 AMA 处理 Windows DNS”连接器筛选掉事件 ID 和 IPv6 地址的屏幕截图。

使用 API

"Filters": [
    {
        "FilterName": "SampleFilter",
        "Rules": [
            {
                "Field": "EventOriginalType",
                "FieldValues": [
                    "256", "257", "260"                                                                              
                ]
            },
            {
                "Field": "DnsQueryTypeName",
                "FieldValues": [
                    "AAAA"                                        
                ]
            }
        ]
    },
    {
        "FilterName": "EventResultDetails",
        "Rules": [
            {
                "Field": "EventOriginalType",
                "FieldValues": [
                    "230"                                        
                ]
            },
            {
                "Field": "EventResultDetails",
                "FieldValues": [
                    "BADKEY","NOTZONE"                                        
                ]
            }
        ]
    }
]

不要收集包含特定域的事件

此筛选器指示连接器不要收集来自 microsoft.com、google.com、amazon.com 的任何子域的事件,或者来自 facebook.com 或 center.local 的事件。

使用 Microsoft Sentinel 门户

使用 Equals 运算符设置 DnsQuery 字段,并包含列表 *.microsoft.com,*.google.com,facebook.com,*.amazon.com,center.local

查看有关使用通配符的这些注意事项。

为“通过 AMA 处理 Windows DNS”连接器筛选掉域的屏幕截图。

若要在单个字段中定义不同的值,请使用 OR 运算符。

使用 API

查看有关使用通配符的这些注意事项。

"Filters": [ 

    { 

        "FilterName": "SampleFilter", 

        "Rules": [ 

            { 

                "Field": "DnsQuery", 

                "FieldValues": [ 

                    "*.microsoft.com", "*.google.com", "facebook.com", "*.amazon.com","center.local"                                                                               

                ] 

            }, 

         } 

    } 

] 

后续步骤

在本文中,你已了解如何设置“通过 AMA 处理 Windows DNS 事件”连接器,以上传数据和筛选 Windows DNS 日志。 若要详细了解 Microsoft Sentinel,请参阅以下文章: