let minThreshold= 1;
let minScore= 50;
let lookBack= 7d;
let regex_sid = @"^([A-Z0-9]{3})/";
let regex_client = @'\/(.{3})$';
SAPETDAlerts_CL
| mv-expand NormalizedTriggeringEvents
| summarize arg_max(TimeGenerated, *) by AlertId
| where Threshold >= minThreshold and Score >= minScore
| extend
SystemId= extract(regex_sid, 1, tostring(NormalizedTriggeringEvents.SystemIdActor)),
ClienId= extract(regex_client, 1, tostring(NormalizedTriggeringEvents.SystemIdActor)),
Host= NormalizedTriggeringEvents.NetworkHostnameInitiator,
Instance= NormalizedTriggeringEvents.NetworkHostnameActor,
User= NormalizedTriggeringEvents.UserAccountActing,
IP= NormalizedTriggeringEvents.NetworkIPAddressInitiator
| mv-expand Users
| extend
UserAccountName = tostring(Users.UserAccountName),
UserEmail = tostring(Users.EmailAddresses[0]);
version: 1.0.4
id: 7a830484-e349-4527-85f6-7850c468c238
kind: Scheduled
requiredDataConnectors:
- connectorId: SAPETDAlerts
dataTypes:
- SAPETDAlerts_CL
alertDetailsOverride:
alertDescriptionFormat: '{{PatternDescription}}'
alertDisplayNameFormat: 'SAP ETD - {{PatternName}} '
triggerOperator: gt
entityMappings:
- fieldMappings:
- columnName: UserAccountName
identifier: Name
entityType: Account
- fieldMappings:
- columnName: UserEmail
identifier: MailboxPrimaryAddress
entityType: Mailbox
- fieldMappings:
- columnName: SystemId
identifier: Name
- columnName: ClienId
identifier: AppId
- columnName: Instance
identifier: InstanceName
entityType: CloudApplication
- fieldMappings:
- columnName: Host
identifier: FullName
entityType: Host
- fieldMappings:
- columnName: IP
identifier: Address
entityType: IP
name: SAP ETD - Synch alerts
queryFrequency: 1h
triggerThreshold: 0
customDetails:
ETD_AlertNumber: AlertId
SAP_UserEmail: UserEmail
SAP_User: User
description: Synch alerts coming in from SAP Enterprise Threat Detection into Microsoft Sentinel (one way)
status: Available
OriginalUri: https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/SAP ETD Cloud/Analytic Rules/SAPETD-SynchAlerts.yaml
relevantTechniques: []
queryPeriod: 2d
severity: Medium
tactics: []
query: |
let minThreshold= 1;
let minScore= 50;
let lookBack= 7d;
let regex_sid = @"^([A-Z0-9]{3})/";
let regex_client = @'\/(.{3})$';
SAPETDAlerts_CL
| mv-expand NormalizedTriggeringEvents
| summarize arg_max(TimeGenerated, *) by AlertId
| where Threshold >= minThreshold and Score >= minScore
| extend
SystemId= extract(regex_sid, 1, tostring(NormalizedTriggeringEvents.SystemIdActor)),
ClienId= extract(regex_client, 1, tostring(NormalizedTriggeringEvents.SystemIdActor)),
Host= NormalizedTriggeringEvents.NetworkHostnameInitiator,
Instance= NormalizedTriggeringEvents.NetworkHostnameActor,
User= NormalizedTriggeringEvents.UserAccountActing,
IP= NormalizedTriggeringEvents.NetworkIPAddressInitiator
| mv-expand Users
| extend
UserAccountName = tostring(Users.UserAccountName),
UserEmail = tostring(Users.EmailAddresses[0]);
eventGroupingSettings:
aggregationKind: AlertPerResult