CommonSecurityLog
| where DeviceProduct == "IronDefense"
| summarize arg_max(TimeGenerated, *) by DeviceCustomString4, DeviceCustomString2
| extend Category = coalesce(column_ifexists("DeviceEventCategory",""),extract(@'cat=([^;]+)(\;|$)', 1, AdditionalExtensions))
| extend Subcategory = extract(@'subcat=([^;]+)(\;|$)', 1, AdditionalExtensions)
| extend AlertDescription = strcat(Category, ': ', Subcategory)
| extend Status = tostring(DeviceCustomString2)
| extend IronVueUrl = replace(@'\\', @'', tostring(DeviceCustomString3))
relevantTechniques:
entityMappings:
- fieldMappings:
- columnName: DestinationIP
identifier: Address
entityType: IP
- fieldMappings:
- columnName: SourceIP
identifier: Address
entityType: IP
- fieldMappings:
- columnName: DestinationHostName
identifier: FullName
entityType: Host
- fieldMappings:
- columnName: SourceHostName
identifier: FullName
entityType: Host
- fieldMappings:
- columnName: RequestURL
identifier: Url
entityType: URL
version: 1.0.1
triggerThreshold: 0
OriginalUri: https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/IronNet IronDefense/Analytic Rules/IronDefense_Detection_Query.yaml
description: |
'Creates incidents based on behavioral detections from IronDefense.'
customDetails:
AnalystRating: LogSeverity
IronVueUrl: IronVueUrl
AlertCreatedTime: TimeGenerated
IronDefenseAlertId: DeviceCustomString4
AnalystSeverity: DeviceCustomString1
IronDefenseStatus: Status
requiredDataConnectors:
- connectorId: IronNetIronDefense
dataTypes:
- CommonSecurityLog
triggerOperator: gt
alertDetailsOverride:
alertDisplayNameFormat: |
{{Category}}: {{Subcategory}} ({{DeviceCustomString4}})
alertSeverityColumnName: LogSeverity
alertDescriptionFormat: |
IronDefense detected suspicious activity on {{TimeGenerated}} and categorized it as "{{AlertDescription}}". View full details in IronVue: {{IronVueUrl}}
eventGroupingSettings:
aggregationKind: AlertPerResult
id: 3cf46cb9-99d5-42ee-a43c-7bd88ea394a1
queryFrequency: 5m
query: |
CommonSecurityLog
| where DeviceProduct == "IronDefense"
| summarize arg_max(TimeGenerated, *) by DeviceCustomString4, DeviceCustomString2
| extend Category = coalesce(column_ifexists("DeviceEventCategory",""),extract(@'cat=([^;]+)(\;|$)', 1, AdditionalExtensions))
| extend Subcategory = extract(@'subcat=([^;]+)(\;|$)', 1, AdditionalExtensions)
| extend AlertDescription = strcat(Category, ': ', Subcategory)
| extend Status = tostring(DeviceCustomString2)
| extend IronVueUrl = replace(@'\\', @'', tostring(DeviceCustomString3))
severity: Medium
status: Available
queryPeriod: 5m
name: Create Incidents from IronDefense
tactics:
kind: Scheduled