OT Safety-First Threat Model
Operational technology inverts the assumption every IT security instinct is built on.
On a corporate network the ranking is confidentiality, integrity, availability, and the
reflexes follow: patch the moment a CVE drops, scan aggressively to find exposure, force
encryption and MFA everywhere, reboot to apply. In OT — the PLCs, RTUs, HMIs, and safety
systems that run a turbine, a pipeline, a water plant, a factory line — the ranking is
safety and availability first, and those same reflexes become the threat. A vuln
scan can crash a fragile controller that has an uptime measured in years. A forced patch
can require a process shutdown that costs a week and a restart that is itself dangerous.
An "encrypt everything" mandate can add latency that violates a real-time control loop.
The wrong security action does not leak data; it stops a physical process or defeats a
safety function, and the consequence is measured in downtime, environmental release, or
lives.
Two symmetric failure modes:
- IT reflexes imported blind. Treating the plant floor like an enterprise LAN —
scanning it, patching on the IT cadence, deploying agents onto devices that were never
built to run them — and inducing the outage you were trying to prevent. The security
team becomes the incident.
- "It's air-gapped, it's fine." The mirror error: assuming physical isolation that
no longer exists (a historian bridged to the corporate network, a vendor's remote-
maintenance modem, a USB workflow, IT/OT convergence) and therefore doing nothing,
leaving a flat, unauthenticated, unpatchable network wide open once the gap is crossed.
The through-line: model consequence in the physical world, and let availability and
safety, not confidentiality, set the priority. Every control is judged first by what
it does to the process.
Composes with the library:
- assume-breach-modeling — the blast radius of an OT compromise is kinetic; "what does this foothold reach" ends at a physical actuator, not a database
- irreversible-action-gate — a control command (open a valve, change a setpoint, stop a safety system) is a one-way, physical action; the gate is not a UX nicety here, it is safety engineering
- honest-degradation — an unpatchable, end-of-life controller that cannot be fixed is a documented WARN with compensating controls, not a pretended PASS
- dual-use-behavior-adjudication — on an OT network, an engineering workstation issuing control commands is normal; malice is context (unexpected setpoint, off-hours, from the wrong host), not the command itself
- detection-engineering — OT detection is passive and protocol-aware (span ports, not agents; Modbus/DNP3/S7 semantics), because active probing is itself a hazard
Step 1 — Rank the impact in the physical world, safety at the top
Before any control decision, state the consequence hierarchy for this system, because
it determines what "secure" even means:
- Safety — can a compromise or a security action cause physical harm (release,
explosion, equipment destruction, injury)? A safety-instrumented system (SIS) that a
control defeats or delays is the top of the risk stack, above any data concern.
- Availability — can it stop the process? Downtime in continuous processes is not an
inconvenience; a restart may be slow, costly, or hazardous in itself.
- Integrity — a manipulated setpoint or spoofed sensor reading that drives the
process to an unsafe state (the Stuxnet / Triton class), where the operator sees
"normal" while reality diverges.
- Confidentiality — last, not first. Process data matters, but not at the cost of
the three above.
An assessment that opens with "we should encrypt the historian" before it has
characterized the safety and availability impact has imported the wrong ranking.
Step 2 — Test every proposed control against availability and safety first
For each IT-style control on the table, ask what it does to the process before asking
what it protects:
- Patching — does applying it require a shutdown? Is the vendor's patch validated for
this device and firmware? Is the controller so fragile or end-of-life that the patch
risk exceeds the vuln risk? Patch cadence in OT is driven by maintenance windows and
vendor validation, not by CVE date.
- Scanning / active discovery — can this device tolerate a scan, or will an
unexpected packet crash a decades-old TCP stack? Prefer passive discovery; active
probing is a hazard until proven safe on that exact model.
- Agents / encryption / MFA — will the endpoint even run an agent? Does encryption
break a real-time loop's timing budget? Does MFA on an HMI block an operator during an
emergency when seconds matter? A control that impedes emergency operation is a safety
regression.
A control that reduces a confidentiality risk while raising a safety or availability
risk is usually the wrong trade in OT. Name that trade explicitly.
Step 3 — Verify the isolation you are assuming actually holds
The "air gap" is the most over-claimed control in OT. Do not assume it; map it:
- Enumerate every crossing — IT/OT firewalls and their real rules, historians and
data diodes, jump hosts, vendor remote-access (cellular modems, TeamViewer, dial-up
still exists), USB and laptop workflows, the engineering workstation that touches both
worlds. IT/OT convergence has quietly bridged most "gaps."
- Treat the crossing as the trust boundary — the corporate network is untrusted from
the OT side; the engineering workstation and the historian are the classic pivot
points (assume-breach-modeling). Once inside, OT networks are typically flat,
unauthenticated, and unencrypted by design — so a single crossing is often
domain-wide on the process network.
- If the gap is real, defend the few crossings hard rather than the many endpoints
you cannot patch. If it is not real, say so — a believed-but-false air gap is the
worst of both worlds.
Step 4 — Build compensating controls around what you cannot fix
Much of OT cannot be patched, upgraded, or hardened without unacceptable process risk.
Honest degradation is the posture, not a failure:
- Segment and monitor instead of patch — network zones/conduits (the Purdue model /
IEC 62443 idea), tight allow-lists at the boundary, and passive protocol-aware
monitoring that raises no traffic on the wire.
- Protect the safety layer independently — the SIS should be separated from the basic
process control so that a compromise of the controllable layer cannot also defeat the
system that would stop a runaway (the Triton lesson).
- Document the residual risk as a WARN with a reason — "controller X is end-of-life,
unpatchable; compensating controls are segmentation + passive monitoring; residual
risk accepted by process owner" is honest and auditable. A pretended-clean status on an
unpatchable device is the dangerous lie.
Step 5 — Detect and respond without becoming the incident
Detection and IR in OT carry the same inversion:
- Passive, protocol-aware detection — baseline the process traffic (Modbus, DNP3,
S7, EtherNet/IP) and alert on the semantics: an unexpected setpoint change, a
firmware download to a PLC, an engineering command from a host that never issues one
(dual-use-behavior-adjudication, physical edition). No active agents on the process
devices.
- Containment cannot default to "isolate and reboot" — pulling a controller offline
or cutting the HMI may be more dangerous than the intrusion. Containment decisions run
through the process/safety engineers, weighing the physical consequence
(containment-under-uncertainty with a kinetic blast radius). The plant may need to run
degraded, not stop.
The one-line test
If your OT recommendation would be uncritically correct on a corporate laptop — patch it
now, scan the subnet, force encryption, isolate and reboot — you have not threat-modeled
OT; you have pointed IT reflexes at a physical process. Re-rank with safety and
availability on top, and test each control by what it does to the process before what it
protects.
1---2name: ot-safety-first-threat-model3description: OT Safety-First Threat Model4---56# OT Safety-First Threat Model78Operational technology inverts the assumption every IT security instinct is built on.9On a corporate network the ranking is confidentiality, integrity, availability, and the10reflexes follow: patch the moment a CVE drops, scan aggressively to find exposure, force11encryption and MFA everywhere, reboot to apply. In OT — the PLCs, RTUs, HMIs, and safety12systems that run a turbine, a pipeline, a water plant, a factory line — the ranking is13**safety and availability first**, and those same reflexes become the threat. A vuln14scan can crash a fragile controller that has an uptime measured in years. A forced patch15can require a process shutdown that costs a week and a restart that is itself dangerous.16An "encrypt everything" mandate can add latency that violates a real-time control loop.17The wrong security action does not leak data; it stops a physical process or defeats a18safety function, and the consequence is measured in downtime, environmental release, or19lives.2021Two symmetric failure modes:2223- **IT reflexes imported blind.** Treating the plant floor like an enterprise LAN —24 scanning it, patching on the IT cadence, deploying agents onto devices that were never25 built to run them — and inducing the outage you were trying to prevent. The security26 team becomes the incident.27- **"It's air-gapped, it's fine."** The mirror error: assuming physical isolation that28 no longer exists (a historian bridged to the corporate network, a vendor's remote-29 maintenance modem, a USB workflow, IT/OT convergence) and therefore doing nothing,30 leaving a flat, unauthenticated, unpatchable network wide open once the gap is crossed.3132The through-line: **model consequence in the physical world, and let availability and33safety, not confidentiality, set the priority.** Every control is judged first by what34it does to the process.3536Composes with the library:3738- **assume-breach-modeling** — the blast radius of an OT compromise is kinetic; "what does this foothold reach" ends at a physical actuator, not a database39- **irreversible-action-gate** — a control command (open a valve, change a setpoint, stop a safety system) is a one-way, physical action; the gate is not a UX nicety here, it is safety engineering40- **honest-degradation** — an unpatchable, end-of-life controller that cannot be fixed is a documented WARN with compensating controls, not a pretended PASS41- **dual-use-behavior-adjudication** — on an OT network, an engineering workstation issuing control commands is normal; malice is context (unexpected setpoint, off-hours, from the wrong host), not the command itself42- **detection-engineering** — OT detection is passive and protocol-aware (span ports, not agents; Modbus/DNP3/S7 semantics), because active probing is itself a hazard4344---4546## Step 1 — Rank the impact in the physical world, safety at the top4748Before any control decision, state the consequence hierarchy for *this* system, because49it determines what "secure" even means:5051- **Safety** — can a compromise or a security action cause physical harm (release,52 explosion, equipment destruction, injury)? A safety-instrumented system (SIS) that a53 control defeats or delays is the top of the risk stack, above any data concern.54- **Availability** — can it stop the process? Downtime in continuous processes is not an55 inconvenience; a restart may be slow, costly, or hazardous in itself.56- **Integrity** — a manipulated setpoint or spoofed sensor reading that drives the57 process to an unsafe state (the Stuxnet / Triton class), where the operator sees58 "normal" while reality diverges.59- **Confidentiality** — last, not first. Process data matters, but not at the cost of60 the three above.6162An assessment that opens with "we should encrypt the historian" before it has63characterized the safety and availability impact has imported the wrong ranking.6465---6667## Step 2 — Test every proposed control against availability and safety first6869For each IT-style control on the table, ask what it does to the process *before* asking70what it protects:7172- **Patching** — does applying it require a shutdown? Is the vendor's patch validated for73 this device and firmware? Is the controller so fragile or end-of-life that the patch74 risk exceeds the vuln risk? Patch cadence in OT is driven by maintenance windows and75 vendor validation, not by CVE date.76- **Scanning / active discovery** — can this device tolerate a scan, or will an77 unexpected packet crash a decades-old TCP stack? Prefer passive discovery; active78 probing is a hazard until proven safe on that exact model.79- **Agents / encryption / MFA** — will the endpoint even run an agent? Does encryption80 break a real-time loop's timing budget? Does MFA on an HMI block an operator during an81 emergency when seconds matter? A control that impedes emergency operation is a safety82 regression.8384A control that reduces a confidentiality risk while raising a safety or availability85risk is usually the wrong trade in OT. Name that trade explicitly.8687---8889## Step 3 — Verify the isolation you are assuming actually holds9091The "air gap" is the most over-claimed control in OT. Do not assume it; map it:9293- **Enumerate every crossing** — IT/OT firewalls and their real rules, historians and94 data diodes, jump hosts, vendor remote-access (cellular modems, TeamViewer, dial-up95 still exists), USB and laptop workflows, the engineering workstation that touches both96 worlds. IT/OT convergence has quietly bridged most "gaps."97- **Treat the crossing as the trust boundary** — the corporate network is untrusted from98 the OT side; the engineering workstation and the historian are the classic pivot99 points (assume-breach-modeling). Once inside, OT networks are typically flat,100 unauthenticated, and unencrypted by design — so a single crossing is often101 domain-wide on the process network.102- **If the gap is real, defend the few crossings hard rather than the many endpoints103 you cannot patch.** If it is not real, say so — a believed-but-false air gap is the104 worst of both worlds.105106---107108## Step 4 — Build compensating controls around what you cannot fix109110Much of OT cannot be patched, upgraded, or hardened without unacceptable process risk.111Honest degradation is the posture, not a failure:112113- **Segment and monitor instead of patch** — network zones/conduits (the Purdue model /114 IEC 62443 idea), tight allow-lists at the boundary, and *passive* protocol-aware115 monitoring that raises no traffic on the wire.116- **Protect the safety layer independently** — the SIS should be separated from the basic117 process control so that a compromise of the controllable layer cannot also defeat the118 system that would stop a runaway (the Triton lesson).119- **Document the residual risk as a WARN with a reason** — "controller X is end-of-life,120 unpatchable; compensating controls are segmentation + passive monitoring; residual121 risk accepted by process owner" is honest and auditable. A pretended-clean status on an122 unpatchable device is the dangerous lie.123124---125126## Step 5 — Detect and respond without becoming the incident127128Detection and IR in OT carry the same inversion:129130- **Passive, protocol-aware detection** — baseline the process traffic (Modbus, DNP3,131 S7, EtherNet/IP) and alert on the semantics: an unexpected setpoint change, a132 firmware download to a PLC, an engineering command from a host that never issues one133 (dual-use-behavior-adjudication, physical edition). No active agents on the process134 devices.135- **Containment cannot default to "isolate and reboot"** — pulling a controller offline136 or cutting the HMI may be more dangerous than the intrusion. Containment decisions run137 through the process/safety engineers, weighing the physical consequence138 (containment-under-uncertainty with a kinetic blast radius). The plant may need to run139 degraded, not stop.140141---142143## The one-line test144145If your OT recommendation would be uncritically correct on a corporate laptop — patch it146now, scan the subnet, force encryption, isolate and reboot — you have not threat-modeled147OT; you have pointed IT reflexes at a physical process. Re-rank with safety and148availability on top, and test each control by what it does to the process before what it149protects.