A PLC or safety controller left in Program or Remote mode will accept new logic from anyone who can reach it on the network. D3-OPR Operating Mode Restriction is the MITRE D3FEND countermeasure that addresses this: D3FEND defines it as "Restricting unauthorized changes to the operating mode prevents devices from switching into inappropriate or vulnerable states during normal use." In the D3FEND ontology it is a child of Access Mediation in the Isolate tactic, and it restricts the OT Controller Operating Mode artefact. This card covers what the control changes on a controller, which attacker behaviour it is relevant to, where it is implemented, how to prove it holds, and where it stops helping. It is written for OT engineers, control system owners and the security teams who monitor them. For the parent technique, see the MITRE D3FEND Access Mediation Implementation Guide.
Key takeaways
- Run mode is the protected state. On most controllers Run disables program upload and download, so keeping the controller there removes the easiest path to changing its logic.
- The key is a credential. A physical key switch only restricts mode if the key is removed, stored and issued under change control, as D3FEND's own guidance says.
- D3FEND lists no ATT&CK mapping for it yet. Its relevance to T0858 Change Operating Mode comes from the shared OT Controller Operating Mode artefact, which is NHI Mgmt Group's reading of the ontology.
- Software mode changes need equal treatment. Controllers without a hardware switch, or switched to Remote, accept mode changes through engineering software, so passwords and role-based access in that software are part of the control.
- Restriction needs monitoring beside it. An alarm whenever a controller leaves Run is what turns a forgotten key into a short exposure rather than a standing one.
D3-OPR at a glance
| Field | D3-OPR Operating Mode Restriction |
|---|---|
| D3FEND ID | D3-OPR |
| Tactic | Isolate (through its parent, Access Mediation) |
| Parent technique | Access Mediation |
| Digital artefact | OT Controller Operating Mode (D3FEND: the technique "restricts" it). D3FEND's synonym for the artefact is "Keyswitch Position" |
| What it changes | Who can move a controller between Program, Run, Remote, Test and Stop, and when |
| Typical implementation points | Physical key switch on the controller, key management procedure, mode protection in vendor engineering software, role-based access on the engineering workstation |
| Typical data sources for verification | Controller status bits read by logic or the HMI, ICS protocol monitoring for mode-change commands, key issue log, change records |
| Effort | Low to apply; moderate to sustain (keys, maintenance windows, discipline) |
| Main limitation | Does nothing once an engineer has legitimately put the controller into Program mode, or against firmware flaws that ignore the mode |
| Related ATT&CK mitigation | M0800 Authorization Enforcement (D3FEND cites it as a reference for D3-OPR) |
How it works
D3FEND's knowledge base article is short and practical. Many OT controllers use key switches to change modes such as Program, Run, Remote or Stop. The key should be left in the appropriate position, for example Run or Remote, during normal operations, and the key management procedure should include removing the physical key from the switch when it is not in use.
Why the mode matters is set out in ATT&CK for ICS under T0858 Change Operating Mode. Modes vary by vendor, but the common pattern is:
| Mode | Behaviour described by ATT&CK for ICS | Security meaning |
|---|---|---|
| Program | Program changes are enabled; uploads and downloads between controller and engineering workstation are permitted; logic is usually halted | The state an attacker needs for a logic download |
| Run | The program executes; Program Upload (T0845) and Program Download (T0843) are disabled | The protected state for normal operation |
| Remote | Allows the operating mode to be changed remotely | Mode becomes a software decision, so engineering software controls carry the weight |
| Stop | Controller and program halted, outputs forced off | An availability impact in itself |
| Test / Monitor | I/O processed as in Run, with forcing, resets and tuning available | Lets values be forced; treat as a maintenance state |
Vendor detail matters. Dragos describes Triconex safety controllers as having four key positions, where Run is read-only and rejects writes from TriStation, Modbus masters or external hosts unless the control program opens a gated window, while Remote allows writes to program variables but not program downloads. It also notes that Rockwell ControlLogix has three physical positions but five operating modes, and that moving the key from Program to Remote leaves the controller in Remote Program until the key returns to Run. Read the mode table for every controller family you run rather than assuming Run means the same thing everywhere.
Where there is no hardware switch, the Top 20 Secure PLC Coding Practices (practice 2, Track operating modes) recommends software controls such as password protection in the engineering software for reading and writing PLC code. That puts the engineering workstation and its accounts inside the scope of D3-OPR. See the OT and ICS Identity and Access Guide.
ATT&CK techniques related to D3-OPR
Relationship type: none listed by D3FEND. The D3FEND technique page for D3-OPR states that there are no related offensive techniques in the current release (checked November 2026). The rows below are NHI Mgmt Group's reading of the D3FEND ontology, where the same OT Controller Operating Mode artefact that D3-OPR restricts is the artefact these ATT&CK for ICS techniques modify. Treat them as "where this control is relevant", not as an official mapping. IDs were checked against ATT&CK v20.
| ATT&CK ID | Technique | Link in the D3FEND ontology | What D3-OPR changes (NHI Mgmt Group assessment) |
|---|---|---|---|
| T0858 | Change Operating Mode | Modifies OT Controller Operating Mode | Strong where a physical key in Run is required; weak where the controller sits in Remote and accepts software mode changes |
| T0800 | Activate Firmware Update Mode | Modifies OT Controller Operating Mode | Partial: depends on whether the device ties firmware update mode to the key position |
| T0843, T0845 | Program Download, Program Upload | Not linked by artefact; ATT&CK states both are disabled in Run | Strong for devices that enforce this in Run |
ATT&CK's procedure example for Triton on T0858 notes that the Tricon controller had to be in Program mode before the payload could be injected, and Dragos states that with the key in Run the attack would not have succeeded. The FBI's March 2022 notification on TRITON recommends change management for run-state key positions, regular audits of physical keys, and operator station alarms whenever the safety controller's key switch is in Program mode. See the ICS T0858 Change Operating Mode, the MITRE ATT&CK for ICS T0800 Activate Firmware Update Mode and the ICS Malware History Guide.
Where it is implemented
| Enforcement point | What to configure | Typical gap |
|---|---|---|
| Controller key switch | Run (or the vendor's equivalent protected position) during operation; key removed | Key left in the switch, or left in Remote or Program after commissioning |
| Key management | Named custodian, locked storage, issue and return log tied to a change or work order, periodic audit | Spare keys taped inside cabinets; one key fits every controller of a model |
| Cabinet and site | Controllers in locked cabinets, physical access restricted (FBI TRITON guidance) | Shared cabinet keys held by many contractors |
| Engineering software | Mode and program protection passwords, role-based access for engineers and technicians (ATT&CK M0800 guidance for T0858) | Shared or default project passwords; protection never switched on |
| Network path to the controller | Allow mode-change and download functions only from designated engineering workstations | Flat network where any host can send protocol commands |
| HMI and alarm system | Alarm when a controller leaves Run, with re-alert near end of shift (Top 20 practice 2) | Alarm disabled after commissioning and never re-enabled |
The network and workstation rows overlap with D3FEND's network isolation techniques; this page does not repeat them. See the OT Network Segmentation, Purdue Model and IEC 62443 Zones and Conduits Guide and the PLC Security Guide.
Implementation steps
- Inventory controllers and their modes. For each controller record the model, the available modes, whether it has a hardware switch, its current position and who holds the key. Use passive asset visibility rather than active polling of fragile devices.
- Define the normal state per controller. Usually Run; document any controller that must stay in Remote for an operational reason, and what compensating software control applies.
- Bring keys under custody. Remove keys from switches, store them locked, and issue them only against an approved work order. Record issue and return.
- Turn on software protection. Enable mode and program protection in the engineering software with individual credentials, and restrict which workstations can connect.
- Add the alarm before enforcing. Configure the HMI or monitoring platform to alarm whenever a controller is not in its normal state, and run it for a period to learn how often mode changes occur legitimately.
- Return to Run after every change. Make "key back to Run and removed" a closing step on every maintenance work order, confirmed by the alarm clearing.
- Plan rollback. The rollback for a mode restriction is operational: a documented emergency key issue path with after-the-fact review, so staff never leave keys in switches "just in case".
How to verify it works
- Walkdown: physically check a sample of controllers each quarter for key position and key presence, and compare against the inventory.
- Status bit check: read the controller's mode status into logic or the HMI. Dragos describes reading key position through a Get System Value instruction on Rockwell controllers, placed in a password-protected block, and alarming if that block is disabled.
- Negative download test: in a maintenance window on a test or non-critical controller, confirm that a download from the engineering workstation is refused while the controller is in Run.
- Network detection: ATT&CK's detection strategy for T0858 describes alerting on ICS protocol mode-change commands from sources not on the approved engineering workstation list, outside an approved change window. Confirm your monitoring raises that alert with a planned test.
| Metric (examples, not standards) | What it shows | Target direction |
|---|---|---|
| Controllers found outside their normal mode at walkdown or by status bit | Whether the restriction is real | Zero |
| Hours per month controllers spend outside Run | Size of the exposure window | Falling, and each period matched to a work order |
| Mode changes with no matching change record | Unauthorised or undocumented changes | Zero, each one investigated |
| Keys not accounted for at audit | Custody control | Zero |
| Controllers with software mode protection enabled | Coverage for devices without a hardware switch or in Remote | Rising to 100% |
For monitoring architecture, see the OT Network Security Monitoring Guide.
Limits, bypasses and failure patterns
- Key left in the switch: the control reverts to whatever position the last engineer chose. This is the most common way the restriction disappears.
- Remote as the permanent setting: Remote hands mode changes to software, so the protection is only as strong as the engineering software's credentials and the network path to the controller.
- Compromised engineering workstation during legitimate work: when the key is turned to Program for a planned change, any malware on the workstation can use that window. Pair D3-OPR with workstation hardening and project file integrity checks.
- Vendor behaviour differs: some controllers still accept certain writes or firmware operations in Run. Check vendor documentation for each family.
- Alarm fatigue: if mode alarms fire constantly during commissioning they get suppressed and forgotten. The Top 20 guidance allows disabling the alarm in test phases only if the plant is isolated from higher network levels.
Framework mapping
| Framework | Reference | Relationship to D3-OPR |
|---|---|---|
| MITRE ATT&CK for ICS | M0800 Authorization Enforcement | Cited by D3FEND as a reference; guidance for T0858 names keys as a physical control |
| NIST SP 800-53 Rev 5 | CM-5 Access Restrictions for Change | Physical and logical restrictions on changes to the system |
| NIST SP 800-53 Rev 5 | AC-3 Access Enforcement | Enforcing approved authorisations, here for mode changes |
| Top 20 Secure PLC Coding Practices | Practice 2, Track operating modes | Alarm when PLCs are not in Run; software protection where no switch exists |
Related countermeasures
- Sibling under Access Mediation: D3-OVAR OT Variable Access Restriction protects individual tags and registers while the controller runs.
- Default credentials: engineering software and controller passwords left at vendor defaults undo software mode protection. See the D3-CDP Change Default Password.
- Framework context: see the MITRE ATT&CK for ICS Guide and the MITRE D3FEND Guide.
Practitioner checklist
- Record mode capability, current position and key holder for every controller.
- Set Run (or the vendor's protected position) as the normal state and document every exception.
- Remove keys from switches and issue them only against approved work orders.
- Audit physical keys on a schedule and reconcile against the issue log.
- Enable mode and program protection in engineering software with individual credentials.
- Restrict mode-change and download functions to designated engineering workstations.
- Alarm whenever a controller leaves its normal mode, with a re-alert before shift change.
- Close every maintenance work order only after the controller is back in Run and the alarm clears.
Standards and references
- MITRE D3FEND: Operating Mode Restriction (D3-OPR)
- MITRE ATT&CK for ICS: T0858 Change Operating Mode
- MITRE ATT&CK for ICS: M0800 Authorization Enforcement
- FBI: TRITON Malware Remains Threat to Global Critical Infrastructure Industrial Control Systems
- PLC Security: Top 20 Secure PLC Coding Practices
- Dragos: The Value of PLC Key Switch Monitoring
- NIST: SP 800-53 Rev 5, Security and Privacy Controls
Related NHI Mgmt Group resources: MITRE D3FEND Access Mediation Implementation Guide · PLC Security Guide · OT Security Guide · ICS T0858 Change Operating Mode · MITRE D3FEND Guide