Detection of Obfuscated Files or Information

ID: DET0720
Domains: Mobile
Analytics: AN1851, AN1852
Version: 1.0
Created: 21 October 2025
Last Modified: 12 May 2026

Analytics

AN1851

For Android, detect Obfuscated Files or Information by correlating analyst-visible device/network evidence and management state; use streaming or batched telemetry only where the documented collector is deployed. Correlate File Creation via Application Vetting / Forensic Acquisition [Dynamic filesystem trace or acquired app-container/filesystem artifacts: open() with O_CREAT on path LIKE '/data/data/%/files/%' for binary or dex content by app_package NOT IN $LegitDynamicLoaders$]; Module Load via Application Vetting / Instrumented Dynamic Analysis [Dynamic API/runtime trace: DexClassLoader() or dlopen() called with path argument matching file written in preceding $DecryptExecWindow$]; Network Connection Creation 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
File Creation (DC0039) mobile:ForensicArtifacts Dynamic filesystem trace or acquired app-container/filesystem artifacts: open() with O_CREAT on path LIKE '/data/data/%/files/%' for binary or dex content by app_package NOT IN $LegitDynamicLoaders$
Module Load (DC0016) mobile:DynamicAnalysis Dynamic API/runtime trace: DexClassLoader() or dlopen() called with path argument matching file written in preceding $DecryptExecWindow$
Network Connection Creation (DC0082) android:EnterpriseNetworkLog DevicePolicyManager.retrieveNetworkLogs(): DnsEvent / ConnectEvent; VPN flow metadata
Mutable Elements
Field Description
LegitDynamicLoaders React Native, Unity, Xamarin runtime packages — legitimate apps that use dynamic code loading. Tightening: empty list (all dynamic loading flagged). Loosening: broad list reduces FP for game engines. Derive from MDM-approved app catalog.
DecryptExecWindow Default 60s between file write and module load. Tightening: 10s — synchronous decrypt-load pattern.
AppCDNList Per-app known CDN/update endpoints from 30-day network baseline. Derive by measurement.
PostLoadWindow Default 120s between module load and novel network connection.

AN1852

For iOS, detect Obfuscated Files or Information 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 Traffic Content via Enterprise Secure Web Gateway / Proxy [DNS/HTTP(S) inspection or proxy transaction metadata where enterprise decryption/inspection is deployed]; 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 Traffic Content (DC0085) webproxy:applog DNS/HTTP(S) inspection or proxy transaction metadata where enterprise decryption/inspection is deployed
Network Traffic Flow (DC0078) iOS:NetworkExtension NEFilterFlow / per-app VPN / secure-web-gateway flow metadata
Mutable Elements
Field Description
AppCDNList Per-app declared CDN/update endpoints from 30-day baseline.
AppBaselineDomains Full per-app network destination baseline, 30-day.
ContentEntropyThreshold Default 7.0 bits Shannon entropy. Calibrate against known-good app responses.
MinPayloadSize Default 1024 bytes — exclude trivial config responses.
BehavioralForkWindow Default 120s between download and new destination first seen.