Add OPC-UA server detection auxiliary scanner module#21612
Open
ethan-thomason wants to merge 1 commit into
Open
Add OPC-UA server detection auxiliary scanner module#21612ethan-thomason wants to merge 1 commit into
ethan-thomason wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds
auxiliary/scanner/scada/opcua_enum, a scanner module that detects OPC-UA servers speaking the OPC-UA TCP binary transport (opc.tcp://). OPC-UA (IEC 62541) is the dominant interoperability standard across industrial automation — PLCs, SCADA platforms, historians, and gateway products — and is currently unrepresented in the framework. Thescada/scanner directory covers Modbus, BACnet, Profinet, Digi, Moxa, and Koyo, but has no OPC-UA coverage. Agrep -ril "opc" modules/returns nothing.How it works
The module sends an OPC-UA Hello (HEL) message and inspects the response per OPC-UA Specification Part 6 (Connection Protocol message framing):
Detected servers are recorded in the database as an
opc-uaservice.Notes for reviewers
pack/unpack, in the style of the existingiec104andmodbusdetectmodules. No gems added.CRASH_SAFE— a single HEL probe is a read-only fingerprint; it does not open a secure channel or session.Testing
rubocop— cleantools/dev/msftidy.rb— cleanFuture work
This v1 is deliberately a minimal detection probe (mirroring
modbusdetect's scope). Follow-up PRs will add OPC-UAGetEndpointsenumeration (security policies, endpoint listing) and anonymous-session checks.