Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Operational Technology and industrial control system security — Purdue model segmentation, industrial protocol analysis (Modbus, DNP3, S7, EtherNet/IP), PLC/HMI exposure, IEC 62443 alignment, and MITRE ATT&CK for ICS, for authorized and safety-conscious assessments
.claude/skills/masriyan-ot-ics-scada-security/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-17 | ✗→✓ | ▲ Improved | 145% | 0% |
| case-05 | ✓→✓ | = Same ✓ | 99% | 0% |
| case-06 | ✓→✓ | = Same ✓ | 25% | 0% |
| case-04 | ✓→✓ | = Same ✓ | 73% | 0% |
| case-07 | ✓→✓ | = Same ✓ | 116% | 0% |
Enable Claude to assess Operational Technology (OT) and Industrial Control System (ICS) environments — PLCs, RTUs, HMIs, SCADA servers, historians, and field devices — with safety as the first constraint. Claude reasons about the Purdue/ISA-95 model, analyzes industrial protocols passively, maps adversary behavior to MITRE ATT&CK for ICS, and aligns recommendations to IEC 62443 and the NIST SP 800-82 guidance.
> SAFETY & AUTHORIZATION — READ FIRST: OT systems control physical processes; a crashed PLC can mean equipment damage, environmental release, or loss of life. Default to passive, non-intrusive methods. Never send active scans, writes, or protocol fuzzing to production OT without written authorization, asset-owner sign-off, and a tested rollback/safety plan — ideally on a test bench or during a maintenance window. Confirm scope and the "do-no-harm" boundary before proceeding.
This skill activates when the user asks about:
bashpip install requests pyyaml # Protocol libraries (lab use): pip install pymodbus scapy
Optional enhanced capabilities:
tshark with ICS dissectors (Modbus, DNP3, S7, ENIP, GOOSE)nmap ICS NSE scripts (use read-only scripts only, with care)When asked to review OT architecture, map assets to Purdue levels and assess the boundaries:
| Level | Zone | Assets | Key control | |-------|------|--------|-------------| | 4–5 | Enterprise / IT | ERP, business network, internet | Should never directly reach L0–L2 | | 3.5 | IDMZ | Jump hosts, patch/AV relays, historian replica | Brokered, inspected IT↔OT traffic only | | 3 | Operations | SCADA servers, historians, engineering WS | Hardened, monitored | | 2 | Supervisory | HMIs, control servers | | | 1 | Control | PLCs, RTUs, IEDs | | | 0 | Process | Sensors, actuators, drives | |
Flag: missing IDMZ, flat IT/OT networks, dual-homed engineering workstations, remote vendor access bypassing the DMZ, and any direct path from L4/L5 to L0–L2.
Prefer reading a SPAN/TAP capture over active probing. From a PCAP, identify:
None, anonymous sessions.Note that most ICS protocols have no authentication or encryption by design — any reachable client can issue commands. Use scripts/ics_protocol_analyzer.py to summarize an exported PCAP and flag write/control operations and unexpected talkers.
port:502 product:Modbus, port:20000 source address, tag:ics, "Siemens, SIMATIC", port:47808, "Schneider Electric".nmap NSE (modbus-discover, s7-info, bacnet-info, enip-info) with low rate, never against safety-instrumented systems (SIS).Map plausible adversary paths using the ICS matrix tactics: Initial Access → Execution → Persistence → Evasion → Discovery → Lateral Movement → Collection → Command-and-Control → Inhibit Response Function → Impair Process Control → Impact. Reference high-signal techniques (e.g., T0883 Internet-Accessible Device, T0836 Modify Parameter, T0831 Manipulation of Control, T0814 Denial of Service, T0816 Device Restart/Shutdown). Anchor scenarios to real tradecraft (Stuxnet, TRITON/TRISIS targeting SIS, Industroyer/CRASHOVERRIDE, PIPEDREAM/INCONTROLLER).
markdown# OT/ICS Security Assessment — [Site / System] Date: [Date] | Scope: [Zones/Assets] | Method: [Passive/Active] | Analyst: [Name] Safety constraints honored: [yes — passive only / window used / etc.] ## Executive Summary [Posture, top safety-relevant risks] ## Purdue / Zone-Conduit Map [Levels, boundaries, IDMZ status] ## Findings ### [O-01] Modbus writes reachable from IT VLAN (Critical) - ATT&CK ICS: T0883, T0836 | IEC 62443 FR5 - Evidence: [pcap flow IT-host → PLC FC16] - Process impact: [what physical effect is possible] - Remediation: [conduit/firewall rule, IDMZ broker, read-only segmentation] ## IEC 62443 Zone/SL Recommendations | Zone | Current SL | Target SL | Gap | ## Prioritized Remediation (safety-weighted)
ics_protocol_analyzer.pybash# Summarize an exported PCAP CSV/JSON (from tshark) and flag control/write ops tshark -r capture.pcap -T json > capture.json python scripts/ics_protocol_analyzer.py --input capture.json --output ics_report.json # Generate Shodan/Censys exposure dorks for a vendor/protocol set python scripts/ics_protocol_analyzer.py --dorks --vendor siemens --output dorks.txt
| Next Step | Condition | Target Skill | |-----------|-----------|--------------| | Deep PCAP / IDS rules | Network capture available | → Skill 08 | | Firmware / device RE | PLC/RTU firmware obtained | → Skill 04 | | OT incident handling | Active incident | → Skill 07 | | Detection content | SIEM/OT-monitoring rules needed | → Skill 12 | | IT-side segmentation hardening | IT/OT boundary hosts | → Skill 15 |
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-05 | pass→pass | 14,492 | 15,098 | +4% | 1 | 1 | 0% | 2,354 | 4,693 | +99% | 0 | 0 | — |
case-06 | pass→pass | 22,810 | 15,227 | -33% | 1 | 1 | 0% | 3,843 | 4,819 | +25% | 0 | 0 | — |
case-01 | fail→fail | 28,554 | 37,065 | +30% | 1 | 1 | 0% | 3,339 | 7,020 | +110% | 0 | 0 | — |
case-02 | fail→fail | 38,212 | 37,554 | -2% | 1 | 1 | 0% | 6,216 | 8,496 | +37% | 0 | 0 | — |
case-03 | fail→fail | 23,709 | 37,629 | +59% | 1 | 1 | 0% | 3,189 | 8,512 | +167% | 0 | 0 | — |
case-04 | pass→pass | 19,922 | 23,043 | +16% | 1 | 1 | 0% | 3,634 | 6,274 | +73% | 0 | 0 | — |
case-07 | pass→pass | 13,404 | 13,808 | +3% | 1 | 1 | 0% | 1,962 | 4,231 | +116% | 0 | 0 | — |
case-08 | pass→pass | 16,027 | 16,472 | +3% | 1 | 1 | 0% | 2,582 | 4,934 | +91% | 0 | 0 | — |
case-09 | pass→pass | 12,695 | 15,917 | +25% | 1 | 1 | 0% | 1,986 | 4,722 | +138% | 0 | 0 | — |
case-10 | pass→pass | 15,022 | 15,285 | +2% | 1 | 1 | 0% | 2,251 | 4,368 | +94% | 0 | 0 | — |
case-11 | pass→pass | 9,813 | 9,589 | -2% | 1 | 1 | 0% | 1,692 | 3,813 | +125% | 0 | 0 | — |
case-12 | pass→pass | 8,854 | 11,273 | +27% | 1 | 1 | 0% | 1,343 | 3,926 | +192% | 0 | 0 | — |
case-13 | pass→pass | 14,123 | 16,035 | +14% | 1 | 1 | 0% | 2,270 | 4,783 | +111% | 0 | 0 | — |
case-14 | pass→pass | 17,012 | 14,773 | -13% | 1 | 1 | 0% | 2,601 | 4,478 | +72% | 0 | 0 | — |
case-15 | pass→pass | 6,073 | 7,890 | +30% | 1 | 1 | 0% | 1,012 | 3,527 | +249% | 0 | 0 | — |
case-16 | pass→pass | 21,785 | 22,285 | +2% | 1 | 1 | 0% | 3,176 | 5,913 | +86% | 0 | 0 | — |
case-17 | fail→pass | 13,675 | 18,676 | +37% | 1 | 1 | 0% | 2,122 | 5,192 | +145% | 0 | 0 | — |
case-18 | pass→pass | 9,847 | 12,673 | +29% | 1 | 1 | 0% | 1,482 | 4,140 | +179% | 0 | 0 | — |
case-19 | pass→pass | 12,780 | 10,485 | -18% | 1 | 1 | 0% | 1,959 | 3,939 | +101% | 0 | 0 | — |
case-20 | pass→pass | 9,659 | 14,406 | +49% | 1 | 1 | 0% | 1,497 | 4,487 | +200% | 0 | 0 | — |
case-21 | pass→pass | 5,131 | 6,941 | +35% | 1 | 1 | 0% | 792 | 3,338 | +321% | 0 | 0 | — |
case-22 | pass→pass | 19,006 | 31,897 | +68% | 1 | 1 | 0% | 2,781 | 7,358 | +165% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +5 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.