Detection of Supply Chain Compromise

Technique Detected:  Supply Chain Compromise | T1474

ID: DET0628
Domains: Mobile
Analytics: AN1697, AN1698
Version: 1.0
Created: 21 October 2025
Last Modified: 12 May 2026

Analytics

AN1697

For Android, detect Supply Chain Compromise 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]; OS API Execution via Application Vetting / Instrumented Dynamic Analysis [Dynamic API/runtime trace: Known application begins first-seen or expanded use of content providers, account services, accessibility, or network destinations not in $AppBehaviorBaseline$ post-update]. 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
OS API Execution (DC0021) mobile:DynamicAnalysis Dynamic API/runtime trace: Known application begins first-seen or expanded use of content providers, account services, accessibility, or network destinations not in $AppBehaviorBaseline$ post-update
Protected Configuration (DC0115) android:DevicePolicyManager DevicePolicyManager policy/compliance/security-state queries and SecurityLog events where supported
Mutable Elements
Field Description
AppNetworkBaseline 30-day per-app network destination baseline anchored to prior version. Updated on each planned release. Derive by measurement. Tightening: strict domain allowlist per version.
AppBehaviorBaseline Per-app permission and API call baseline from prior version. Derive from MDM telemetry on known-good version. Any new API category post-update is anomalous.
PostInstallWindow Default 86400s (24hr) behavioral observation window post-install/update. Tightening: 3600s — catches immediate post-install C2.

AN1698

For iOS, detect Supply Chain Compromise from documented management, network, or vetting evidence; treat state queries as periodic observations rather than real-time events. Correlate Application Permission via Application Vetting [Code-signing entitlements and Info.plist privacy usage-description keys]; Application State via Apple MDM [InstalledApplicationList / ManagedApplicationList]; OS API Execution via Application Vetting / Instrumented Dynamic Analysis [Dynamic API/runtime trace: Known app begins first-seen use of protected framework categories (location, microphone, contacts) or background task patterns post-update]. 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
OS API Execution (DC0021) mobile:DynamicAnalysis Dynamic API/runtime trace: Known app begins first-seen use of protected framework categories (location, microphone, contacts) or background task patterns post-update
Protected Configuration (DC0115) iOS:MDM DeviceInformation / SecurityInfo / ProfileList / restrictions and compliance queries
Mutable Elements
Field Description
AppNetworkBaseline 30-day per-app network destination baseline anchored to prior version. Updated on each planned release. Derive by measurement. Tightening: strict domain allowlist per version.
AppBehaviorBaseline Per-app permission and API call baseline from prior version. Derive from MDM telemetry on known-good version. Any new API category post-update is anomalous.
PostInstallWindow Default 86400s (24hr) behavioral observation window post-install/update. Tightening: 3600s — catches immediate post-install C2.