Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,10 @@
{
"name": "NormalizedTriggeringEvents",
"type": "dynamic"
},
{
"name": "Users",
"type": "dynamic"
}
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,21 @@ query: |
| where extracted_function_module in (SenseModules)
| extend AlertName = strcat("SAP ETD - Sensitive Function Module ", extracted_function_module," was executed by user ", extracted_sap_user,
" in a ", tolower(extracted_system_role), " system"), Dummy = " "
| mv-expand Users
| extend
UserAccountName = tostring(Users.UserAccountName),
UserEmail = tostring(Users.EmailAddresses[0])
eventGroupingSettings:
aggregationKind: SingleAlert
entityMappings:
- entityType: Account
fieldMappings:
- identifier: Name
columnName: UserAccountName
- entityType: Mailbox
fieldMappings:
- identifier: MailboxPrimaryAddress
columnName: UserEmail
- entityType: CloudApplication
fieldMappings:
- identifier: AppId
Expand All @@ -68,5 +80,6 @@ alertDetailsOverride:
Source: SAP ETD
customDetails:
SAP_User: extracted_sap_user
SAP_UserEmail: UserEmail
ETD_AlertNumber: AlertId
version: 1.0.0
version: 1.0.1
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,14 @@ tactics:
relevantTechniques: []
query: |
let AuditTimeAgo = 60m;
let minThreshold= 1;
let minScore= 50;
let regex_sid = @"^([A-Z0-9]{3})/";
let regex_client = @"/(\d{3})$";
let SAPNetworks = _GetWatchlist('SAP - Networks');
SAPETDAlerts_CL
| where TimeGenerated > ago(AuditTimeAgo)
| where Threshold >= minThreshold and Score >= minScore
| where PatternName in ("Logon from external with SAP standard users","Access via unallowed IP Address")
| mv-expand NormalizedTriggeringEvents
| extend sapOriginalEvent = tostring(NormalizedTriggeringEvents)
Expand All @@ -40,11 +43,23 @@ query: |
| extend extracted_instance_host = NormalizedTriggeringEvents.NetworkHostnameInitiator
| evaluate ipv4_lookup(SAPNetworks, extracted_user_ip, Network, return_unmatched = true)
| where isempty(Network)
| project TimeGenerated, extracted_user_ip, extracted_sap_user, extracted_sid, extracted_client, extracted_instance_name, extracted_instance_host, AlertId, PatternName, PatternDescription, Status, NormalizedTriggeringEvents
| project TimeGenerated, extracted_user_ip, extracted_sap_user, extracted_sid, extracted_client, extracted_instance_name, extracted_instance_host, AlertId, PatternName, PatternDescription, Status, NormalizedTriggeringEvents, Users
| extend GeoLocation= iff(ipv4_is_private(extracted_user_ip), dynamic({"IsPrivate": true}), geo_info_from_ip_address(extracted_user_ip))
| mv-expand Users
| extend
UserAccountName = tostring(Users.UserAccountName),
UserEmail = tostring(Users.EmailAddresses[0])
eventGroupingSettings:
aggregationKind: AlertPerResult
entityMappings:
- entityType: Account
fieldMappings:
- identifier: Name
columnName: UserAccountName
- entityType: Mailbox
fieldMappings:
- identifier: MailboxPrimaryAddress
columnName: UserEmail
- entityType: CloudApplication
fieldMappings:
- identifier: AppId
Expand All @@ -65,5 +80,6 @@ alertDetailsOverride:
{{PatternDescription}}
customDetails:
SAP_User: extracted_sap_user
SAP_UserEmail: UserEmail
ETD_AlertNumber: AlertId
version: 1.0.3
version: 1.0.4
17 changes: 15 additions & 2 deletions Solutions/SAP ETD Cloud/Analytic Rules/SAPETD-SynchAlerts.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,22 @@ query: |
Host= NormalizedTriggeringEvents.NetworkHostnameInitiator,
Instance= NormalizedTriggeringEvents.NetworkHostnameActor,
User= NormalizedTriggeringEvents.UserAccountActing,
IP= NormalizedTriggeringEvents.NetworkIPAddressInitiator;
IP= NormalizedTriggeringEvents.NetworkIPAddressInitiator
| mv-expand Users
| extend
UserAccountName = tostring(Users.UserAccountName),
UserEmail = tostring(Users.EmailAddresses[0]);
eventGroupingSettings:
aggregationKind: AlertPerResult
entityMappings:
- entityType: Account
fieldMappings:
- identifier: Name
columnName: UserAccountName
- entityType: Mailbox
fieldMappings:
- identifier: MailboxPrimaryAddress
columnName: UserEmail
- entityType: CloudApplication
fieldMappings:
- identifier: Name
Expand All @@ -55,5 +67,6 @@ alertDetailsOverride:
alertDescriptionFormat: '{{PatternDescription}}'
customDetails:
SAP_User: User
SAP_UserEmail: UserEmail
ETD_AlertNumber: AlertId
version: 1.0.3
version: 1.0.4
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,26 @@ query: |
SAPETDInvestigations_CL
| where TimeGenerated > ago(AuditTimeAgo)
| where Severity in (_severity)
| mv-expand Users
| extend
UserAccountName = tostring(Users.UserAccountName),
UserEmail = tostring(Users.EmailAddresses[0])
eventGroupingSettings:
aggregationKind: AlertPerResult
entityMappings:
- entityType: Account
fieldMappings:
- identifier: Name
columnName: UserAccountName
- entityType: Mailbox
fieldMappings:
- identifier: MailboxPrimaryAddress
columnName: UserEmail
alertDetailsOverride:
alertDisplayNameFormat: 'SAP ETD - {{Description}} '
alertDescriptionFormat: 'Description: {{Description}}. Processed by {{Processor}}. Severity: {{Severity}}.'
customDetails:
ETD_InvestNumber: InvestigationId
version: 1.0.0
SAP_UserAccount: UserAccountName
SAP_UserEmail: UserEmail
version: 1.0.1
Original file line number Diff line number Diff line change
Expand Up @@ -55,10 +55,14 @@
{
"name": "NormalizedTriggeringEvents",
"type": "dynamic"
},
{
"name": "Users",
"type": "dynamic"
}
]
},
"Custom-SAPETDInvestigations_CL": {
"Custom-SAPETDInvestigations_CL":{
"columns": [
{
"name": "Version",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
"timeoutInSeconds": 60,
"queryTimeFormat": "yyyy-MM-ddTHH:mm:ssZ",
"queryParameters": {
"$expand": "NormalizedTriggeringEvents",
"$expand": "NormalizedTriggeringEvents,Users",
"$filter": "CreationTimestamp gt {_QueryWindowStartTime} and CreationTimestamp le {_QueryWindowEndTime}"
},
"headers": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,10 @@
{
"name": "NormalizedTriggeringEvents",
"type": "dynamic"
},
{
"name": "Users",
"type": "dynamic"
}
]
}
Expand Down
56 changes: 28 additions & 28 deletions Solutions/SAP ETD Cloud/Data/Solution_SAPETD.json
Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
{
"Name": "SAP ETD Cloud",
"Author": "SAP",
"Logo": "<img src=\"https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/Logos/SAPBTP.svg\" width=\"75px\" height=\"75px\">",
"Description": "The Microsoft Sentinel Solution for SAP ETD integrates SAP Enterprise Threat Detection entities into Microsoft Sentinel, allowing SOC teams to ingest, monitor, and hunt across SAP data. This integration enhances security by enabling faster detection, investigation, and mitigation of risks within SAP environments.",
"WorkbookDescription": [],
"Workbooks": [],
"Analytic Rules": [
"Analytic Rules/SAPETD-SynchAlerts.yaml",
"Analytic Rules/SAPETD-SynchInvestigations.yaml",
"Analytic Rules/SAPETD-LoginFromUnexpectedNetwork.yaml",
"Analytic Rules/SAPETD-ExecutionofSensitiveFunctionModule.yaml"
],
"Playbooks": [],
"PlaybookDescription": [],
"Parsers": [],
"SavedSearches": [],
"Hunting Queries": [],
"Data Connectors": [
"/Data Connectors/SAPETD_PUSH_CCP/SAPETD_connectorDefinition.json"
],
"Watchlists": [],
"WatchlistDescription": [],
"BasePath": "C:\\GitHub\\Azure-Sentinel\\Solutions\\SAP ETD Cloud",
"Version": "3.0.3",
"Metadata": "SolutionMetadata.json",
"TemplateSpec": true,
"Is1PConnector": false
}
"Name": "SAP ETD Cloud",
"Author": "SAP",
"Logo": "<img src=\"https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/Logos/SAPBTP.svg\" width=\"75px\" height=\"75px\">",
"Description": "The Microsoft Sentinel Solution for SAP ETD integrates SAP Enterprise Threat Detection entities into Microsoft Sentinel, allowing SOC teams to ingest, monitor, and hunt across SAP data. This integration enhances security by enabling faster detection, investigation, and mitigation of risks within SAP environments.",
"WorkbookDescription": [],
"Workbooks": [],
"Analytic Rules": [
"Analytic Rules/SAPETD-SynchAlerts.yaml",
"Analytic Rules/SAPETD-SynchInvestigations.yaml",
"Analytic Rules/SAPETD-LoginFromUnexpectedNetwork.yaml",
"Analytic Rules/SAPETD-ExecutionofSensitiveFunctionModule.yaml"
],
"Playbooks": [],
"PlaybookDescription": [],
"Parsers": [],
"SavedSearches": [],
"Hunting Queries": [],
"Data Connectors": [
"/Data Connectors/SAPETD_PUSH_CCP/SAPETD_connectorDefinition.json"
],
"Watchlists": [],
"WatchlistDescription": [],
"BasePath": "C:\\GitHub\\Azure-Sentinel\\Solutions\\SAP ETD Cloud",
"Version": "3.0.4",
"Metadata": "SolutionMetadata.json",
"TemplateSpec": true,
"Is1PConnector": false
}
Binary file added Solutions/SAP ETD Cloud/Package/3.0.4.zip
Binary file not shown.
2 changes: 1 addition & 1 deletion Solutions/SAP ETD Cloud/Package/createUiDefinition.json
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@
"name": "dataconnectors1-text",
"type": "Microsoft.Common.TextBlock",
"options": {
"text": "This Solution installs the data connector for SAP ETD Cloud. You can get SAP ETD Cloud data in your Microsoft Sentinel workspace. After installing the solution, configure and enable this data connector by following guidance in Manage solution view."
"text": "This Solution installs the data connector for SAP Enterprise Threat Detection, cloud edition. You can get SAP Enterprise Threat Detection, cloud edition data in your Microsoft Sentinel workspace. After installing the solution, configure and enable this data connector by following guidance in Manage solution view."
}
},
{
Expand Down
Loading
Loading