Apply secure design principles in application architectures. Secure design principles include the concept of least privilege and enforcing mediation to validate every operation that the user makes, promoting the concept of "never trust user input." Examples include ensuring that explicit error checking is performed and documented for all input, including for size, data type, and acceptable ranges or formats. Secure design also means minimizing the application infrastructure attack surface, such as turning off unprotected ports and services, removing unnecessary programs and files, and renaming or removing default accounts.
| Capability ID | Capability Description | Mapping Type | ATT&CK ID | ATT&CK Name | Notes |
|---|---|---|---|---|---|
| CIS-16.10 | Apply Secure Design Principles in Application Architectures | mitigates | T1078 | Valid Accounts |
Comments
Apply secure design principles to ensure that applications do not store sensitive data or credentials insecurely (e.g. plaintext credentials in code, published credentials in repositories, or credentials in public cloud storage) to help prevent adversaries from obtaining valid accounts.
References
|
| CIS-16.10 | Apply Secure Design Principles in Application Architectures | mitigates | T1550 | Use Alternate Authentication Material |
Comments
Apply secure design principles to implement token binding strategies, such as Azure AD token protection or OAuth Proof of Possession, to help prevent the token from being used by adversaries
References
|
| CIS-16.10 | Apply Secure Design Principles in Application Architectures | mitigates | T1593.003 | Code Repositories |
Comments
Apply secure design principles to prevent exposure of sensitive information by ensuring credentials and API keys are not embedded in or published through public code repositories to help prevent adversaries from finding information online about victims that can be used during targeting.
References
|
| CIS-16.10 | Apply Secure Design Principles in Application Architectures | mitigates | T1593 | Search Open Websites/Domains |
Comments
Apply secure design principles to prevent exposure of sensitive information by ensuring credentials and API keys are not embedded in or published through public code repositories to help prevent adversaries from finding information online about victims that can be used during targeting.
References
|
| CIS-16.10 | Apply Secure Design Principles in Application Architectures | mitigates | T1496.003 | SMS Pumping |
Comments
Applying secure design principles by implementing CAPTCHA protection on forms that send SMS messages to help prevent adversaries from leveraging messaging services for SMS pumping.
References
|
| CIS-16.10 | Apply Secure Design Principles in Application Architectures | mitigates | T1647 | Plist File Modification |
Comments
Applying secure design principles through Apple developer guidance which enables hardened runtime protections for applications to help prevent adversaries from modifying property list files (plist files).
References
|
| CIS-16.10 | Apply Secure Design Principles in Application Architectures | mitigates | T1559.003 | XPC Services |
Comments
Applying secure design principles by enabling the Hardened Runtime capability and not including the com.apple.security.get-task-allow entitlement with the value set to any value of true can help prevent adversaries from providing malicious content to an XPC service daemon.
References
|
| CIS-16.10 | Apply Secure Design Principles in Application Architectures | mitigates | T1559 | Inter-Process Communication |
Comments
Applying secure design principles by enabling the Hardened Runtime capability and not including the com.apple.security.get-task-allow entitlement with the value set to any value of true can help prevent adversaries from abusing inter-process communication (IPC) mechanisms.
References
|
| CIS-16.10 | Apply Secure Design Principles in Application Architectures | mitigates | T1574.001 | DLL |
Comments
Applying secure design principles to include hash values in manifest files, where possible, can help prevent adversaries from side-loading malicious dynamic-link library (DLL) files.
References
|
| CIS-16.10 | Apply Secure Design Principles in Application Architectures | mitigates | T1574 | Hijack Execution Flow |
Comments
Applying secure design principles to include hash values in manifest files, where possible, can help prevent adversaries from hijacking the way operating systems run programs and executing their own malicious payloads.
References
|
| CIS-16.10 | Apply Secure Design Principles in Application Architectures | mitigates | T1564.012 | File/Path Exclusions |
Comments
Applying secure design principles to limit custom or difficult-to-manage file and folder exclusions and use trusted, access-restricted installation paths can help prevent adversaries from hiding file-based artifacts in specific folders or filenames excluded from defensive capabilities.
References
|
| CIS-16.10 | Apply Secure Design Principles in Application Architectures | mitigates | T1564.009 | Resource Forking |
Comments
Applying secure design principles by using the application bundle structure and its designated /Resources folder can help prevent adversaries from abusing resource forks to hide malicious code or executables.
References
|
| CIS-16.10 | Apply Secure Design Principles in Application Architectures | mitigates | T1564 | Hide Artifacts |
Comments
Applying secure design principles to limit custom file and folder exclusions and installing applications only in trusted paths protected by restricted file and directory permissions can help prevent adversaries from hiding artifacts associated with their behaviors.
References
|
| CIS-16.10 | Apply Secure Design Principles in Application Architectures | mitigates | T1212 | Exploitation for Credential Access |
Comments
Applying secure design principles to validate authentication requests, including one-time passwords, timestamps or sequence numbers for messages sent, digital signatures, and random session keys, can help prevent adversaries from exploiting software vulnerabilities to attempt to collect credentials.
References
|
| CIS-16.10 | Apply Secure Design Principles in Application Architectures | mitigates | T1550.001 | Application Access Token |
Comments
Apply secure design principles to implement token binding strategies, such as Azure AD token protection or OAuth Proof of Possession, to help prevent the token from being used by adversaries
References
|