加载中

抑制检测告警

当检测规则运行时,它可能会为相似的事件生成大量告警——有时针对同一威胁会产生数百个几近相同的告警。告警抑制通过将相关事件分组并创建一个代表性告警(而不是为每个事件创建一个告警),帮助您消除这些噪音。

要求
  • 告警抑制功能需要 Elastic Stack 和 Serverless 的相应订阅
  • 机器学习规则对告警抑制有其他要求

在以下情况下,告警抑制非常有用:

  • 规则针对同一活动生成了过多告警(例如,来自同一 IP 地址的重复登录失败尝试)
  • 您希望分析人员将注意力集中在独特的威胁上,而不是重复的威胁上
  • 您需要在不削弱检测覆盖范围的情况下减少告警量

告警抑制不会忽略事件——它会将事件分组。您仍然可以调查与被抑制告警相关的所有原始事件。

在没有抑制的情况下,规则会为每个匹配其条件的事件创建一个告警。启用抑制后:

  1. 您指定一个或多个用于对事件进行分组的字段(例如 host.namesource.ip)。
  2. 当多个事件共享相同的字段值时,它们会被分到一组。
  3. 规则不会为每个事件创建单独的告警,而是为每个组创建一个告警。
  4. 对于某些规则类型,您还可以控制创建告警的频率
    • 每次规则执行:每次规则运行(如果存在匹配事件)时都会创建一个新告警。
    • 按时间段:在您指定的时间窗口内,为所有匹配的事件创建一个告警。

您可以在创建或编辑规则时配置告警抑制。

  1. 选择要分组的字段

    在配置规则时(新规则的 Define rule 步骤,或现有规则的 Definition 选项卡),指定您希望如何对告警进行分组:

    提示

    如果您要根据包含数组的字段进行抑制,请参阅包含数组值的字段的抑制,了解有关不同规则类型如何处理这些字段的详细信息。

  2. 选择抑制频率

    选择为符合条件的事件创建告警的频率

    • 每次规则执行:每次规则运行并找到匹配事件时创建一个告警。

    • 按时间段:在指定的时间窗口内发生的所有匹配事件创建一个告警。该窗口从事件首次匹配并创建一个告警时开始。

      例如,如果规则每 5 分钟运行一次,但您不需要如此频繁的告警,您可以将抑制时间段设置为 1 小时。规则在首次匹配时创建一个告警,然后在接下来的一个小时内抑制任何后续的匹配事件。

      注意

      按时间段是阈值规则唯一可用的选项。

  3. 处理缺失字段

    If a suppression field is missing 下,选择如何处理一个或多个抑制字段不存在的事件:

    • Suppress and group alerts for events with missing fields:将缺失的字段视为具有 null 值。具有缺失字段的事件将被分到一组并被抑制。
    • Do not suppress alerts for events with missing fields:为每个具有缺失字段的事件创建一个单独的告警。这会使这些事件恢复为常规的告警行为。
    注意

    除阈值规则外,这些选项适用于所有规则类型。

  4. 保存并启用规则

    配置任何其他规则设置,然后保存并启用规则。

    提示
    • 在保存之前使用 Rule preview(规则预览),以根据历史数据直观查看告警抑制将如何影响告警。
    • 如果规则在启用抑制时超时,请尝试缩短规则的回溯时间或关闭抑制以提高性能。

当您按包含多个值(数组)的字段抑制告警时,其行为取决于规则类型:

规则类型 行为
自定义查询或阈值 告警按每个唯一值分别进行分组。例如,如果 destination.ip 包含 [127.0.0.1, 127.0.0.2, 127.0.0.3],则会创建三个独立的告警组——每个 IP 地址对应一个。
指标匹配、事件关联(非序列)、新术语、ES|QL 或机器学习 具有完全相同数组的告警会被分到一组。整个数组必须完全匹配。
事件关联(序列查询) 仅当数组完全匹配顺序相同时,告警才会被分组。例如,[1.1.1.1, 0.0.0.0][1.1.1.1, 192.168.0.1] 不会分到一组,即使它们共享一个元素。

当在启用抑制的情况下创建告警时,Elastic Security 应用会显示几个指示器。

重要提示

关闭被抑制的告警可能会影响抑制行为。有关详细信息,请参阅关闭被抑制告警的影响

  • Rule 列中的图标:将鼠标悬停在图标上可查看被抑制告警的数量。

    Suppressed alerts icon and tooltip in Alerts table
  • Suppressed alerts count 列:选择 Fields 以打开字段浏览器,然后将 kibana.alert.suppression.docs_count 添加到表格中。

    Suppressed alerts count field column in Alerts table

打开 Insights > Correlations 部分以查看抑制详情。

Suppressed alerts in the Correlations section within the alert details flyout

尽管被抑制的事件不会生成自己的告警,但您仍然可以访问原始事件进行分析。使用以下方法之一打开包含与被抑制告警相关的所有事件的时间线:

  • 告警表格——在 Actions 列中选择 Investigate in timeline
  • 告警详情浮出控件——选择 Take action > Investigate in timeline

时间线中可见的事件取决于规则类型:

  • 自定义查询规则:时间线显示所有被抑制的源事件,包括分组在该告警下的附加事件。由于基于查询的抑制工作原理,这是自定义查询规则所特有的。
  • 所有其他规则类型:时间线仅显示与生成的告警绑定的事件,而不显示计入抑制总数的附加事件。这是预期行为。

默认情况下,在抑制窗口仍处于活动状态时关闭被抑制的告警会重置抑制。下一个符合条件的事件将启动一个新的抑制窗口并创建一个新告警。

例如,假设您将抑制时间设置为 5 分钟,按 host.name 分组。当有事件匹配时,会创建一个告警。在接下来的 5 分钟内,匹配的事件将被抑制并与该告警分到一组。如果您在 5 分钟窗口结束前关闭该告警,抑制将停止。下一个匹配的事件将创建一个新告警并启动一个新的 5 分钟窗口。

您可以更改此默认行为,使其在抑制窗口结束之前继续抑制告警,即使在您关闭告警之后也是如此。为此,请将 securitySolution:suppressionBehaviorOnAlertClosure 高级设置更改为 Continue until suppression window ends

某些规则类型会限制可以抑制的告警数量。自定义查询规则没有抑制限制。

规则类型 最大被抑制告警数
阈值、事件关联、ES|QL 和机器学习 等于规则的 Max alerts per run 高级设置(默认值:100
指标匹配和新术语 规则的 Max alerts per run 设置的五倍(默认值:500

被抑制的告警会计入此最大值,即使它们没有被单独创建为告警文档。此外,xpack.alerting.rules.run.alerts.max Kibana 设置充当系统级上限,可以进一步限制每次规则执行的告警总数。

您可以使用规则表格中的 Bulk actions 菜单一次性为多个规则应用或移除告警抑制。

  • 对于大多数规则类型,请使用 Apply alert suppression 选项。
  • 对于阈值规则,请使用专门针对阈值规则标记的批量菜单选项。
© . This website operates independently and is not affiliated with or endorsed by Elasticsearch B.V. All brand names, logos, and trademarks are the property of their respective owners.