Extends the ICS probe (#148, tracker #167) with OPC UA (port 4840) — a common
CODESYS runtime service.
pipeline::ics::opcua — a minimal read-only UACP handshake (Hello → Ack/Err)
that confirms an OPC UA server is listening. No secure channel / service calls.
probe_target now checks Modbus/TCP + OPC UA (no longer early-returns when
Modbus is absent); emits ics-opcua-exposed (Medium, CWE-319) whose description
flags the common insecure default (SecurityPolicy None + Anonymous).
Deep SecurityPolicy / user-token analysis (via a full OPC UA stack) is a noted
follow-on. Unit-tested against an in-process mock OPC UA server. All suites green;
clippy + -D warnings test build clean.
Extends the ICS probe (#148, tracker #167) with **OPC UA** (port 4840) — a common
CODESYS runtime service.
- `pipeline::ics::opcua` — a minimal **read-only** UACP handshake (Hello → Ack/Err)
that confirms an OPC UA server is listening. No secure channel / service calls.
- `probe_target` now checks **Modbus/TCP + OPC UA** (no longer early-returns when
Modbus is absent); emits `ics-opcua-exposed` (Medium, CWE-319) whose description
flags the common insecure default (**SecurityPolicy None + Anonymous**).
Deep SecurityPolicy / user-token analysis (via a full OPC UA stack) is a noted
follow-on. Unit-tested against an in-process mock OPC UA server. All suites green;
clippy + `-D warnings` test build clean.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Extends the ICS probe with OPC UA (port 4840), a common CODESYS runtime service.
A read-only UACP handshake (Hello → Ack/Err) confirms an OPC UA server is
listening and flags it for review — the finding notes the common insecure default
(SecurityPolicy None + Anonymous user token) that allows unauthenticated,
unencrypted access.
- pipeline::ics::opcua — minimal UACP Hello/Ack probe (no secure channel).
- probe_target now checks Modbus/TCP + OPC UA (no longer early-returns on
no-Modbus); emits `ics-opcua-exposed` (Medium, CWE-319).
Deep SecurityPolicy / user-token analysis via a full OPC UA stack is a follow-on.
Unit-tested against an in-process mock OPC UA server. Tracker #167.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
sharang
merged commit b96c4d594c into main2026-07-16 16:35:55 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Extends the ICS probe (#148, tracker #167) with OPC UA (port 4840) — a common
CODESYS runtime service.
pipeline::ics::opcua— a minimal read-only UACP handshake (Hello → Ack/Err)that confirms an OPC UA server is listening. No secure channel / service calls.
probe_targetnow checks Modbus/TCP + OPC UA (no longer early-returns whenModbus is absent); emits
ics-opcua-exposed(Medium, CWE-319) whose descriptionflags the common insecure default (SecurityPolicy None + Anonymous).
Deep SecurityPolicy / user-token analysis (via a full OPC UA stack) is a noted
follow-on. Unit-tested against an in-process mock OPC UA server. All suites green;
clippy +
-D warningstest build clean.🤖 Generated with Claude Code