Skip to content

Commit 81566db

Browse files
nastasha-solomonmergify[bot]
authored andcommitted
[Request][Serverless][8.16] GA-ing alert suppression for IM rule, Threshold rule, ML rule, ES|QL rule and New Terms rule (#5926)
* Updates label * Updates create rule docs * Fixed note (cherry picked from commit d154348) # Conflicts: # docs/serverless/alerts/alert-suppression.mdx # docs/serverless/rules/rules-ui-create.mdx
1 parent 7a30364 commit 81566db

File tree

6 files changed

+1024
-8
lines changed

6 files changed

+1024
-8
lines changed

docs/detections/alert-suppression.asciidoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
* {ml-cap} rules have <<ml-requirements,additional requirements>> for alert suppression.
1010

11-
preview::["Alert suppression is in technical preview for threshold, indicator match, event correlation, and new terms rules. The functionality may be changed or removed in a future release. Elastic will work to fix any issues, but features in technical preview are not subject to the support SLA of official GA features."]
11+
preview::["Alert suppression is in technical preview for event correlation rules. The functionality may be changed or removed in a future release. Elastic will work to fix any issues, but features in technical preview are not subject to the support SLA of official GA features."]
1212
--
1313

1414
Alert suppression allows you to reduce the number of repeated or duplicate detection alerts created by these detection rule types:

docs/detections/api/rules/rules-api-create.asciidoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -505,7 +505,7 @@ a detection rule exception (`detection`) or an endpoint exception (`endpoint`).
505505
[[opt-fields-alert-suppression-create]]
506506
===== Optional alert suppression fields for query, indicator match, threshold, event correlation (non-sequence queries only), new terms, {esql}, and {ml} rules
507507

508-
preview::["Alert suppression is in technical preview for threshold, indicator match, event correlation, new terms, {ml}, and {esql} rules. The functionality may be changed or removed in a future release. Elastic will work to fix any issues, but features in technical preview are not subject to the support SLA of official GA features."]
508+
preview::["Alert suppression is in technical preview for event correlation rules. The functionality may be changed or removed in a future release. Elastic will work to fix any issues, but features in technical preview are not subject to the support SLA of official GA features."]
509509

510510
====== Query, indicator match, event correlation (non-sequence queries only), new terms, {esql}, and {ml} rules
511511

docs/detections/api/rules/rules-api-update.asciidoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -534,7 +534,7 @@ in the UI (*Rules* -> *Detection rules (SIEM)* -> *_Rule name_*).
534534
[[opt-fields-alert-suppression-update]]
535535
===== Optional alert suppression fields for query, indicator match, threshold, event correlation (non-sequence queries only), new terms, {esql}, and {ml} rules
536536

537-
preview::["Alert suppression is in technical preview for threshold, indicator match, event correlation, new terms, {ml}, and {esql} rules. The functionality may be changed or removed in a future release. Elastic will work to fix any issues, but features in technical preview are not subject to the support SLA of official GA features."]
537+
preview::["Alert suppression is in technical preview for event correlation rules. The functionality may be changed or removed in a future release. Elastic will work to fix any issues, but features in technical preview are not subject to the support SLA of official GA features."]
538538

539539
====== Query, indicator match, event correlation (non-sequence queries only), new terms, {esql}, and {ml} rules
540540

docs/detections/rules-ui-create.asciidoc

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ then select:
5050
NOTE: If a required job isn't currently running, it will automatically start when you finish configuring and enable the rule.
5151
.. The anomaly score threshold above which alerts are created.
5252
+
53-
. preview:[] (Optional, https://www.elastic.co/pricing[Platinum or higher subscription] required) Use *Suppress alerts by* to reduce the number of repeated or duplicate alerts created by the rule. Refer to <<alert-suppression>> for more information.
53+
. (Optional, https://www.elastic.co/pricing[Platinum or higher subscription] required) Use *Suppress alerts by* to reduce the number of repeated or duplicate alerts created by the rule. Refer to <<alert-suppression>> for more information.
5454
+
5555
NOTE: Because {ml} rules generate alerts from anomalies, which don't contain source event fields, you can only use anomaly fields when configuring alert suppression.
5656
+
@@ -139,7 +139,7 @@ You can also leave the *Group by* field undefined. The rule then creates an aler
139139
+
140140
IMPORTANT: Alerts created by threshold rules are synthetic alerts that do not resemble the source documents. The alert itself only contains data about the fields that were aggregated over (the *Group by* fields). Other fields are omitted, because they can vary across all source documents that were counted toward the threshold. Additionally, you can reference the actual count of documents that exceeded the threshold from the `kibana.alert.threshold_result.count` field.
141141

142-
. preview:[] (Optional, https://www.elastic.co/pricing[Platinum or higher subscription] required) Select *Suppress alerts* to reduce the number of repeated or duplicate alerts created by the rule. Refer to <<alert-suppression>> for more information.
142+
. (Optional, https://www.elastic.co/pricing[Platinum or higher subscription] required) Select *Suppress alerts* to reduce the number of repeated or duplicate alerts created by the rule. Refer to <<alert-suppression>> for more information.
143143
+
144144

145145
////
@@ -269,7 +269,7 @@ they can be selected here. When alerts generated by the rule are investigated
269269
in the Timeline, Timeline query values are replaced with their corresponding alert
270270
field values.
271271
+
272-
. preview:[] (Optional, https://www.elastic.co/pricing[Platinum or higher subscription] required) Select *Suppress alerts* to reduce the number of repeated or duplicate alerts created by the rule. Refer to <<alert-suppression>> for more information.
272+
. (Optional, https://www.elastic.co/pricing[Platinum or higher subscription] required) Select *Suppress alerts* to reduce the number of repeated or duplicate alerts created by the rule. Refer to <<alert-suppression>> for more information.
273273
+
274274

275275
////
@@ -328,7 +328,7 @@ IMPORTANT: When checking multiple fields, each unique combination of values from
328328
+
329329
For example, if a rule has an interval of 5 minutes, no additional look-back time, and a history window size of 7 days, a term will be considered new only if the time it appears within the last 7 days is also within the last 5 minutes. Configure the rule interval and additional look-back time when you <<rule-schedule, set the rule's schedule>>.
330330

331-
. preview:[] (Optional, https://www.elastic.co/pricing[Platinum or higher subscription] required) Use *Suppress alerts by* to reduce the number of repeated or duplicate alerts created by the rule. Refer to <<alert-suppression>> for more information.
331+
. (Optional, https://www.elastic.co/pricing[Platinum or higher subscription] required) Use *Suppress alerts by* to reduce the number of repeated or duplicate alerts created by the rule. Refer to <<alert-suppression>> for more information.
332332
+
333333

334334
////
@@ -361,7 +361,7 @@ NOTE: Refer to the sections below to learn more about <<esql-rule-query-types,{e
361361
TIP: Click the help icon (image:images/esql-help-ref-button.png[Click the ES|QL help icon,20,20]) to open the in-product reference documentation for all {esql} commands and functions.
362362
+
363363

364-
. preview:[] (Optional, https://www.elastic.co/pricing[Platinum or higher subscription] required) Use *Suppress alerts by* to reduce the number of repeated or duplicate alerts created by the rule. Refer to <<alert-suppression>> for more information.
364+
. (Optional, https://www.elastic.co/pricing[Platinum or higher subscription] required) Use *Suppress alerts by* to reduce the number of repeated or duplicate alerts created by the rule. Refer to <<alert-suppression>> for more information.
365365
+
366366

367367
////
Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
---
2+
slug: /serverless/security/alert-suppression
3+
title: Suppress detection alerts
4+
description: Reduce noise from rules that create repeated or duplicate alerts.
5+
tags: [ 'serverless', 'security', 'how-to' ]
6+
status: in review
7+
---
8+
9+
<DocBadge template="technical preview" />
10+
<div id="alert-suppression"></div>
11+
12+
<DocCallOut color="warning" title="Requirements and notice">
13+
- ((ml-cap)) rules have <DocLink slug="/serverless/security/ml-requirements">additional requirements</DocLink> for alert suppression.
14+
15+
- Alert suppression is in technical preview for event correlation rules. The functionality may be changed or removed in a future release. Elastic will work to fix any issues, but features in technical preview are not subject to the support SLA of official GA features.
16+
</DocCallOut>
17+
18+
Alert suppression allows you to reduce the number of repeated or duplicate detection alerts created by these detection rule types:
19+
20+
* <DocLink slug="/serverless/security/rules-create" section="create-custom-rule" text="Custom query" />
21+
* <DocLink slug="/serverless/security/rules-create" section="create-threshold-rule" text="Threshold" />
22+
* <DocLink slug="/serverless/security/rules-create" section="create-indicator-rule" text="Indicator match" />
23+
* <DocLink slug="/serverless/security/rules-create" section="create-eql-rule" text="Event correlation" /> (non-sequence queries only)
24+
* <DocLink slug="/serverless/security/rules-create" section="create-new-terms-rule" text="New terms" />
25+
* <DocLink slug="/serverless/security/rules-create" section="create-esql-rule" text="ES|QL" />
26+
* <DocLink slug="/serverless/security/rules-create" section="create-ml-rule" text="Machine learning" />
27+
28+
Normally, when a rule meets its criteria repeatedly, it creates multiple alerts, one for each time the rule's criteria are met. When alert suppression is configured, duplicate qualifying events are grouped, and only one alert is created for each group. Depending on the rule type, you can configure alert suppression to create alerts each time the rule runs, or once within a specified time window. You can also specify multiple fields to group events by unique combinations of values.
29+
30+
The ((security-app)) displays several indicators in the Alerts table and the alert details flyout when a detection alert is created with alert suppression enabled. You can view the original events associated with suppressed alerts by investigating the alert in Timeline.
31+
32+
<DocCallOut title="Note">
33+
Alert suppression is not available for Elastic prebuilt rules. However, if you want to suppress alerts for a prebuilt rule, you can duplicate it, then configure alert suppression on the duplicated rule.
34+
</DocCallOut>
35+
36+
## Configure alert suppression
37+
38+
You can configure alert suppression when you create or edit a supported rule type. Refer to documentation for creating <DocLink slug="/serverless/security/rules-create" section="create-custom-rule" text="custom query"/>, <DocLink slug="/serverless/security/rules-create" section="create-threshold-rule" text="threshold"/>, <DocLink slug="/serverless/security/rules-create" section="create-indicator-rule" text="indicator match"/>, <DocLink slug="/serverless/security/rules-create" section="create-eql-rule" text="event correlation"/>, <DocLink slug="/serverless/security/rules-create" section="create-new-terms-rule" text="new terms" />, <DocLink slug="/serverless/security/rules-create" section="create-esql-rule" text="ES|QL" />, or <DocLink slug="/serverless/security/rules-create" section="create-ml-rule" text="machine learning" /> rules for detailed instructions.
39+
40+
1. When configuring the rule type (the **Define rule** step for a new rule, or the **Definition** tab for an existing rule), specify how you want to group events for alert suppression:
41+
42+
* **Custom query rule, indicator match, threshold, event correlation (non-sequence queries only), new terms, ((esql)), or ((ml)) rules:** In **Suppress alerts by**, enter 1-3 field names to group events by the fields' values.
43+
* **Threshold rule:** In **Group by**, enter up to 3 field names to group events by the fields' values, or leave the setting empty to group all qualifying events together.
44+
45+
<DocCallOut title="Note">
46+
If you specify a field with multiple values, alerts with that field are handled as follows:
47+
48+
* **Custom query or threshold rules:** Alerts are grouped by each unique value. For example, if you suppress alerts by `destination.ip` of `[127.0.0.1, 127.0.0.2, 127.0.0.3]`, alerts will be suppressed separately for each value of `127.0.0.1`, `127.0.0.2`, and `127.0.0.3`.
49+
* **Indicator match, event correlation (non-sequence queries only), new terms, ((esql)), or ((ml)) rules:** Alerts with the specified field name and identical array values are grouped together. For example, if you suppress alerts by `destination.ip` of `[127.0.0.1, 127.0.0.2, 127.0.0.3]`, alerts with the entire array are grouped and only one alert is created for the group.
50+
51+
</DocCallOut>
52+
53+
1. If available, select how often to create alerts for duplicate events:
54+
55+
<DocCallOut title="NOTE">
56+
Both options are available for custom query, indicator match, event correlation, new terms, ((esql)), and ((ml)) rules. Threshold rules only have the **Per time period** option.
57+
</DocCallOut>
58+
59+
* **Per rule execution**: Create an alert each time the rule runs and an event meets its criteria.
60+
* **Per time period**: Create one alert for all qualifying events that occur within a specified time window, beginning from when an event first meets the rule criteria and creates the alert.
61+
62+
For example, if a rule runs every 5 minutes but you don't need alerts that frequently, you can set the suppression time period to a longer time, such as 1 hour. If the rule meets its criteria, it creates an alert at that time, and for the next hour, it'll suppress any subsequent qualifying events.
63+
64+
<DocImage size="l" url="../images/alert-suppression/-detections-alert-suppression-options.png" alt="Alert suppression options" />
65+
66+
1. Under **If a suppression field is missing**, choose how to handle events with missing suppression fields (events in which one or more of the **Suppress alerts by** fields don't exist):
67+
68+
<DocCallOut title="NOTE">
69+
These options are not available for threshold rules.
70+
</DocCallOut>
71+
72+
* **Suppress and group alerts for events with missing fields**: Create one alert for each group of events with missing fields. Missing fields get a `null` value, which is used to group and suppress alerts.
73+
* **Do not suppress alerts for events with missing fields**: Create a separate alert for each matching event. This basically falls back to normal alert creation for events with missing suppression fields.
74+
75+
1. Configure other rule settings, then save and enable the rule.
76+
77+
<DocCallOut title="Tips">
78+
* Use the **Rule preview** before saving the rule to visualize how alert suppression will affect the alerts created, based on historical data.
79+
* If a rule times out while suppression is turned on, try shortening the rule's <DocLink slug="/serverless/security/rules-create" section="rule-schedule" text="look-back"/> time or turn off suppression to improve the rule's performance.
80+
</DocCallOut>
81+
82+
## Confirm suppressed alerts
83+
84+
The ((security-app)) displays several indicators of whether a detection alert was created with alert suppression enabled, and how many duplicate alerts were suppressed.
85+
86+
<DocCallOut title="Important" color="warning">
87+
After an alert is moved to the `Closed` status, it will no longer suppress new alerts. To prevent interruptions or unexpected changes in suppression, avoid closing alerts before the suppression interval ends.
88+
</DocCallOut>
89+
90+
* **Alerts** table — Icon in the **Rule** column. Hover to display the number of suppressed alerts:
91+
92+
<DocImage size="xl" url="../images/alert-suppression/-detections-suppressed-alerts-table.png" alt="Suppressed alerts icon and tooltip in Alerts table" />
93+
94+
* **Alerts** table — Column for suppressed alerts count. Select **Fields** to open the fields browser, then add `kibana.alert.suppression.docs_count` to the table.
95+
96+
<DocImage size="xl" url="../images/alert-suppression/-detections-suppressed-alerts-table-column.png" alt="Suppressed alerts count field column in Alerts table" />
97+
98+
* Alert details flyout — **Insights** section:
99+
100+
<DocImage size="xl" url="../images/alert-suppression/-detections-suppressed-alerts-details.png" alt="Suppressed alerts Insights section in alert details flyout" />
101+
102+
## Investigate events for suppressed alerts
103+
104+
With alert suppression, detection alerts aren't created for the grouped source events, but you can still retrieve the events for further analysis or investigation. Do one of the following to open Timeline with the original events associated with both the created alert and the suppressed alerts:
105+
106+
* **Alerts** table — Select **Investigate in timeline** in the **Actions** column.
107+
108+
<DocImage size="m" url="../images/alert-suppression/-detections-timeline-button.png" alt="Investigate in timeline button"/>
109+
110+
* Alert details flyout — Select **Take action****Investigate in timeline**.
111+
112+
## Alert suppression limit by rule type
113+
114+
Some rule types have a maximum number of alerts that can be suppressed (custom query rules don't have a suppression limit):
115+
116+
* **Threshold, event correlation (non-sequence queries only, ((esql)), and ((ml)):** The maximum number is the value you choose for the rule's **Max alerts per run** <DocLink slug="/serverless/security/rules-create" section="rule-ui-advanced-params">advanced setting</DocLink>, which is `100` by default.
117+
* **Indicator match and new terms:** The maximum number is five times the value you choose for the the rule's **Max alerts per run** <DocLink slug="/serverless/security/rules-create" section="rule-ui-advanced-params">advanced setting</DocLink>. The default value is `100`, which means the default maximum limit for indicator match rules and new terms rules is `500`.

0 commit comments

Comments
 (0)