@@ -33,15 +33,14 @@ query: |
3333 | extend TrafficLightProtocolLevel = tostring(parse_json(AdditionalFields).TLPLevel)
3434 // Filter out indicators without relevant IP address fields
3535 | where TimeGenerated >= ago(ioc_lookBack)
36- | where TimeGenerated >= ago(ioc_lookBack)
3736 // Filtering out rows where the Confidence Score is less than 50 as they would not have an Alert Priority label.
3837 | where Confidence > 50
3938 // Select the IP entity based on availability of different IP fields
4039 | extend TI_ipEntity = iff(isnotempty(NetworkSourceIP), NetworkSourceIP, NetworkSourceIP)
4140 | extend TI_ipEntity = iff(isempty(TI_ipEntity) and isnotempty(NetworkSourceIP), NetworkSourceIP, TI_ipEntity)
4241 | extend Url = iff(ObservableKey == "url:value", ObservableValue, "")
43- // Determine AlertPriority based on ConfidenceScore
44- | extend AlertPriority = case(Confidence > 82, "High",
42+ // Determine Severity based on ConfidenceScore
43+ | extend Severity = case(Confidence > 82, "High",
4544 Confidence > 74, "Medium",
4645 "Low")
4746 // Exclude local addresses using the ipv4_is_private operator and filtering out specific address prefixes
@@ -50,7 +49,7 @@ query: |
5049 | where IsActive and (ValidUntil > now() or isempty(ValidUntil));
5150 // Perform a join between IP indicators and AppServiceHTTPLogs to identify potential malicious activity
5251 IP_Indicators
53- | project-reorder *, IsActive, Tags, TrafficLightProtocolLevel, NetworkSourceIP, Type, TI_ipEntity, AlertPriority
52+ | project-reorder *, IsActive, Tags, TrafficLightProtocolLevel, NetworkSourceIP, Type, TI_ipEntity, Severity
5453 // Use innerunique to keep performance fast and result set low, as we only need one match to indicate potential malicious activity that needs investigation
5554 | join kind=innerunique (
5655 AppServiceHTTPLogs | where TimeGenerated >= ago(dt_lookBack)
@@ -66,7 +65,7 @@ query: |
6665 // Select the desired output fields
6766 | extend Description = tostring(parse_json(Data).description)
6867 | extend ActivityGroupNames = extract(@"ActivityGroup:(\S+)", 1, tostring(parse_json(Data).labels))
69- | project AppService_TimeGenerated, Description, ActivityGroupNames, Id, ValidUntil, Confidence, TI_ipEntity, CsUsername, WebApp = split(_ResourceId, '/')[8], CIp, CsHost, NetworkSourceIP, _ResourceId, Type, Url, AlertPriority
68+ | project AppService_TimeGenerated, Description, ActivityGroupNames, Id, ValidUntil, Confidence, TI_ipEntity, CsUsername, WebApp = split(_ResourceId, '/')[8], CIp, CsHost, NetworkSourceIP, _ResourceId, Type, Url, Severity
7069 // Extract hostname and DNS domain from the CsHost field
7170 | extend HostName = tostring(split(CsHost, '.', 0)[0]), DnsDomain = tostring(strcat_array(array_slice(split(CsHost, '.'), 1, -1), '.'))
7271 // Rename the timestamp field
@@ -95,7 +94,7 @@ entityMappings:
9594 - identifier : ResourceId
9695 columnName : _ResourceId
9796alertDetailsOverride :
98- alertSeverityColumnName : AlertPriority
99- version : 1.5.7
97+ alertSeverityColumnName : Severity
98+ version : 1.5.8
10099kind : Scheduled
101100
0 commit comments