你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用摘要规则聚合Microsoft Sentinel数据

使用 Microsoft Sentinel 中的摘要规则在后台聚合大量数据,以便跨所有日志层实现更流畅的安全操作体验。 摘要数据在自定义日志表中预编译,并提供快速的查询性能,包括对从 低成本日志层派生的数据运行的查询。 摘要规则可帮助优化数据,以便:

  • 分析和报告,尤其是针对大型数据集和时间范围的分析和报告,这是安全和事件分析、月度或年度业务报告等所必需的。
  • 可节省 详细日志的成本,只需在成本较低的日志层中保留少量日志或保留时间,并仅将汇总数据发送到 Analytics 表进行分析和报告。
  • 安全和数据隐私,方法是删除或模糊处理汇总的可共享数据中的隐私详细信息,并限制对包含原始数据的表的访问。

Microsoft Sentinel使用 Analytics 数据计划将摘要规则结果存储在自定义表中。 有关数据计划和存储成本的详细信息,请参阅 日志表计划

本文介绍如何在 Microsoft Sentinel 中创建摘要规则或部署预生成的摘要规则模板,并提供使用摘要规则的常见方案示例。

重要

2027 年 3 月 31 日之后,Azure 门户将不再支持Microsoft Sentinel,并且仅在Microsoft Defender门户中可用。 在Azure 门户中使用Microsoft Sentinel的所有客户都将重定向到 Defender 门户,并且仅在 Defender 门户中使用Microsoft Sentinel。 从 2025 年 7 月开始,许多新客户 会自动加入并重定向到 Defender 门户

如果仍在Azure 门户中使用Microsoft Sentinel,建议开始规划到 Defender 门户的转换,以确保平稳过渡,并充分利用 Microsoft Defender 提供的统一安全操作体验。 有关详细信息,请参阅是时候移动了:为提高安全性而停用Microsoft Sentinel Azure 门户

先决条件

若要在 Microsoft Sentinel 中创建摘要规则,请执行以下操作:

建议在创建规则之前,在“日志”页中试验摘要规则查询。 验证查询是否未达到或接近查询限制,并检查查询是否生成预期架构和预期结果。 如果查询接近查询限制,请考虑使用较小的 binSize 值,以便每个箱处理较少的数据。 还可以修改查询以返回更少的记录或删除具有较高量的字段。

创建新的摘要规则

创建新的摘要规则,将特定的大型数据集聚合到动态表中。 配置规则频率,以确定从原始数据更新聚合数据集的频率。

  1. 打开“摘要规则”向导:

    • 在 Defender 门户中,选择“Microsoft Sentinel>配置>摘要规则”。

    • 在Azure 门户,从Microsoft Sentinel导航菜单中的“配置”下,选择“摘要规则”。 例如:

      Azure 门户中“摘要规则”页的屏幕截图。

  2. 选择“ + 创建 ”并输入以下详细信息:

    • 名称。 为规则输入有意义的名称。

    • 说明。 输入可选说明。

    • 目标表。 定义聚合数据的自定义日志表:

      • 如果选择“ 现有自定义日志表”,请选择要使用的表。

      • 如果选择“ 新建自定义日志表”,请为表输入有意义的名称。 完整表名使用以下语法: <tableName>_CL

  3. 建议在工作区上启用 SummaryLogs 诊断设置,以获取历史运行和故障的可见性。 如果未启用 SummaryLogs 诊断设置,系统会提示你在 “诊断设置” 区域中启用它们。

    如果 SummaryLogs 诊断设置已启用,但你想要修改设置,请选择“ 配置高级诊断设置”。 返回到 “摘要规则”向导 页时,请确保选择“ 刷新 ”以刷新设置详细信息。

    重要

    SummaryLogs 诊断设置需要额外的成本。 有关详细信息,请参阅 Azure Monitor 中的诊断设置

  4. 选择“ 下一步:设置摘要逻辑 > ”以继续。

  5. “设置摘要逻辑 ”页上,输入摘要查询。 例如,若要汇总 Google Cloud Platform 中的数据,可能需要输入:

    GCPAuditLogs
    | where ServiceName == 'pubsub.googleapis.com'
    | summarize count() by Severity
    

    有关详细信息,请参阅示例摘要规则方案和Kusto 查询语言 (Azure Monitor 中的 KQL)

  6. 选择 “预览结果 ”以显示使用配置的查询收集的数据示例。

  7. “查询计划 ”区域中,定义以下详细信息:

    • 你希望规则运行的频率
    • 是否希望规则以任何类型的延迟(以分钟为单位)运行
    • 希望规则开始运行时

    在计划中定义的时间基于 timegenerated 数据中的列

  8. 选择“ 下一步:查看 + 创建 >>保存” 以完成摘要规则。

现有摘要规则列在 “摘要规则 ”页上,你可以在其中查看规则状态。 对于每个规则,选择行末尾的选项菜单,以执行以下操作之一:

  • “日志 ”页中查看规则的当前数据,就像要立即运行查询一样
  • 查看所选规则的运行历史记录
  • 禁用或启用规则。
  • 编辑规则配置

若要删除规则,请选择规则行,然后在页面顶部的工具栏中选择 “删除 ”。

注意

Azure Monitor 还支持通过 API 或 Azure 资源监视器 (ARM) 模板创建摘要规则。 有关详细信息,请参阅 创建或更新摘要规则

部署预生成的摘要规则模板

摘要规则模板是预构建的摘要规则,可以按原样部署或根据需要进行自定义。

部署摘要规则模板:

  1. 打开内容中心,按摘要规则筛选内容类型,以查看可用的摘要规则模板。

    Microsoft Sentinel中“内容中心”页的屏幕截图,其中显示了摘要规则模板。

  2. 选择摘要规则模板。

    此时会打开一个面板,其中包含有关摘要规则模板的信息,其中显示了说明、摘要查询和目标表等字段。

    显示Microsoft Sentinel中摘要规则模板的详细信息面板的屏幕截图,包括描述、摘要查询和目标表等字段。

  3. 选择“ 安装” 以安装模板。

  4. 选择“摘要规则”页上的“模板”选项卡,然后选择安装的摘要规则。

    “摘要规则”页的“模板”选项卡的屏幕截图。

  5. 选择“ 创建 ”以打开“摘要规则”向导,其中已预填充所有字段。

  6. 完成“摘要规则”向导,然后选择“ 保存” 以部署摘要规则。

    有关摘要规则向导的详细信息,请参阅 创建新的摘要规则

Microsoft Sentinel 中的示例摘要规则方案

本部分介绍在 Microsoft Sentinel 中创建摘要规则的常见方案,以及有关如何配置每个规则的建议。 有关详细信息和示例,请参阅汇总从辅助表的原始数据到 Microsoft Sentinel 中的 Analytics 表的见解用于辅助日志引入的日志源

在网络流量中快速查找恶意 IP 地址

场景:你是威胁猎手,团队的目标之一是识别过去 90 天内恶意 IP 地址在网络流量日志中从活动事件中交互的所有实例。

挑战:Microsoft Sentinel目前每天引入多个 TB 的网络日志。 你需要快速浏览它们,以查找恶意 IP 地址的匹配项。

解决方案:建议使用摘要规则执行以下操作:

  1. 为与事件相关的每个 IP 地址创建摘要数据集,包括 SourceIP、、DestinationIPMaliciousIPRemoteIP,每个都列出重要属性,例如 IPTypeFirstTimeSeenLastTimeSeen

    使用摘要数据集可以快速搜索特定的 IP 地址,并缩小找到 IP 地址的时间范围。 即使搜索的事件发生在 90 天前(超出其工作区保留期),也可以执行此操作。

    在此示例中,将摘要配置为每天运行,以便查询每天添加新的摘要记录,直到它过期。

  2. 创建针对 摘要数据集运行不到两分钟的分析规则,快速钻取恶意 IP 地址与公司网络交互时的特定时间范围。

    请确保将运行间隔配置为至少 5 分钟,以适应不同的摘要有效负载大小。 这可确保即使存在事件引入延迟,也不会丢失。

    例如:

    let csl_columnmatch=(column_name: string) {
    summarized_CommonSecurityLog
    | where isnotempty(column_name)
    | extend
        Date = format_datetime(TimeGenerated, "yyyy-MM-dd"),
        IPaddress = column_ifexists(column_name, ""),
        FieldName = column_name
    | extend IPType = iff(ipv4_is_private(IPaddress) == true, "Private", "Public")
    | where isnotempty(IPaddress)
    | project Date, TimeGenerated, IPaddress, FieldName, IPType, DeviceVendor
    | summarize count(), FirstTimeSeen = min(TimeGenerated), LastTimeSeen = min(TimeGenerated) by Date, IPaddress, FieldName, IPType, DeviceVendor
    };
    union csl_columnmatch("SourceIP")
        , csl_columnmatch("DestinationIP") 
        , csl_columnmatch("MaliciousIP")
        , csl_columnmatch("RemoteIP")
    // Further summarization can be done per IPaddress to remove duplicates per day on larger timeframe for the first run
    | summarize make_set(FieldName), make_set(DeviceVendor) by IPType, IPaddress
    
  3. 运行后续搜索或与其他数据关联 以完成攻击事件。

针对网络数据生成有关威胁情报匹配的警报

针对干扰、高容量和低安全值网络数据生成有关威胁情报匹配的警报。

场景:需要为防火墙日志生成分析规则,以便根据威胁情报域名列表匹配系统中已访问的域名。

大多数数据源都是原始日志,这些日志具有干扰性,且具有较高的容量,但安全值较低,包括 IP 地址、Azure 防火墙流量、Fortigate 流量等。 每天的总容量约为 1 TB。

挑战:创建单独的规则需要多个逻辑应用,需要额外的设置和维护开销以及成本。

解决方案:建议使用摘要规则执行以下操作:

  1. 创建摘要规则

    1. 扩展查询以从 CommonSecurityLog_CL 表中提取关键字段,例如源地址、目标地址和目标端口,该表是带有辅助计划的 CommonSecurityLog

    2. 对活动威胁情报指示器执行内部查找,以识别与源地址的任何匹配项。 这允许你与已知威胁交叉引用数据。

    3. 项目相关信息,包括生成时间、活动类型、任何恶意源 IP 以及目标详细信息。 设置希望查询运行的频率和目标表,例如 MaliciousIPDetection 。 此表中的结果位于分析层中,并相应地收费。

  2. 创建警报

    在 Microsoft Sentinel中创建分析规则,根据 MaliciousIPDetection 表的结果发出警报。 此步骤对于主动威胁检测和事件响应至关重要。

示例摘要规则

CommonSecurityLog_CL​
| extend sourceAddress = tostring(parse_json(Message).sourceAddress), destinationAddress = tostring(parse_json(Message).destinationAddress), destinationPort = tostring(parse_json(Message).destinationPort)​
| lookup kind=inner (ThreatIntelligenceIndicator | where Active == true ) on $left.sourceAddress == $right.NetworkIP​
| project TimeGenerated, Activity, Message, DeviceVendor, DeviceProduct, sourceMaliciousIP =sourceAddress, destinationAddress, destinationPort