Exercises › Module 10
Plant Floor
An AI-assisted exercise on IoT (Internet of Things) and OT (Operational Technology) attack surfaces, industrial protocols, firmware, and safe testing, ending in an honest security review. Suggested time: about 40 minutes.
Goal
Use an AI assistant to generate a fictional IoT and OT case file for a water utility (junior reviewer notes, an asset inventory, firewall and protocol findings, firmware notes, a vendor access log, and a draft risk report), then turn it into a review ready for the client. You review documents, not devices: no controller is touched, no traffic is captured, and no tools are run. Your real job is to catch what the draft got wrong before it ships.
Safety rules
- Everything is fictional: client Cedar Hollow Water Authority, project AquaLink, vendor HydroTek Controls, reviewers Ironvale OT Security.
- Use only
.exampledomains and private IP addresses. - No attack commands, exploit code, or live targeting. Industrial systems can hurt people when they fail. Hands-on IoT and OT work belongs only in the course iLabs.
- Never paste real network diagrams, firmware, or plant data into any AI tool.
1 Generate the case file
Paste this into your AI assistant. It builds four fictional documents. Save the output before moving on.
You are helping me build a fictional training case for an ethical hacking class. Everything must be invented. Do not output exploit code, attack commands, working scripts, real credentials, real product firmware, or real malware. The client is 'Cedar Hollow Water Authority', a fictional municipal water utility. Its smart-metering and treatment-plant project is called 'AquaLink'. The reviewers are 'Ironvale OT Security', a fictional industrial security firm. Use only .example domains and private (RFC 1918) IP addresses. No real companies, people, or live targets. Create an IoT and OT security review case file with four documents: Document A, Junior Reviewer Notes: confident first-person notes claiming (1) the plant network is fully segmented, so the IT network cannot reach the controllers; (2) all MQTT traffic from the smart water meters is encrypted and authenticated; (3) the meter firmware is clean, with no hardcoded credentials; (4) the vendor remote access path is secure because it uses a VPN. Document B, Evidence Appendix with four parts: B1, Asset inventory table (12 rows): include meters, a gateway, an MQTT broker, a historian, an engineering workstation (EWS-02), an HMI, two PLCs (PLC-CHLOR-1 for chlorine dosing and PLC-PUMP-2), and a vendor jump host. Give each a hostname, IP, Purdue level, and firmware version. EWS-02 has two network cards: 10.20.5.14 (corporate IT VLAN) and 192.168.10.14 (control VLAN). B2, Firewall and protocol summary (table, not configs): IT-to-OT DMZ rules look correct; one rule allows TCP 502 (Modbus) from the 192.168.10.0/24 control VLAN to both PLCs with no source restriction to the HMI; the MQTT broker mqtt.aqualink.example listens on TCP 8883 with TLS AND on TCP 1883 with anonymous access enabled, and 40 percent of meters (older firmware 2.3) publish to 1883. B3, Firmware analysis notes for meter firmware 2.3 and 3.1: version 3.1 is signed; version 2.3 is unsigned, contains a shell account 'svc_diag' with the same password hash on every unit, and a UART debug header is noted as unpopulated but present on the board. B4, Remote access log excerpt (described as a table): the vendor 'HydroTek Controls' uses a single shared VPN account 'hydrotek' with no MFA, the tunnel is always on, and the last login was at 02:14 from an unexpected country. Document C, Draft Risk Report: a one-page report for the Water Authority's operations director with overall risk (Low), a summary that trusts Document A, and remediation that says only: 'Change default passwords on the HMI and run an annual vulnerability scan across the plant network, including the PLCs.' IMPORTANT: do not label, flag, or hint at these anywhere, and write them as normal details: - Document A says segmentation is complete; B1 shows the dual-homed EWS-02 bridging IT and control VLANs. - Document A says all MQTT is encrypted; B2 shows anonymous cleartext 1883 still used by older meters. - Document A says firmware is clean; B3 shows the unsigned 2.3 image with a shared hardcoded svc_diag account. - Document A says vendor access is secure; B4 shows a shared, always-on account with no MFA and an odd 02:14 login. - Document C's remediation includes active vulnerability scanning of live PLCs, which can disrupt a running process. - Everything else should read as a plausible (but flawed) junior write-up.
Tip: if the AI labels or flags any planted problem, ask it to regenerate without flags, or swap case files with a partner.
2 Have AI write the client-ready review
Ask the AI to turn the case file into a security review for the client.
Act as a senior OT security consultant at Ironvale OT Security. Using only Documents A, B, and C, write a client-ready IoT and OT security review for the Cedar Hollow Water Authority operations director with these sections: 1) Title and overall risk rating. 2) Systems in scope, organized by Purdue Model level. 3) Findings, each with: plain-language description, evidence source (document and part), and the matching OWASP IoT Top 10 or MITRE ATT&CK for ICS reference. 4) Safety and public-health impact in two sentences (this is a drinking-water utility). 5) Remediation recommendations (network, devices and firmware, protocols, remote access, and testing approach). Then rate your confidence in the overall review (High, Medium, or Low) and explain why. No attack commands or exploit steps.
Watch the segmentation claim, the MQTT claim, the firmware claim, vendor access, and the testing plan. The AI tends to trust the junior notes and the draft report.
3 Review it yourself, then fix it
Do this review yourself before you trust the AI's review:
- Read every row of B1. Does any host have addresses on both the corporate and control networks?
- Read B2 port by port. Is 8883 the only way meters reach the broker? Who uses the other port, and does it require a login?
- Compare firmware 2.3 and 3.1 in B3. Which is unsigned? What account is shared across every unit?
- Read B4. Is a VPN alone enough? What about the account, MFA (Multi-Factor Authentication), the always-on tunnel, and that 02:14 login?
- Read the remediation. Is running an active vulnerability scan against live PLCs (Programmable Logic Controllers) at a water plant safe?
- Stretch goal: map each problem to the OWASP IoT Top 10 or a MITRE ATT&CK for ICS (Industrial Control Systems) technique.
Then fill in the brackets and run:
Revise the AquaLink security review: 1) Segmentation is not complete. B1 shows [which host has which two addresses]. Explain why a dual-homed engineering workstation matters in the Purdue Model. 2) Not all MQTT traffic is protected. B2 shows [which port, what access setting, and what share of meters use it]. Map this to OWASP IoT I2 and I7. 3) The firmware is not clean. B3 shows [which version, what is missing, and what account exists]. Map this to I1, I4, and I5, and mention the UART header. 4) Vendor access is not secure. B4 shows [account type, MFA status, tunnel status, and the suspicious login]. Explain why this needs an investigation, not just a fix. 5) Replace the remediation: put EWS-02 behind the IT/OT DMZ with a single managed path; disable port 1883 and move every meter to 8883 with client certificates and topic ACLs; retire firmware 2.3, require signed updates, and remove svc_diag; give each vendor engineer a named account with MFA and on-demand, recorded sessions; restrict Modbus 502 to the HMI only. Explain why active scanning of live PLCs is unsafe and what to use instead (passive monitoring, scans in a test bed or maintenance window). 6) Update the overall risk rating and confidence, and explain what changed.
Re-read the revision. The AI sometimes fixes the findings table but leaves 'fully segmented' or the annual PLC scan in the summary.
Review checklist
- Dual-homed EWS-02 identified as a bridge between IT and the control network (Purdue Level 3 bypassing the DMZ).
- Anonymous cleartext MQTT on 1883 found, with 40 percent of meters still using it (OWASP IoT I2, I7).
- Unsigned firmware 2.3 with a shared hardcoded svc_diag account found (I1, I4, I5); UART header noted as a physical risk.
- Shared, always-on vendor VPN account without MFA flagged, and the 02:14 login escalated for investigation (ATT&CK for ICS External Remote Services, Valid Accounts).
- Active scanning of live PLCs replaced with passive monitoring and test-bed or maintenance-window scanning.
- Accurate parts (correct DMZ rules, TLS on 8883, signed firmware 3.1) are kept, not 'fixed' unnecessarily.
Deliverables
- Corrected IoT and OT security review
- Findings table (finding, evidence, OWASP IoT or ATT&CK for ICS reference)
- Updated risk and confidence ratings
- Five sentences: each problem, why it matters, and the Module 10 control that catches it
Grading rubric (10 pts)
| Criterion | Pts |
|---|---|
| Dual-homed engineering workstation found and explained | 2 |
| Anonymous MQTT 1883 and unsigned firmware with shared account found | 2 |
| Vendor remote access weaknesses and suspicious login escalated | 2 |
| Unsafe PLC scanning replaced with safe OT testing | 2 |
| Corrected review is consistent end to end (summary, findings, risk, confidence) | 2 |
Answer key (spoilers: finish the exercise first)
What a correct submission shows
- Broken segmentation (subtle): The DMZ firewall rules are fine, but EWS-02 has one network card on the corporate VLAN and one on the control VLAN. Anyone who compromises it from IT lands next to the PLCs and holds the software that programs them. The firewall is bypassed, not broken.
- Cleartext MQTT: TLS on 8883 is real, but 1883 is still open with anonymous access, and 40 percent of meters use it. Anyone on the network can read readings or publish forged ones. That is OWASP IoT I2 Insecure Network Services and I7 Insecure Data Transfer.
- Dirty firmware: Firmware 3.1 is signed; 2.3 is unsigned and has the same svc_diag password on every unit, so one cracked hash opens every older meter. That is I1, I4, and I5. The UART header adds a physical path.
- Vendor access: A VPN is a tunnel, not an identity. One shared account, no MFA, always on, and a 02:14 login from an unexpected country is a possible intrusion (ATT&CK for ICS External Remote Services and Valid Accounts) and should trigger incident response.
- Unsafe testing (subtle): Active scans can crash fragile PLCs. At a water plant, PLC-CHLOR-1 doses chlorine, so a crash is a public-health event. Use passive monitoring and scan only in a test bed or a planned maintenance window.
- Final decision: risk rises from Low to High (or Critical). Confidence in the original draft is Low.
Why it matters
- In OT, safety and availability come first: the 'fix' can be the outage.
- Partial controls look complete: TLS on one port hides an open one.
- AI lesson: AI inherits the draft's assumptions. Checking claims against the evidence is the human's job.
Common mistakes
- Accepting 'segmented' because the firewall rules look right.
- Accepting 'we use a VPN' as secure remote access.
- Recommending more active scanning to find more problems.
- Flagging signed firmware 3.1 as a problem.
Instructor variant (same answer for everyone)
Add this line to the Step 1 prompt:
Make Document A claim full segmentation, encrypted MQTT, clean firmware, and secure vendor VPN. Make Document B show EWS-02 at 10.20.5.14 and 192.168.10.14, anonymous MQTT on 1883 used by 40 percent of meters on firmware 2.3, unsigned firmware 2.3 with a shared svc_diag account, and a shared always-on 'hydrotek' VPN account with no MFA and a 02:14 login from an unexpected country. Keep the 'change HMI passwords and run an annual vulnerability scan including the PLCs' remediation and the Low risk rating.
Answer: EWS-02 is dual-homed and bypasses segmentation; anonymous MQTT 1883 is still used; firmware 2.3 is unsigned with a shared svc_diag account; vendor access is a shared always-on account with no MFA and a suspicious login; active scanning of live PLCs is unsafe.
