OpenCyber Academy
Engineering · Chapter 12 · English
Course code: OCA-137Chapter 12: OCA-137-C012

Chapter 12 — Operating systems

Open, free learning for anyone who wants to protect people and technology. No account is required to read this text or its worked answers.

Lesson map

Lesson 12 published. Map, example, EX034.

flowchart TD
  N0["Learning outcomes"]
  N1["12.1 Workstations are part of the control system"]
  N2["12.2 Least privilege for engineers"]
  N3["12.3 Patch windows"]
  N4["Practice note"]
  N5["12.1b Image and offline analysis"]
  N6["Synthesis"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6
  N6 --> EX["Worked example"]
  EX --> Q["Exercise EX034"]

Logical drawing

flowchart LR
  N0["Learning outcomes"]
  N1["12.1 Workstations are part of the control system"]
  N2["12.2 Least privilege for engineers"]
  N3["12.3 Patch windows"]
  N4["Practice note"]
  N5["12.1b Image and offline analysis"]
  N6["Synthesis"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> Q["EX034"]
[Learning outcomes]
    |
    v
[12.1 Workstations are part of the control system]
    |
    v
[12.2 Least privilege for engineers]
    |
    v
[12.3 Patch windows]
    |
    v
[Practice note]
    |
    v
[12.1b Image and offline analysis]
    |
    v
[Synthesis]
    |
    v
[Worked example] --> [Exercise EX034]

Learning outcomes

You will (1) harden HMI and engineering workstations without breaking control; (2) collect OS evidence under least privilege; (3) plan patching inside maintenance windows.

12.1 Workstations are part of the control system

HMIs and engineering workstations often run general-purpose OSes with decades of legacy software. Treating them as just PCs is how malware walks into L2. Hardening baselines (application allow-listing, local admin removal, USB control) must be tested against the HMI vendor's support matrix — an unsupported hardening change that blanks a screen during a batch is an availability incident.

At ABP, Lena tests each hardening change on a bench HMI running the same vendor version before it reaches the control room, and records which items the vendor supports.

12.2 Least privilege for engineers

Named accounts, time-boxed admin rights, logged elevations. Shared engineer passwords are still common and still wrong: they destroy attribution and linger after contractors leave. Findings about shared passwords are configuration findings, not invitations to crack hashes.

At ABP, the shared engineer password on eng-WS-1 is replaced with named accounts, and each elevation is logged with the person and the reason. Contractors receive accounts that expire at the end of their work order. Lena reports shared passwords from the configuration and the account list, never by testing them.

12.3 Patch windows

OT patches land in maintenance windows, not on Patch Tuesday. Fit jobs by risk into the available hours; defer what does not fit rather than overrunning into production.

"""Lab: fit patch jobs into plant maintenance windows (synthetic, greedy by risk)."""
windows = [("W1 Sat 02-06", 4.0), ("W2 Sun 02-04", 2.0)]
jobs = [("HMI OS update", 1.5, 8), ("historian DB patch", 2.5, 5), ("PLC-A firmware", 3.0, 9),
        ("eng-WS AV update", 0.5, 3), ("switch firmware", 1.0, 6)]   # name, hours, risk score
left = {w: h for w, h in windows}; plan = {w: [] for w, _ in windows}; deferred = []
for name, h, r in sorted(jobs, key=lambda j: -j[2]):
    for w, _ in windows:
        if left[w] >= h:
            left[w] -= h; plan[w].append(name); break
    else:
        deferred.append(name)
for w, _ in windows:
    print(w, plan[w], f"spare={left[w]:.1f}h")
print("deferred:", deferred)

Expected output:

W1 Sat 02-06 ['PLC-A firmware', 'switch firmware'] spare=0.0h
W2 Sun 02-04 ['HMI OS update', 'eng-WS AV update'] spare=0.0h
deferred: ['historian DB patch']

Synthetic case — Ashford Batch Plant. The patch lab deferred the historian DB patch because W1 and W2 were full with higher-risk PLC and HMI work. Lena scheduled a dedicated window the next month instead of squeezing it into Sunday morning.

Each deferred job keeps its ticket and date. Deferrals are reviewed monthly.

12.4 Errors and limits

Do not disable antivirus or allow-listing to make the vendor happy without a written exception and compensating monitoring. Offline plants still need media control.

When the HMI vendor asks for an exception, Lena records which protection is relaxed, on which host, for how long, and what monitoring replaces it. The exception has an owner and an expiry date. Offline hosts still receive media through a scanning station and a logged transfer, since USB sticks are the usual route into an isolated network.

Practice note

Every deferred patch gets a ticket with residual risk and a date. Deferred-without-date is how decade-old HMI OS images survive. Review the deferred list in the same meeting that plans the next window.

12.1b Image and offline analysis

Full-disk images of HMIs are high impact: they take systems offline, may contain proprietary recipes and tempt out-of-scope browsing. Prefer live, least-privilege reads and configuration exports. If an image is truly required, the work permit must name chain-of-custody, encryption at rest, who may mount it, and a destroy-by date — and the course labs still do not practice imaging real hosts. Offline plants still need media control; air gaps that hide USB and cellular modems are not air gaps.

Lena has never needed a full image at ABP.

Exercises

Synthesis

Harden and patch workstations as if they were controllers — because for malware, they are the door.

Continue studying — chapter 12 of 50

← Chapter 11 (draft) · Course chapter index · Chapter 13 (draft) →

Worked answers

EX034. Named engineer accounts; admin rights via checked-out time-boxed group membership; all logic downloads logged; second person approves downloads to SIS and to production PLC outside a window.

EX035. historian DB patch (2.5 h, risk 5) deferred — W1 took PLC-A firmware and switch firmware; W2 took HMI OS and eng-WS AV; no spare hours.

EX036. Vendor USB allowed on eng-WS-2 only, 14 Mar 09:00-12:00, media scanned on a stand-alone kiosk, session video-logged; port disabled afterward.