Detection of SSL Pinning

Technique Detected:  SSL Pinning | T1521.003

ID: DET0646
Domains: Mobile
Analytics: AN1725, AN1726
Version: 1.0
Created: 21 October 2025
Last Modified: 12 May 2026

Analytics

AN1725

For Android, detect SSL Pinning 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]; 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) android:DevicePolicyManager DevicePolicyManager.getPermissionGrantState(); PackageManager manifest/requested-permission review
Application State (DC0123) android:EMM Managed package inventory/status and package metadata
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: App invokes custom TLS trust evaluation, OkHttp CertificatePinner, or custom-anchor TrustManager NOT IN $ApprovedPinningApps$ — custom pin validation is the evasion mechanism
Mutable Elements
Field Description
ApprovedPinningApps Banking, financial, healthcare apps with documented legitimate SSL pinning AND IT security review approval. Include with business justification. Tightening: empty — all custom TLS trust flagged for review.
PinningFailureThreshold Default 3 consecutive inspection failures from same app to same destination. Single failure may be transient.

AN1726

For iOS, detect SSL Pinning 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
Mutable Elements
Field Description
ApprovedPinningApps Banking, financial, healthcare apps with documented legitimate SSL pinning AND IT security review approval. Include with business justification. Tightening: empty — all custom TLS trust flagged for review.
PinningFailureThreshold Default 3 consecutive inspection failures from same app to same destination. Single failure may be transient.