Infoblox - Many NXDOMAIN DNS Responses Detected
| Id | b2f34315-9065-488e-88d0-a171d2b0da8e |
| Rulename | Infoblox - Many NXDOMAIN DNS Responses Detected |
| Description | Detected at least 200 DNS responses for non-existent domains in 1 hour generated by single host. Queries do not need to be the same. Customize query count, scheduling, responses and more. This rule depends on a parser based on a Kusto Function to work as expected called **InfobloxCDC**. |
| Severity | Medium |
| Tactics | Impact |
| Techniques | T1498 T1565 |
| Required data connectors | CefAma |
| Kind | Scheduled |
| Query frequency | 1h |
| Query period | 1h |
| Trigger threshold | 0 |
| Trigger operator | gt |
| Source Uri | https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/Infoblox Cloud Data Connector/Analytic Rules/Infoblox-ManyNXDOMAINDNSResponsesDetected.yaml |
| Version | 1.0.3 |
| Arm template | b2f34315-9065-488e-88d0-a171d2b0da8e.json |
let threshold = 200;
InfobloxCDC
| where DeviceEventClassID == "DNS Response"
| where InfobloxDNSRCode == "NXDOMAIN"
| summarize count() by SourceIP
| where count_ > threshold
| join kind=inner (InfobloxCDC
| where DeviceEventClassID == "DNS Response"
| where InfobloxDNSRCode == "NXDOMAIN"
) on SourceIP
description: |
'Detected at least 200 DNS responses for non-existent domains in 1 hour generated by single host. Queries do not need to be the same. Customize query count, scheduling, responses and more. This rule depends on a parser based on a Kusto Function to work as expected called [**InfobloxCDC**](https://aka.ms/sentinel-InfobloxCloudDataConnector-parser).'
kind: Scheduled
tactics:
- Impact
requiredDataConnectors:
- connectorId: CefAma
dataTypes:
- CommonSecurityLog
incidentConfiguration:
createIncident: true
OriginalUri: https://github.com/Azure/Azure-Sentinel/blob/master/Solutions/Infoblox Cloud Data Connector/Analytic Rules/Infoblox-ManyNXDOMAINDNSResponsesDetected.yaml
severity: Medium
name: Infoblox - Many NXDOMAIN DNS Responses Detected
customDetails:
SourceMACAddress: SourceMACAddress
triggerThreshold: 0
queryPeriod: 1h
query: |
let threshold = 200;
InfobloxCDC
| where DeviceEventClassID == "DNS Response"
| where InfobloxDNSRCode == "NXDOMAIN"
| summarize count() by SourceIP
| where count_ > threshold
| join kind=inner (InfobloxCDC
| where DeviceEventClassID == "DNS Response"
| where InfobloxDNSRCode == "NXDOMAIN"
) on SourceIP
relevantTechniques:
- T1498
- T1565
id: b2f34315-9065-488e-88d0-a171d2b0da8e
queryFrequency: 1h
status: Available
version: 1.0.3
triggerOperator: gt
eventGroupingSettings:
aggregationKind: SingleAlert
entityMappings:
- entityType: IP
fieldMappings:
- columnName: SourceIP
identifier: Address
- entityType: Host
fieldMappings:
- columnName: DeviceName
identifier: HostName
- columnName: InfobloxB1SrcOSVersion
identifier: OSVersion
- columnName: SourceUserName
identifier: FullName