| ID | Name |
|---|---|
| T1636.001 | Calendar Entries |
| T1636.002 | Call Log |
| T1636.003 | Contact List |
| T1636.004 | SMS Messages |
| T1636.005 | Accounts |
Adversaries may utilize standard operating system APIs to gather account data. On Android, this can be accomplished by using the AccountManager API. For example, adversaries may use the getAccounts() method to list all accounts.[1] On iOS, this can be accomplished by using the Keychain services.
If the device has been jailbroken or rooted, adversaries may be able to access Accounts without the users’ knowledge or approval.
| ID | Name | Description |
|---|---|---|
| S1243 | DCHSpy |
DCHSpy has collected account names and their types from the device.[2] |
| S9005 | DocSwap |
DocSwap has the ability to send registered account information.[3][4] |
| S1241 | RatMilad |
RatMilad has collected account names and their types from the compromised device.[5] |
| S9006 | VajraSpy |
VajraSpy has requested for |
| ID | Mitigation | Description |
|---|---|---|
| M1006 | Use Recent OS Version |
OS feature updates often enhance security and privacy around permissions. |
| M1011 | User Guidance |
Access to accounts is an uncommonly needed permission, so users should be instructed to use extra scrutiny when granting access to their accounts. |
| ID | Name | Analytic ID | Analytic Description |
|---|---|---|---|
| DET0635 | Detection of Accounts | AN1708 |
For Android, detect Accounts 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: AccountManager.getAccounts() OR getAccountsByType() called > $AccountEnumThreshold$ times within $AccountEnumWindow$ by app NOT IN $ApprovedAuthenticatorApps$]; 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. |
| AN1709 |
For iOS, detect Accounts 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: SecItemCopyMatching() called with kSecMatchLimitAll]; 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]. 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. |