M1033 Limit Software Installation
Prevent users or groups from installing unauthorized or unapproved software to reduce the risk of introducing malicious or vulnerable applications. This can be achieved through allowlists, software restriction policies, endpoint management tools, and least privilege access principles. This mitigation can be implemented through the following measures:
Application Whitelisting
- Implement Microsoft AppLocker or Windows Defender Application Control (WDAC) to create and enforce allowlists for approved software.
- Whitelist applications based on file hash, path, or digital signatures.
Restrict User Permissions
- Remove local administrator rights for all non-IT users.
- Use Role-Based Access Control (RBAC) to restrict installation permissions to privileged accounts only.
Software Restriction Policies (SRP)
- Use GPO to configure SRP to deny execution of binaries from directories such as
%AppData%,%Temp%, and external drives. - Restrict specific file types (
.exe,.bat,.msi,.js,.vbs) to trusted directories only.
Endpoint Management Solutions
- Deploy tools like Microsoft Intune, SCCM, or Jamf for centralized software management.
- Maintain a list of approved software, versions, and updates across the enterprise.
Monitor Software Installation Events
- Enable logging of software installation events and monitor Windows Event ID 4688 and Event ID 11707 for software installs.
- Use SIEM or EDR tools to alert on attempts to install unapproved software.
Implement Software Inventory Management
- Use tools like OSQuery or Wazuh to scan for unauthorized software on endpoints and servers.
- Conduct regular audits to detect and remove unapproved software.
Tools for Implementation
Application Whitelisting:
- Microsoft AppLocker
- Windows Defender Application Control (WDAC)
Endpoint Management:
- Microsoft Intune
- SCCM (System Center Configuration Manager)
- Jamf Pro (macOS)
- Puppet or Ansible for automation
Software Restriction Policies:
- Group Policy Object (GPO)
- Microsoft Software Restriction Policies (SRP)
Monitoring and Logging:
- Splunk
- OSQuery
- Wazuh (open-source SIEM and XDR)
- EDRs
Inventory Management and Auditing:
- OSQuery
- Wazuh
| Item | Value |
|---|---|
| ID | M1033 |
| Version | 1.1 |
| Created | 11 June 2019 |
| Last Modified | 18 December 2024 |
| Navigation Layer | View In ATT&CK® Navigator |
Techniques Addressed by Mitigation
| Domain | ID | Name | Use |
|---|---|---|---|
| enterprise | T1547 | Boot or Logon Autostart Execution | - |
| enterprise | T1547.013 | XDG Autostart Entries | Restrict software installation to trusted repositories only and be cautious of orphaned software packages. |
| enterprise | T1059 | Command and Scripting Interpreter | Prevent user installation of unrequired command and scripting interpreters. |
| enterprise | T1059.006 | Python | Prevent users from installing Python where not required. |
| enterprise | T1059.011 | Lua | Prevent users from installing Lua where not required. |
| enterprise | T1543 | Create or Modify System Process | Restrict software installation to trusted repositories only and be cautious of orphaned software packages. |
| enterprise | T1543.002 | Systemd Service | Restrict software installation to trusted repositories only and be cautious of orphaned software packages. |
| enterprise | T1564 | Hide Artifacts | Restrict the installation of software that may be abused to create hidden desktops, such as hVNC, to user groups that require it. |
| enterprise | T1564.003 | Hidden Window | Restrict the installation of software that may be abused to create hidden desktops, such as hVNC, to user groups that require it. |
| enterprise | T1021 | Remote Services | - |
| enterprise | T1021.005 | VNC | Restrict software installation to user groups that require it. A VNC server must be manually installed by the user or adversary. |
| enterprise | T1072 | Software Deployment Tools | Restrict the use of third-party software suites installed within an enterprise network. |
| enterprise | T1176 | Software Extensions | Only install extensions from trusted sources that can be verified. |
| enterprise | T1176.001 | Browser Extensions | Only install browser extensions from trusted sources that can be verified. Browser extensions for some browsers can be controlled through Group Policy. Change settings to prevent the browser from installing extensions without sufficient permissions. |
| enterprise | T1176.002 | IDE Extensions | Only install IDE extensions from trusted sources that can be verified. |
| enterprise | T1195 | Supply Chain Compromise | Where possible, consider requiring developers to pull from internal repositories containing verified and approved packages rather than from external ones.1 |
| enterprise | T1195.001 | Compromise Software Dependencies and Development Tools | Where possible, consider requiring developers to pull from internal repositories containing verified and approved packages rather than from external ones.1 |
| enterprise | T1204 | User Execution | Where possible, consider requiring developers to pull from internal repositories containing verified and approved packages rather than from external ones. |
| enterprise | T1204.005 | Malicious Library | Where possible, consider requiring developers to pull from internal repositories containing verified and approved packages rather than from external ones. |