Detection of Bidirectional Communication

ID: DET0700
Domains: Mobile
Analytics: AN1816, AN1817
Version: 1.0
Created: 21 October 2025
Last Modified: 12 May 2026

Analytics

AN1816

For Android, detect Bidirectional Communication 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 Android Enterprise DPC / Application Vetting [DevicePolicyManager.getPermissionGrantState(); PackageManager manifest/requested-permission review]; Application State via Android Enterprise / EMM [Managed package inventory/status and package metadata]; File Creation via Application Vetting / Forensic Acquisition [Dynamic filesystem trace or acquired app-container/filesystem artifacts: Local file write between inbound retrieval]. 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) android:DevicePolicyManager DevicePolicyManager.getPermissionGrantState(); PackageManager manifest/requested-permission review
Application State (DC0123) android:EMM Managed package inventory/status and package metadata
File Creation (DC0039) mobile:ForensicArtifacts Dynamic filesystem trace or acquired app-container/filesystem artifacts: Local file write between inbound retrieval
Network Traffic Content (DC0085) webproxy:applog DNS/HTTP(S) inspection or proxy transaction metadata where enterprise decryption/inspection is deployed
OS API Execution (DC0021) mobile:DynamicAnalysis Dynamic API/runtime trace: Background scheduler or persistent service triggers retrieve-then-write cycle
Mutable Elements
Field Description
ApprovedPlatformApps Apps approved for bidirectional use of each platform: note-taking app for its own cloud, email app for its service. Non-platform apps doing read-then-write cycles are anomalous.
BidirectionalCycleWindow Default 120s between inbound retrieval and outbound write constituting one C2 cycle. Tightening: 30s.
CycleCountThreshold Default 3 retrieve-write cycles within $ObservationWindow$. Single cycle may be legitimate; repeated cycles are C2 pattern.
ObservationWindow Default 3600s.

AN1817

For iOS, detect Bidirectional Communication 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]; Application State via Apple MDM [InstalledApplicationList / ManagedApplicationList]; Network Traffic Content via Enterprise Secure Web Gateway / Proxy [DNS/HTTP(S) inspection or proxy transaction metadata where enterprise decryption/inspection is deployed]. 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
Application State (DC0123) iOS:MDM InstalledApplicationList / ManagedApplicationList
Network Traffic Content (DC0085) webproxy:applog DNS/HTTP(S) inspection or proxy transaction metadata where enterprise decryption/inspection is deployed
OS API Execution (DC0021) mobile:DynamicAnalysis Dynamic API/runtime trace: Background task activation immediately before retrieve-then-write cycle on supervised device
Mutable Elements
Field Description
ApprovedPlatformApps Apps approved for bidirectional use of each platform: note-taking app for its own cloud, email app for its service. Non-platform apps doing read-then-write cycles are anomalous.
BidirectionalCycleWindow Default 120s between inbound retrieval and outbound write constituting one C2 cycle. Tightening: 30s.
CycleCountThreshold Default 3 retrieve-write cycles within $ObservationWindow$. Single cycle may be legitimate; repeated cycles are C2 pattern.
ObservationWindow Default 3600s.