Skip to content

Commit 4fdac89

Browse files
authored
Merge pull request #263037 from batamig/sap-reduce-fp
Sentinel SAP reduce FP
2 parents ec08913 + 416559d commit 4fdac89

File tree

3 files changed

+71
-33
lines changed

3 files changed

+71
-33
lines changed

articles/sentinel/false-positives.md

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
---
22
title: Handle false positives in Microsoft Sentinel
33
description: Learn how to resolve false positives in Microsoft Sentinel by creating automation rules or modifying analytics rules to specify exceptions.
4-
author: yelevin
5-
ms.author: yelevin
4+
author: batamig
5+
ms.author: bagol
66
ms.topic: how-to
7-
ms.date: 01/09/2023
7+
ms.date: 01/15/2024
88
---
99

1010
# Handle false positives in Microsoft Sentinel
@@ -28,7 +28,6 @@ This article describes two methods for avoiding false positives:
2828

2929
The following table describes characteristics of each method:
3030

31-
3231
|Method|Characteristic|
3332
|-|-|
3433
|**Automation rules**|<ul><li>Can apply to several analytics rules.</li><li>Keep an audit trail. Exceptions immediately and automatically close created incidents, recording the reason for the closure and comments.</li><li>Are often generated by analysts.</li><li>Allow applying exceptions for a limited time. For example, maintenance work might trigger false positives that outside the maintenance timeframe would be true incidents.</li></ul>|
@@ -141,6 +140,19 @@ You can also do subnet filtering by using a watchlist. For example, in the prece
141140
let subnets = _GetWatchlist('subnetallowlist');
142141
```
143142

143+
## Example: Manage exceptions for the Microsoft Sentinel solution for SAP® applications
144+
145+
The [Microsoft Sentinel solution for SAP® applications](sap/solution-overview.md) provides functions you can use to exclude users or systems from triggering alerts.
146+
147+
- **Exclude users**. Use the [**SAPUsersGetVIP**](sap/sap-solution-log-reference.md#sapusersgetvip) function to:
148+
149+
- Call tags for users you want to exclude from triggering alerts. Tag users in the *SAP_User_Config* watchlist, using asterisks (*) as wildcards to tag all users with a specified naming syntax.
150+
- List specific SAP roles and/or profiles you want to exclude from triggering alerts.
151+
152+
- **Exclude systems**. Use functions that support the *SelectedSystemRoles* parameter to determine that only specific types of systems trigger alerts, including only *Production* systems, only *UAT* systems, or both.
153+
154+
For more information, see [Microsoft Sentinel solution for SAP® applications data reference](sap/sap-solution-log-reference.md).
155+
144156
## Next steps
145157

146158
For more information, see:

articles/sentinel/sap/sap-solution-log-reference.md

Lines changed: 42 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
---
22
title: Microsoft Sentinel solution for SAP® applications - data reference
33
description: Learn about the SAP logs, tables, and functions available from the Microsoft Sentinel solution for SAP® applications.
4-
author: yelevin
5-
ms.author: yelevin
4+
author: batamig
5+
ms.author: bagol
66
ms.topic: reference
77
ms.custom: mvc, ignite-fall-2021
8-
ms.date: 05/24/2023
8+
ms.date: 01/15/2024
99
---
1010

1111
# Microsoft Sentinel solution for SAP® applications data reference
@@ -291,54 +291,67 @@ SAPAuditLogAnomalies(LearningTime = 14d, DetectingTime=0h, SelectedSystems= dyna
291291
See [Built-in SAP analytics rules for monitoring the SAP audit log](sap-solution-security-content.md#monitoring-the-sap-audit-log) for more information.
292292

293293
### SAPAuditLogConfigRecommend
294+
294295
The **SAPAuditLogConfigRecommend** is a helper function designed to offer recommendations for the configuration of the [SAP - Dynamic Anomaly based Audit Log Monitor Alerts (PREVIEW)](sap-solution-security-content.md#sap---dynamic-anomaly-based-audit-log-monitor-alerts-preview) analytics rule. Learn how to [configure the rules](configure-audit-log-rules.md).
295296

296297
### SAPUsersGetVIP
297298

298-
The Sentinel for SAP solution uses a concept of central user tagging, designed to allow for lower false positive rate with minimal effort on the customer end:
299+
The [Microsoft Sentinel solution for SAP® applications](solution-overview.md) uses a concept of central user tagging and explicit exclusions, designed to help you lower false positives with minimal effort. Use the *SAPUsersGetVIP* function to exclude users from triggering alerts by specifying SAP user roles, SAP user functions, or tags that represent those users.
300+
301+
Tags specified as input for the *SAPUsersGetVIP* function exclude all users with a tag listed in the *SAP_User_Config* watchlist. The same functionality is extended to work with wildcards, allowing you to assign a single tag to a group of users with the same naming syntax.
302+
303+
1. Tag users in the *SAP_User_Config* watchlist as follows:
304+
305+
- Add multiple tags to each user in the *SAP_User_Config* watchlist, as needed to cover various scenarios. Each alert rule has its own relevant tags, if any, and you can add custom tags as needed.
299306

300-
- Users can be tagged using the "SAP User Config" watchlist (for example DDIC is assigned with “RunObsoleteProgOK”). Multiple users can have multiple tags.
301-
- An alert rule sends the relevant tags to the **SAPUsersGetVIP** function asking for a list of users to be excluded. The alert rule “SAP - Execution of an Obsolete or an Insecure Program” can ask for users bearing the tag “RunObsoleteProgOK”.
307+
- Use an asterisk (*) as a wildcard to include users with a specific naming syntax template.
302308

303-
Here is a KQL query demonstrating the use case described below:
309+
1. Add the **SAPUsersGetVIP** function in your analytics rules to request the lists of users you've defined to be excluded from alerts. In the function call, add an array with the tags, SAP roles, and SAP profiles that you'd like to exclude.
310+
311+
For example, use the following KQL query in your analytics rule to exclude any users configured with the *RunObsoleteProgOK* tag in the *SAP_User_Config* watchlist, or any users with the sample *SAP_BASIS_ADMIN_ROLE* role or the sample *SAP_ADMIN_PROFILE* profile.
312+
313+
When copying this sample function call, replace *SAP_BASIS_ADMIN_ROLE* role and *SAP_ADMIN_PROFILE* profile with your own SAP roles or profiles as needed.
304314

305315
```kusto
306316
// Execution of Obsolete/Insecure Program
307317
let ObsoletePrograms = _GetWatchlist("SAP - Obsolete Programs");
308318
// here you can exclude system users which are OK to run obsolete/ sensitive programs
309319
// by adding those users in the SAP_User_Config watchlist with a tag of 'RunObsoleteProgOK'
310-
let excludeUsersTags= dynamic(['RunObsoleteProgOK']);
311-
let excludedUsers= SAPUsersGetVIP(SearchForTags= dynamic(["RunObsoleteProgOK"]))| summarize by User2Exclude=SAPUser;
320+
// can also specify SAP roles or SAP profiles that group the users you would like to exclude
321+
let excludeUsersTagsRolesProfiles= dynamic(["RunObsoleteProgOK","SAP_BASIS_ADMIN_ROLE", "SAP_ADMIN_PROFILE"]);
322+
let excludedUsers= SAPUsersGetVIP(SearchForTags= excludeUsersTagsRolesProfiles)| summarize by User2Exclude=SAPUser;
312323
// Query logic
313-
SAPAuditLog
324+
SAPAuditLog
314325
| where MessageID == 'AUW'
315326
| where ABAPProgramName in (ObsoletePrograms) // The program is obsolete
316327
| join kind=leftantisemi excludedUsers on $left.User == $right.User2Exclude
317328
```
318329

319-
This functionality is heavily used in the Deterministic and Anomalous Audit Log Monitor Alerts, 'where tags can be associated with SAP audit log message ID, and can also be easily extended to custom alert rules.
330+
The **SAPUsersGetVIP** function is commonly used in *Deterministic and Anomalous Audit Log Monitor* alerts. Associate a tag with an SAP audit log message ID, or extend the rule template to a custom rule that matches your organization's needs.
331+
332+
> [!TIP]
333+
> We recommend that contacting your SAP system admin to understand which SAP users, roles, and profiles to include in your *SAP_User_Config* watchlist.
334+
>
335+
320336
**Parameters:**
321337

322-
- SearchForTags
323-
- Optional
324-
- Default value: dynamic('All Tags')
325-
- When SearchForTags equals 'All Tags', all users are returned along with their tags, else, only users bearing the tags specified in SearchForTags are returned. TagsIntersect will show which tags were found, and IntersectionSize will hold the count of those.
326-
- SpecialFocusTags
327-
- Optional
328-
- Default value: "Do not return any in-focus users"
329-
- The function returns all users bearing the tags specified in SpecialFocusTags, and marked those with specialFocusTagged = true.
338+
|Name |Description |Default value |
339+
|---------|---------|---------|
340+
|**SearchForTags** (Optional) | When `SearchForTags` equals `All Tags`, all users are returned along with their tags. <br><br>Otherwise, only users bearing the tags, SAP roles, or SAP profiles specified in `SearchForTags` are returned. `TagsIntersect` shows the tags that are found, and `IntersectionSize` holds the number of tags that are found. | `dynamic('All Tags')` |
341+
|**SpecialFocusTags** (Optional) | Returns all users bearing the tags specified in `SpecialFocusTags`, and marked those with `specialFocusTagged = true`. | `Do not return any in-focus users` |
342+
330343

331344
| Source | Field | Description | Notes
332345
| ------------- | ------------- | ------------- | -------------
333-
| The "SAP User Config" watchlist | SearchKey | Search Key |
334-
| The "SAP User Config" watchlist | SAPUser | The SAP User | OSS, DDIC
335-
| The "SAP User Config" watchlist | Tags | string of tags assigned to user | RunObsoleteProgOK
336-
| The "SAP User Config" watchlist | User's Microsoft Entra Object ID | Microsoft Entra Object ID |
337-
| The "SAP User Config" watchlist | User Identifier | AD User Identifier |
338-
| The "SAP User Config" watchlist | User on-premises Sid | |
339-
| The "SAP User Config" watchlist | User Principal Name | |
340-
| The "SAP User Config" watchlist | TagsList | A list of tags assigned to user | ChangeUserMasterDataOK;RunObsoleteProgOK
341-
| Logic | TagsIntersect | A set of tags that matched SearchForTags | ["ChangeUserMasterDataOK","RunObsoleteProgOK"]
346+
| The *SAP_User_Config* watchlist | SearchKey | Search Key |
347+
| The *SAP_User_Config* watchlist | SAPUser | The SAP User | OSS, DDIC
348+
| The *SAP_User_Config* watchlist | Tags | String of tags assigned to user | RunObsoleteProgOK |
349+
| The *SAP_User_Config* watchlist | User's Microsoft Entra Object ID | Microsoft Entra Object ID |
350+
| The *SAP_User_Config* watchlist | User Identifier | AD User Identifier |
351+
| The *SAP_User_Config* watchlist | User on-premises Sid | |
352+
| The *SAP_User_Config* watchlist | User Principal Name | |
353+
| The *SAP_User_Config* watchlist | TagsList | A list of tags assigned to user | ChangeUserMasterDataOK;RunObsoleteProgOK |
354+
| Logic | TagsIntersect | A set of tags that matched SearchForTags | ["ChangeUserMasterDataOK","RunObsoleteProgOK"] |
342355
| Logic | SpecialFocusTagged | Special focus indication | True, False
343356
| Logic | IntersectionSize | The number of intersected Tags |
344357

@@ -366,6 +379,7 @@ SelectedSystemRoles:dynamic = dynamic(["All System Roles"]) SelectedSystems:dyna
366379
- Accepts a single user only
367380

368381
#### Additional notes
382+
369383
For performance considerations, only a few days of audit activity are considered.
370384
For a full history of user activity, run a custom KQL query against the SAPAuditLog function.
371385

articles/sentinel/whats-new.md

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: This article describes new features in Microsoft Sentinel from the
44
author: yelevin
55
ms.author: yelevin
66
ms.topic: conceptual
7-
ms.date: 10/25/2023
7+
ms.date: 01/11/2024
88
---
99

1010
# What's new in Microsoft Sentinel
@@ -21,6 +21,18 @@ The listed features were released in the last three months. For information abou
2121
2222
[!INCLUDE [reference-to-feature-availability](includes/reference-to-feature-availability.md)]
2323

24+
## January 2024
25+
26+
### Reduce false positives for SAP systems with analytics rules
27+
28+
Use analytics rules together with the [Microsoft Sentinel solution for SAP® applications](sap/solution-overview.md) to lower the number of false positives triggered from your SAP® systems. The Microsoft Sentinel solution for SAP® applications now includes the following enhancements:
29+
30+
- The [**SAPUsersGetVIP**](sap/sap-solution-log-reference.md#sapusersgetvip) function now supports excluding users according to their SAP-given roles or profile.
31+
32+
- The **SAP_User_Config** watchlist now supports using wildcards in the **SAPUser** field to exclude all users with a specific syntax.
33+
34+
For more information, see [Microsoft Sentinel solution for SAP® applications data reference](sap/sap-solution-log-reference.md) and [Handle false positives in Microsoft Sentinel](false-positives.md).
35+
2436
## November 2023
2537

2638
- [Take advantage of Microsoft Defender for Cloud integration with Microsoft Defender XDR (Preview)](#take-advantage-of-microsoft-defender-for-cloud-integration-with-microsoft-defender-xdr-preview)

0 commit comments

Comments
 (0)