Adversaries may exploit a software vulnerability to take advantage of a programming error in a program, service, or within the operating system software or kernel itself to enable remote service abuse. A common goal for post-compromise exploitation of remote services is for initial access into and lateral movement throughout the ICS environment to enable access to targeted systems. 
ICS asset owners and operators have been affected by ransomware (or disruptive malware masquerading as ransomware) migrating from enterprise IT to ICS environments: WannaCry, NotPetya, and BadRabbit. In each of these cases, self-propagating (wormable) malware initially infected IT networks, but through exploit (particularly the SMBv1-targeting MS17-010 vulnerability) spread to industrial networks, producing significant impacts. 
|M0948||Application Isolation and Sandboxing||
Make it difficult for adversaries to advance their operation through exploitation of undiscovered or unpatched vulnerabilities by using sandboxing. Other types of virtualization and application microsegmentation may also mitigate the impact of some types of exploitation. Risks of additional exploits and weaknesses in these systems may still exist. 
|M0942||Disable or Remove Feature or Program||
Ensure that unnecessary ports and services are closed to prevent risk of discovery and potential exploitation.
Security applications that look for behavior used during exploitation such as Windows Defender Exploit Guard (WDEG) and the Enhanced Mitigation Experience Toolkit (EMET) can be used to mitigate some exploitation behavior. Control flow integrity checking is another way to potentially identify and stop a software exploit from occurring. Many of these protections depend on the architecture and target application binary for compatibility and may not work for all software or services targeted.
Segment networks and systems appropriately to reduce access to critical system and services communications.
|M0926||Privileged Account Management||
Minimize permissions and access for service accounts to limit impact of exploitation. 
|M0919||Threat Intelligence Program||
Develop a robust cyber threat intelligence capability to determine what types and levels of threat may use software exploits and 0-days against a particular organization.
Update software regularly by employing patch management for internal enterprise endpoints and servers.
Regularly scan the internal network for available services to identify new and potentially vulnerable services.
|ID||Data Source||Data Component||Detects|
|DS0015||Application Log||Application Log Content||
Detecting software exploitation may be difficult depending on the tools available. Software exploits may not always succeed or may cause the exploited process to become unstable or crash, which may be recorded in the application log.
|DS0029||Network Traffic||Network Traffic Content||
Use deep packet inspection to look for artifacts of common exploit traffic, such as known payloads.