Execution Prevention

Block execution of code on a system through application control, and/or script blocking.

ID: M0938
Security Controls: IEC 62443-3-3:2013 - SR 3.2, IEC 62443-4-2:2019 - CR 3.2, NIST SP 800-53 Rev. 5 - SI-3
Version: 1.1
Created: 11 June 2019
Last Modified: 07 October 2026

Techniques Addressed by Mitigation

Domain ID Name Use
ICS T1701 Command and Scripting Interpreter

Execution prevention may block malicious software from accessing protected resources through the command-line interface.

.001 PowerShell

Use application control/allowlisting to restrict PowerShell hosts, script paths, interpreters, and child-process behavior to approved engineering and operational workflows. Prefer explicit allowlists over broad blocking on production OT systems.

.002 Windows Command Shell

Restrict cmd.exe, batch files, and command-shell child processes to approved binaries, paths, parent processes, accounts, and maintenance workflows on Windows-based ICS assets. Preserve documented vendor and engineering dependencies.

.003 Unix Shell

Restrict interactive and scripted shell execution on Linux, network, and embedded ICS assets to approved accounts, management paths, commands, and vendor workflows. Where full application control is unavailable, constrain SSH/Telnet access and privileged shell use to dedicated administration paths.

.004 Visual Basic

Use application control and macro/script restrictions to prevent unapproved VBS/VBA/VBScript execution, while explicitly allowlisting required vendor macros and engineering automation.

.005 Python

Restrict Python execution to approved interpreters, scripts, libraries, accounts, and paths. On engineering systems where Python is required, use positive allowlisting rather than disabling the interpreter.

.006 JavaScript

Use application control to restrict wscript.exe, cscript.exe, mshta.exe, Node.js, and other JavaScript runtimes to approved paths, parent processes, scripts, and users.

ICS T0871 Execution through API

Minimize the exposure of API calls that allow the execution of code.

ICS T0849 Masquerading

Use tools that restrict program execution via application control by attributes other than file name for common system and application utilities.

ICS T0834 Native API

Minimize the exposure of API calls that allow the execution of code.

ICS T0894 System Binary Proxy Execution

Disallow the execution of applications/programs which are not required for normal system functions, including any specific command-line arguments which may allow the execution of proxy commands or application binaries.

ICS T0863 User Execution

Application control may be able to prevent the running of executables masquerading as other files.