M0945 Code Signing
Enforce binary and application integrity with digital signature verification to prevent untrusted code from executing.
Techniques Addressed by Mitigation
| Domain | 
ID | 
Name | 
Use | 
| ics | 
T0849 | 
Masquerading | 
Require signed binaries. | 
 | 
 | 
 | 
 | 
| ics | 
T0821 | 
Modify Controller Tasking | 
Utilize code signatures to verify the integrity of the installed program on safety or control assets has not been changed. | 
 | 
 | 
 | 
 | 
| ics | 
T0889 | 
Modify Program | 
Utilize code signatures to verify the integrity of the installed program on safety or control assets has not been changed. | 
 | 
 | 
 | 
 | 
| ics | 
T0839 | 
Module Firmware | 
Devices should verify that firmware has been properly signed by the vendor before allowing installation. | 
 | 
 | 
 | 
 | 
| ics | 
T0843 | 
Program Download | 
Utilize code signatures to verify the integrity of the installed program on safety or control assets has not been changed. | 
 | 
 | 
 | 
 | 
| ics | 
T0873 | 
Project File Infection | 
Allow for code signing of any project files stored at rest to prevent unauthorized tampering. Ensure the signing keys are not easily accessible on the same system. | 
 | 
 | 
 | 
 | 
| ics | 
T0851 | 
Rootkit | 
Digital signatures may be used to ensure application DLLs are authentic prior to execution. | 
 | 
 | 
 | 
 | 
| ics | 
T0862 | 
Supply Chain Compromise | 
When available utilize hardware and software root-of-trust to verify the authenticity of a system. This may be achieved through cryptographic means, such as digital signatures or hashes, of critical software and firmware throughout the supply chain. | 
 | 
 | 
 | 
 | 
| ics | 
T0857 | 
System Firmware | 
Devices should verify that firmware has been properly signed by the vendor before allowing installation. | 
 | 
 | 
 | 
 | 
| ics | 
T0863 | 
User Execution | 
Prevent the use of unsigned executables, such as installers and scripts. | 
 | 
 | 
 | 
 |