Detection of Protected User Data

Technique Detected:  Protected User Data | T1636

ID: DET0681
Domains: Mobile
Analytics: AN1786, AN1787
Version: 1.0
Created: 21 October 2025
Last Modified: 12 May 2026

Analytics

AN1786

For Android, detect Protected User Data 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: ContentResolver.query() to sensitive provider URI (contacts, calendar, call_log, sms) with query_count > $ContentQueryThreshold$ by app NOT IN $ApprovedDataApps$]; Network Traffic Flow via Android Enterprise Network Logging / Enterprise VPN [DevicePolicyManager.retrieveNetworkLogs(): DnsEvent / ConnectEvent; VPN flow metadata]; Permissions Request via Android Enterprise DPC / Application Vetting [DevicePolicyManager.getPermissionGrantState(); PackageManager manifest/requested-permission review]. 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: ContentResolver.query() to sensitive provider URI (contacts, calendar, call_log, sms) with query_count > $ContentQueryThreshold$ by app NOT IN $ApprovedDataApps$
Network Traffic Flow (DC0078) android:EnterpriseNetworkLog DevicePolicyManager.retrieveNetworkLogs(): DnsEvent / ConnectEvent; VPN flow metadata
Permissions Request (DC0116) android:DevicePolicyManager DevicePolicyManager.getPermissionGrantState(); PackageManager manifest/requested-permission review
Mutable Elements
Field Description
ApprovedDataApps Per-data-type approved apps: calendar sync, dialer, SMS default, CRM apps. Derive from MDM catalog.
ContentQueryThreshold Varies by data type: Contacts=50, Calendar=30, CallLog=10, SMS=20 queries/2min. Derive from per-app baseline.
UplinkThreshold Default 100KB. Adjust per data-type expected size.
AppCDNList Per-app CDN. Derive by measurement.
ExfilWindow Default 120s.

AN1787

For iOS, detect Protected User Data 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: CNContactStore.enumerateContacts or EKEventStore.fetchEvents or CLLocationManager.startUpdatingLocation called with broad scope by app NOT IN $ApprovedDataApps$]; Network Traffic Flow via Apple Network Extension / Enterprise VPN [NEFilterFlow / per-app VPN / secure-web-gateway flow metadata]; Permissions Request via Application Vetting [Code-signing entitlements and Info.plist privacy usage-description keys]. 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: CNContactStore.enumerateContacts or EKEventStore.fetchEvents or CLLocationManager.startUpdatingLocation called with broad scope by app NOT IN $ApprovedDataApps$
Network Traffic Flow (DC0078) iOS:NetworkExtension NEFilterFlow / per-app VPN / secure-web-gateway flow metadata
Permissions Request (DC0116) mobile:ApplicationVetting Code-signing entitlements and Info.plist privacy usage-description keys
Mutable Elements
Field Description
ApprovedDataApps Approved sync, CRM, navigation apps per permission type. Derive from MDM catalog.
UplinkThreshold Default 100KB.
AppCDNList Per-app CDN. Derive by measurement.
ExfilWindow Default 120s.