Detection of Dynamic Resolution

Technique Detected:  Dynamic Resolution | T1637

ID: DET0613
Domains: Mobile
Analytics: AN1667, AN1668
Version: 1.0
Created: 21 October 2025
Last Modified: 12 May 2026

Analytics

AN1667

For Android, detect Dynamic Resolution by correlating analyst-visible device/network evidence and management state; use streaming or batched telemetry only where the documented collector is deployed. Correlate API Calls via Application Vetting / Instrumented Dynamic Analysis [Dynamic API/runtime trace: InetAddress.getByName() or DnsResolver called > $DGACandidateThreshold$ times with algorithmically-distinct hostnames in $DGAWindow$ — rapid programmatic resolution attempts]; Network Connection Creation via Android Enterprise Network Logging / Enterprise VPN [DevicePolicyManager.retrieveNetworkLogs(): DnsEvent / ConnectEvent; VPN flow metadata]; Network Traffic Flow via Android Enterprise Network Logging / Enterprise VPN [DevicePolicyManager.retrieveNetworkLogs(): DnsEvent / ConnectEvent; VPN flow metadata]. Alert on a sequence or state change inconsistent with the device/app baseline, approved management policy, or expected user workflow; do not infer unobserved API calls, file/process activity, or payload content from management state alone.

Log Sources
Data Component Name Channel
API Calls (DC0112) mobile:DynamicAnalysis Dynamic API/runtime trace: InetAddress.getByName() or DnsResolver called > $DGACandidateThreshold$ times with algorithmically-distinct hostnames in $DGAWindow$ — rapid programmatic resolution attempts
Network Connection Creation (DC0082) android:EnterpriseNetworkLog DevicePolicyManager.retrieveNetworkLogs(): DnsEvent / ConnectEvent; VPN flow metadata
Network Traffic Flow (DC0078) android:EnterpriseNetworkLog DevicePolicyManager.retrieveNetworkLogs(): DnsEvent / ConnectEvent; VPN flow metadata
Mutable Elements
Field Description
NXDOMAINThreshold Default 20 per device per app within window. Tightening: 10. Derive from per-app DNS baseline.
DGAWindow Default 60s.
DGASuccessWindow Default 30s between last NXDOMAIN and successful resolution.
AppBaselineDomains Per-app known CDN/update domains from 30-day baseline.
DGACandidateThreshold Default 10 distinct hostname queries within window.

AN1668

For iOS, detect Dynamic Resolution by correlating analyst-visible device/network evidence and management state; use streaming or batched telemetry only where the documented collector is deployed. Correlate Application Permission via Application Vetting [Code-signing entitlements and Info.plist privacy usage-description keys]; Network Connection Creation via Apple Network Extension / Enterprise VPN [NEFilterFlow / per-app VPN / secure-web-gateway flow metadata]; Network Traffic Flow via Apple Network Extension / Enterprise VPN [NEFilterFlow / per-app VPN / secure-web-gateway flow metadata]. Alert on a sequence or state change inconsistent with the device/app baseline, approved management policy, or expected user workflow; do not infer unobserved API calls, file/process activity, or payload content from management state alone.

Log Sources
Data Component Name Channel
Application Permission (DC0114) mobile:ApplicationVetting Code-signing entitlements and Info.plist privacy usage-description keys
Network Connection Creation (DC0082) iOS:NetworkExtension NEFilterFlow / per-app VPN / secure-web-gateway flow metadata
Network Traffic Flow (DC0078) iOS:NetworkExtension NEFilterFlow / per-app VPN / secure-web-gateway flow metadata
Mutable Elements
Field Description
MDMApprovedCatalog MDM-managed app list.
NXDOMAINThreshold Default 20 per device within window. Derive from per-device DNS baseline.
DGAWindow Default 60s.
AppBaselineDomains Per-app network destination baseline, 30-day.
DGASuccessWindow Default 30s between last NXDOMAIN and successful resolution.