CommonSecurityLog
| where DeviceVendor == "Arista Networks" and DeviceProduct == "Awake Security"
| summarize StartTime=min(TimeGenerated), EndTime=max(TimeGenerated), Models=make_set(Activity), ASPMatchURLs=make_set(DeviceCustomString2), SourceIPs=make_set(SourceIP),
DestinationIPs=make_set(DestinationIP), ModelMatchCount=sum(EventCount), MaxSeverity=max(toint(LogSeverity)) by SourceHostName
| where ModelMatchCount > 1000 and MaxSeverity > 2
| extend SeverityName=iff(MaxSeverity == 0, "Informational", iff(MaxSeverity < 5, "Low", iff(MaxSeverity < 8, "Medium", "High")))
alertDetailsOverride:
alertTacticsColumnName:
alertSeverityColumnName: SeverityName
alertDescriptionFormat: |-
The following Awake model(s):
{{Models}}
matched {{ModelMatchCount}} activities, an unexpectedly large number. The destination IPs associated with these matches were:
{{DestinationIPs}}
alertDisplayNameFormat: Awake Security - High Model Match Counts On Device {{SourceHostName}}
relevantTechniques: []
name: Awake Security - High Match Counts By Device
queryFrequency: 1h
version: 1.0.2
incidentConfiguration:
groupingConfiguration:
groupByEntities:
- Host
matchingMethod: Selected
enabled: true
groupByCustomDetails:
- Device
lookbackDuration: 3d
groupByAlertDetails: []
reopenClosedIncident: true
createIncident: true
triggerThreshold: 0
severity: Medium
requiredDataConnectors:
- connectorId: CefAma
dataTypes:
- CommonSecurityLog
tactics: []
OriginalUri: https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/AristaAwakeSecurity/Analytic Rules/HighMatchCountsByDevice.yaml
query: |
CommonSecurityLog
| where DeviceVendor == "Arista Networks" and DeviceProduct == "Awake Security"
| summarize StartTime=min(TimeGenerated), EndTime=max(TimeGenerated), Models=make_set(Activity), ASPMatchURLs=make_set(DeviceCustomString2), SourceIPs=make_set(SourceIP),
DestinationIPs=make_set(DestinationIP), ModelMatchCount=sum(EventCount), MaxSeverity=max(toint(LogSeverity)) by SourceHostName
| where ModelMatchCount > 1000 and MaxSeverity > 2
| extend SeverityName=iff(MaxSeverity == 0, "Informational", iff(MaxSeverity < 5, "Low", iff(MaxSeverity < 8, "Medium", "High")))
kind: Scheduled
entityMappings:
- fieldMappings:
- columnName: SourceHostName
identifier: HostName
entityType: Host
- fieldMappings:
- columnName: SourceIPs
identifier: Address
entityType: IP
queryPeriod: 1h
triggerOperator: gt
customDetails:
Device: SourceHostName
Matches_Max_Severity: MaxSeverity
Matches_Count: ModelMatchCount
Matched_Models: Models
Matches_ASP_URLs: ASPMatchURLs
Matches_Dest_IPs: DestinationIPs
eventGroupingSettings:
aggregationKind: AlertPerResult
id: 90b7ac11-dd6c-4ba1-a99b-737061873859
status: Available
description: This query searches for devices with unexpectedly large number of activity match.