Adversaries may modify code signing policies to enable execution of applications signed with unofficial or unknown keys. Code signing provides a level of authenticity on an app from a developer, guaranteeing that the program has not been tampered with and comes from an official source. Security controls can include enforcement mechanisms to ensure that only valid, signed code can be run on a device.
Mobile devices generally enable these security controls by default, such as preventing the installation of unknown applications on Android. Adversaries may modify these policies in a number of ways, including Input Injection or malicious configuration profiles.
| ID | Name | Description |
|---|---|---|
| S0505 | Desert Scorpion |
If running on a Huawei device, Desert Scorpion adds itself to the protected apps list, which allows it to run with the screen off.[1] |
| S0420 | Dvmap |
Dvmap can enable installation of apps from unknown sources.[2] |
| S0551 | GoldenEagle |
GoldenEagle has modified or configured proxy information.[3] |
| S0485 | Mandrake |
Mandrake can enable app installation from unknown sources.[4] |
| S0549 | SilkBean |
SilkBean has attempted to trick users into enabling installation of applications from unknown sources.[3] |
| S1056 | TianySpy |
TianySpy can install malicious configurations on iPhones to allow malware to be installed via Ad Hoc distribution.[5] |
| G0112 | Windshift |
Windshift has installed malicious MDM profiles on iOS devices as part of Operation ROCK.[6] |
| S0490 | XLoader for iOS |
XLoader for iOS has been installed via a malicious configuration profile.[7] |
| S0311 | YiSpecter |
YiSpecter has used fake Verisign and Symantec certificates to bypass malware detection systems. YiSpecter has also signed malicious apps with iOS enterprise certificates to work on non-jailbroken iOS devices.[8] |
| ID | Mitigation | Description |
|---|---|---|
| M1012 | Enterprise Policy |
On iOS, the |
| M1006 | Use Recent OS Version |
Mobile OSes have implemented measures to make it more difficult to trick users into installing untrusted certificates and configurations. iOS 10.3 and higher add an additional step for users to install new trusted CA certificates and configuration profiles. On Android, apps that target compatibility with Android 7 and higher (API Level 24) default to only trusting CA certificates that are bundled with the operating system, not CA certificates that are added by the user or administrator, hence decreasing their susceptibility to successful adversary-in-the-middle attack.[9][10] |
| M1011 | User Guidance |
Typically, insecure or malicious configuration settings are not installed without the user's consent. Users should be advised not to install unexpected configuration settings (CA certificates, iOS Configuration Profiles, Mobile Device Management server provisioning). |
| ID | Name | Analytic ID | Analytic Description |
|---|---|---|---|
| DET0619 | Detection of Code Signing Policy Modification | AN1679 |
For Android, detect Code Signing Policy Modification 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]; File Creation via Application Vetting / Forensic Acquisition [Dynamic filesystem trace or acquired app-container/filesystem artifacts: PackageInstaller.install() with signing_cert NOT IN $EnterpriseCertList$ within $PolicyViolationWindow$ of settings change]; System Settings via Android Enterprise DPC [DevicePolicyManager policy/compliance/security-state queries and SecurityLog events where supported]. 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. |
| AN1680 |
For iOS, detect Code Signing Policy Modification 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]; File Creation via Application Vetting / Forensic Acquisition [Dynamic filesystem trace or acquired app-container/filesystem artifacts: IPA binary written with signing cert matching user-trusted certificate NOT IN $EnterpriseCertList$ within $ProfileInstallWindow$]; Protected Configuration via Apple MDM [DeviceInformation / SecurityInfo / ProfileList / restrictions and compliance queries]. 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. |