OPC Classic vs OPC UA Security
OPC (OLE for Process Control) is the dominant standard for ICS data exchange between SCADA servers, historians, and PLCs. OPC Classic (1996) is built on Windows DCOM/RPC — a complex, historically vulnerable middleware that introduces a large attack surface. OPC UA (Unified Architecture, 2006) replaced DCOM with a platform-independent stack and added TLS transport security and X.509 certificate authentication.
OPC Classic — DCOM Attack Surface
OPC Classic requires Windows DCOM (Distributed COM) which opens dynamic RPC ports (typically 1024–65535) in addition to port 135. This makes firewall policy nearly impossible to enforce at a protocol level. Known DCOM vulnerabilities include:
- MS03-026 — RPC buffer overflow exploited by Blaster/Lovsan worm (2003)
- MS08-067 — Conficker worm used DCOM/RPC for lateral movement through OT networks
- Dynamic port ranges — DCOM callbacks use unpredictable high ports, defeating stateful firewall rules
- Authentication bypass — Several DCOM impersonation vulnerabilities allow privilege escalation on OPC servers
Industroyer/Crashoverride (Ukraine 2016) included an OPC DA (Data Access) module specifically to interact with OPC servers at power substation control networks.
OPC UA — Security Architecture
OPC UA uses a dedicated binary TCP protocol (port 4840) or HTTPS (port 443), eliminating DCOM entirely. Security is built into the specification:
| Feature | OPC Classic | OPC UA |
|---|---|---|
| Transport | DCOM/RPC (dynamic ports) | Binary TCP (4840) or HTTPS (443) |
| Authentication | Windows NTLM/Kerberos | X.509 certificates or username/password |
| Encryption | None in protocol | TLS 1.3 (Basic256Sha256 security policy) |
| Message signing | No | Yes — HMAC per message |
| Platform | Windows only | Cross-platform |
OPC UA Security Modes
- None — no security (default in many deployments, same exposure as OPC Classic)
- Sign — messages are signed but not encrypted
- SignAndEncrypt — TLS with message signing; required for production OT environments
Defences
| Control | SR | Action |
|---|---|---|
| Migrate to OPC UA | SR 3.1 | Eliminate DCOM attack surface entirely |
| Enforce SignAndEncrypt | SR 4.1 | TLS + message signing on all UA sessions |
| Certificate management | SR 1.8 | PKI with short-lived certificates, CRL enforcement |
| Firewall port 4840 | SR 5.2 | Allow only SCADA server IPs to reach UA port |
Compare OPC Classic DCOM architecture against OPC UA's security stack and simulate the DCOM exploitation path used in Industroyer.
Open OPC Protocol Lab →