Skip to content

Commit 155382f

Browse files
authored
Merge pull request #270420 from yelevin/yelevin/new-automation-operator
New automation operator
2 parents a87b67d + 441fb5d commit 155382f

11 files changed

+91
-35
lines changed

articles/sentinel/automate-incident-handling-with-automation-rules.md

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
---
22
title: Automate threat response in Microsoft Sentinel with automation rules | Microsoft Docs
33
description: This article explains what Microsoft Sentinel automation rules are, and how to use them to implement your Security Orchestration, Automation and Response (SOAR) operations, increasing your SOC's effectiveness and saving you time and resources.
4-
ms.topic: conceptual
54
author: batamig
65
ms.author: bagol
7-
ms.date: 03/14/2024
6+
ms.topic: conceptual
7+
ms.date: 03/27/2024
88
appliesto:
99
- Microsoft Sentinel in the Azure portal
1010
- Microsoft Sentinel in the Microsoft Defender portal
@@ -58,9 +58,9 @@ The following table shows the different possible scenarios that will cause an au
5858

5959
| Trigger type | Events that cause the rule to run |
6060
| --------- | ------------ |
61-
| **When incident is created** | - A new incident is created by an analytics rule.<br>- An incident is ingested from Microsoft Defender XDR.<br>- A new incident is created manually. |
62-
| **When incident is updated**<br> | - An incident's status is changed (closed/reopened/triaged).<br>- An incident's owner is assigned or changed.<br>- An incident's severity is raised or lowered.<br>- Alerts are added to an incident.<br>- Comments, tags, or tactics are added to an incident. |
63-
| **When alert is created**<br> | - An alert is created by a scheduled analytics rule.
61+
| **When incident is created** | <li>A new incident is created by an analytics rule.<li>An incident is ingested from Microsoft Defender XDR.<li>A new incident is created manually. |
62+
| **When incident is updated** | <li>An incident's status is changed (closed/reopened/triaged).<li>An incident's owner is assigned or changed.<li>An incident's severity is raised or lowered.<li>Alerts are added to an incident.<li>Comments, tags, or tactics are added to an incident. |
63+
| **When alert is created** | <li>An alert is created by an analytics rule. |
6464

6565
#### Incident-based or alert-based automation?
6666

@@ -81,7 +81,9 @@ The main reason to use **alert-triggered automation** is for responding to alert
8181
- A playbook can be triggered by an alert and send the alert to an external ticketing system for incident creation and management, creating a new ticket for each alert.
8282

8383
> [!NOTE]
84-
> Alert-triggered automation is available only for [alerts](detect-threats-built-in.md) created by **Scheduled** analytics rules. Alerts created by **Microsoft Security** analytics rules are not supported.
84+
> - Alert-triggered automation is available only for [alerts](detect-threats-built-in.md) created by **Scheduled** analytics rules. Alerts created by **Microsoft Security** analytics rules are not supported.
85+
>
86+
> - Alert-triggered automation is not currently available in the unified security operations platform in the Microsoft Defender portal.
8587
8688
### Conditions
8789

@@ -93,7 +95,7 @@ When an automation rule is triggered, it checks the triggering incident or alert
9395

9496
For rules defined using the trigger **When an incident is created**, you can define conditions that check the **current state** of the values of a given list of incident properties, using one or more of the following operators:
9597

96-
An incident property's value
98+
An incident property's value
9799
- **equals** or **does not equal** the value defined in the condition.
98100
- **contains** or **does not contain** the value defined in the condition.
99101
- **starts with** or **does not start with** the value defined in the condition.
@@ -137,14 +139,27 @@ An incident property's value was
137139
- **changed to** the value defined in the condition.
138140
- **added** to (this applies to properties with a list of values).
139141

140-
An automation rule, based on the update trigger, can run on an incident that was updated by another automation rule, based on the incident creation trigger, that ran on the incident.
142+
#### *Tag* property: individual vs. collection
141143

142-
Also, if an incident is updated by an automation rule that ran on the incident's creation, the incident can be evaluated by *both* a subsequent *incident-creation* automation rule *and* an *incident-update* automation rule, both of which will run if the incident satisfies the rules' conditions.
144+
The incident property **Tag** is a collection of individual items&mdash;a single incident can have multiple tags applied to it. You can define conditions that check **each tag in the collection individually**, and conditions that check **the collection of tags as a unit**.
143145

144-
If an incident triggers both create-trigger and update-trigger automation rules, the create-trigger rules will run first, according to their **[Order](#order)** numbers, and then the update-trigger rules will run, according to *their* **Order** numbers.
146+
- **Any individual tag** operators check the condition against every tag in the collection. The evaluation is *true* when *at least one tag* satisfies the condition.
147+
- **Collection of all tags** operators check the condition against the collection of tags as a single unit. The evaluation is *true* only if *the collection as a whole* satisfies the condition.
145148

146-
> [!NOTE]
147-
> After onboarding to the unified security operations platform, if multiple changes are made to the same incident in a five to ten minute period, a single update is sent to Microsoft Sentinel, with only the most recent change.
149+
This distinction matters when your condition is a negative (does not contain), and some tags in the collection satisfy the condition and others don't.
150+
151+
Let's look at an example where your condition is, **Tag does not contain "2024"**, and you have two incidents, each with two tags:
152+
153+
| \ Incidents &#9654;<br>Condition &#9660; \ | Incident 1<br>Tag 1: 2024<br>Tag 2: 2023 | Incident 2<br>Tag 1: 2023<br>Tag 2: 2022 |
154+
| -------------------------------------- | :------------------------: | :------------------------: |
155+
| **Any individual tag<br>does not contain "2024"** | ***TRUE*** | TRUE |
156+
| **Collection of all tags<br>does not contain "2024"** | ***FALSE*** | TRUE |
157+
158+
In this example, in *Incident 1*:
159+
- If the condition checks each tag individually, then since there's at least one tag that *satisfies the condition* (that *doesn't* contain "2024"), the overall condition is **true**.
160+
- If the condition checks all the tags in the incident as a single unit, then since there's at least one tag that *doesn't satisfy the condition* (that *does* contain "2024"), the overall condition is **false**.
161+
162+
In *Incident 2*, the outcome will be the same, regardless of which type of condition is defined.
148163

149164
#### Alert create trigger
150165

@@ -196,6 +211,9 @@ Rules based on the update trigger have their own separate order queue. If such r
196211
- For rules of different *incident trigger* types, all applicable rules with the *incident creation* trigger type will run first (according to their order numbers), and only then the rules with the *incident update* trigger type (according to *their* order numbers).
197212
- Rules always run sequentially, never in parallel.
198213

214+
> [!NOTE]
215+
> After onboarding to the unified security operations platform, if multiple changes are made to the same incident in a five to ten minute period, a single update is sent to Microsoft Sentinel, with only the most recent change.
216+
199217
## Common use cases and scenarios
200218

201219
### Incident tasks

articles/sentinel/create-manage-use-automation-rules.md

Lines changed: 61 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: This article explains how to create and use automation rules in Mic
44
ms.topic: how-to
55
author: batamig
66
ms.author: bagol
7-
ms.date: 03/14/2024
7+
ms.date: 04/03/2024
88
appliesto:
99
- Microsoft Sentinel in the Azure portal
1010
- Microsoft Sentinel in the Microsoft Defender portal
@@ -34,7 +34,7 @@ The first step in designing and defining your automation rule is figuring out wh
3434
You also want to determine your use case. What are you trying to accomplish with this automation? Consider the following options:
3535

3636
- Create tasks for your analysts to follow in triaging, investigating, and remediating incidents.
37-
- Suppress noisy incidents. (Alternately use other methods to [handle false positives in Microsoft Sentinel](false-positives.md).)
37+
- Suppress noisy incidents. (Alternatively, use other methods to [handle false positives in Microsoft Sentinel](false-positives.md).)
3838
- Triage new incidents by changing their status from New to Active and assigning an owner.
3939
- Tag incidents to classify them.
4040
- Escalate an incident by assigning a new owner.
@@ -52,9 +52,9 @@ The following table shows the different possible scenarios that will cause an au
5252

5353
| Trigger type | Events that cause the rule to run |
5454
| --------- | ------------ |
55-
| **When incident is created** | - A new incident is created by an analytics rule.<br>- An incident is ingested from Microsoft Defender XDR.<br>- A new incident is created manually. |
56-
| **When incident is updated**<br> | - An incident's status is changed (closed/reopened/triaged).<br>- An incident's owner is assigned or changed.<br>- An incident's severity is raised or lowered.<br>- Alerts are added to an incident.<br>- Comments, tags, or tactics are added to an incident. |
57-
| **When alert is created**<br> | - An alert is created by a scheduled analytics rule.
55+
| **When incident is created** | <li>A new incident is created by an analytics rule.<li>An incident is ingested from Microsoft Defender XDR.<li>A new incident is created manually. |
56+
| **When incident is updated**<br> | <li>An incident's status is changed (closed/reopened/triaged).<li>An incident's owner is assigned or changed.<li>An incident's severity is raised or lowered.<li>Alerts are added to an incident.<li>Comments, tags, or tactics are added to an incident. |
57+
| **When alert is created**<br> | <li>An alert is created by an analytics rule. |
5858

5959
## Create your automation rule
6060

@@ -143,28 +143,66 @@ Use the options in the **Conditions** area to define conditions for your automat
143143
1. Select an operator from the next drop-down box to the right.
144144
:::image type="content" source="media/create-manage-use-automation-rules/select-operator.png" alt-text="Screenshot of selecting a condition operator for automation rules.":::
145145

146-
The list of operators you can choose from varies according to the selected trigger and property.
146+
The list of operators you can choose from varies according to the selected trigger and property.
147147

148-
#### Conditions available with the create trigger
148+
#### Conditions available with the create trigger
149149

150-
| Property | Operator set |
151-
| -------- | -------- |
152-
| - Title<br>- Description<br>- Tag<br>- All listed entity properties | - Equals/Does not equal<br>- Contains/Does not contain<br>- Starts with/Does not start with<br>-Ends with/Does not end with |
153-
| - Severity<br>- Status<br>- Custom details key (Preview) | -Equals/Does not equal |
154-
| - Tactics<br>- Alert product names<br>- Custom details value (Preview) <br>- Analytic rule name| - Contains/Does not contain |
150+
| Property | Operator set |
151+
| -------- | -------- |
152+
| - **Title**<br>- **Description**<br>- All listed **entity properties** | - Equals/Does not equal<br>- Contains/Does not contain<br>- Starts with/Does not start with<br>- Ends with/Does not end with |
153+
| - **Tag** (See [individual vs. collection](automate-incident-handling-with-automation-rules.md#tag-property-individual-vs-collection)) | **Any individual tag:**<br>- Equals/Does not equal<br>- Contains/Does not contain<br>- Starts with/Does not start with<br>- Ends with/Does not end with<br><br>**Collection of all tags:**<br>- Contains/Does not contain |
154+
| - **Severity**<br>- **Status**<br>- **Custom details key** | - Equals/Does not equal |
155+
| - **Tactics**<br>- **Alert product names**<br>- **Custom details value**<br>- **Analytic rule name** | - Contains/Does not contain |
155156

156-
#### Conditions available with the update trigger
157+
#### Conditions available with the update trigger
157158

158-
| Property | Operator set |
159-
| -------- | -------- |
160-
| - Title<br>- Description<br>- Tag<br>- All listed entity properties | - Equals/Does not equal<br>- Contains/Does not contain<br>- Starts with/Does not start with<br>-Ends with/Does not end with |
161-
| - Tag (in addition to above)<br>- Alerts<br>- Comments | - Added |
162-
| - Severity<br>- Status | - Equals/Does not equal<br>- Changed<br>- Changed from<br>-Changed to |
163-
| - Owner | - Changed |
164-
| - Updated by<br>- Custom details key (Preview) | - Equals/Does not equal |
165-
| - Tactics | - Contains/Does not contain<br>- Added |
166-
| - Alert product names<br>- Custom details value (Preview) <br>- Analytic rule name| - Contains/Does not contain |
159+
| Property | Operator set |
160+
| -------- | -------- |
161+
| - **Title**<br>- **Description**<br>- All listed **entity properties** | - Equals/Does not equal<br>- Contains/Does not contain<br>- Starts with/Does not start with<br>- Ends with/Does not end with |
162+
| - **Tag** (See [individual vs. collection](automate-incident-handling-with-automation-rules.md#tag-property-individual-vs-collection)) | **Any individual tag:**<br>- Equals/Does not equal<br>- Contains/Does not contain<br>- Starts with/Does not start with<br>- Ends with/Does not end with<br><br>**Collection of all tags:**<br>- Contains/Does not contain |
163+
| - **Tag** (in addition to above)<br>- **Alerts**<br>- **Comments** | - Added |
164+
| - **Severity**<br>- **Status** | - Equals/Does not equal<br>- Changed<br>- Changed from<br>- Changed to |
165+
| - **Owner** | - Changed |
166+
| - **Updated by**<br>- **Custom details key** | - Equals/Does not equal |
167+
| - **Tactics** | - Contains/Does not contain<br>- Added |
168+
| - **Alert product names**<br>- **Custom details value**<br>- **Analytic rule name** | - Contains/Does not contain |
167169

170+
1. Enter a value in the field on the right. Depending on the property you chose, this might be either a text box or a drop-down in which you select from a closed list of values. You might also be able to add several values by selecting the dice icon to the right of the text box.
171+
172+
:::image type="content" source="media/create-manage-use-automation-rules/add-values-to-condition.png" alt-text="Screenshot of adding values to your condition in automation rules.":::
173+
174+
Again, for setting complex **Or** conditions with different fields, see [Add advanced conditions to automation rules](add-advanced-conditions-to-automation-rules.md).
175+
176+
#### Conditions based on tags
177+
178+
You can create two kinds of conditions based on tags:
179+
180+
- Conditions with **Any individual tag** operators evaluate the specified value against every tag in the collection. The evaluation is *true* when *at least one tag* satisfies the condition.
181+
- Conditions with **Collection of all tags** operators evaluate the specified value against the collection of tags as a single unit. The evaluation is *true* only if *the collection as a whole* satisfies the condition.
182+
183+
To add one of these conditions based on an incident's tags, take the following steps:
184+
185+
1. Create a new automation rule as described above.
186+
187+
1. Add a condition or a condition group.
188+
189+
1. Select **Tag** from the properties drop-down list.
190+
191+
1. Select the operators drop-down list to reveal the available operators to choose from.
192+
193+
##### [Onboarded workspaces](#tab/onboarded)
194+
195+
:::image type="content" source="media/create-manage-use-automation-rules/tag-create-condition-defender.png" alt-text="Screenshot of list of operators for tag condition in create trigger rule--for onboarded workspaces." lightbox="media/create-manage-use-automation-rules/tag-create-condition-defender.png":::
196+
197+
##### [Workspaces not onboarded](#tab/not-onboarded)
198+
199+
:::image type="content" source="media/create-manage-use-automation-rules/tag-create-condition-azure.png" alt-text="Screenshot of list of operators for tag condition in create trigger rule--for non-onboarded workspaces." lightbox="media/create-manage-use-automation-rules/tag-create-condition-azure.png":::
200+
201+
---
202+
203+
See how the operators are divided in two categories as described before. Choose your operator carefully based on how you want the tags to be evaluated.
204+
205+
For more information, see [*Tag* property: individual vs. collection](automate-incident-handling-with-automation-rules.md#tag-property-individual-vs-collection).
168206

169207
#### Conditions based on custom details
170208

@@ -182,7 +220,7 @@ You can set the value of a [custom detail surfaced in an incident](surface-custo
182220

183221
:::image type="content" source="media/create-manage-use-automation-rules/custom-detail-key-condition.png" alt-text="Screenshot of adding a custom detail key as a condition.":::
184222

185-
1. You've now chosen the field you want to evaluate for this condition. Now you have to specify the value appearing in that field that will make this condition evaluate to *true*.
223+
1. You chose the field you want to evaluate for this condition. Now specify the value appearing in that field that makes this condition evaluate to *true*.
186224
Select **+ Add item condition**.
187225

188226
:::image type="content" source="media/create-manage-use-automation-rules/add-item-condition.png" alt-text="Screenshot of selecting add item condition for automation rules.":::
-1.16 KB
Loading
1016 Bytes
Loading
-1.97 KB
Loading
-392 Bytes
Loading
-25.6 KB
Loading
31.4 KB
Loading
27.8 KB
Loading
33.7 KB
Loading

0 commit comments

Comments
 (0)