OPC Classic/DA - protokół DCOM w automatyce przemysłowej. Bezpieczeństwo i segmentacja
OPC Classic (OPC DA) oparty na DCOM - port 135 i porty dynamiczne, słabe bezpieczeństwo, problemy z firewallami. Dlaczego jest zastępowany przez OPC UA i jak zabezpieczyć istniejące wdrożenia.
OPC Classic (Open Platform Communications, dawniej OLE for Process Control) to rodzina protokołów komunikacji przemysłowej opracowana w latach 90. przez OPC Foundation. Najszerzej stosowaną specyfikacją jest OPC DA (Data Access) - służąca do wymiany danych procesowych w czasie rzeczywistym między systemami SCADA, HMI, historiami procesowymi i sterownikami PLC. OPC Classic zbudowano na technologii Microsoft DCOM (Distributed Component Object Model), co w momencie powstania było pragmatycznym wyborem, ale z perspektywy bezpieczeństwa okazało się decyzją o długotrwałych konsekwencjach.
Mimo oficjalnego zastąpienia przez OPC UA (Unified Architecture) w 2008 roku, OPC Classic pozostaje szeroko wdrożony w instalacjach przemysłowych na całym świecie. Migracja do OPC UA wymaga wymiany oprogramowania i często sprzętu - proces, który w wielu zakładach potrwa jeszcze lata.
Architektura i mechanizm DCOM
Czym jest DCOM
DCOM to rozszerzenie modelu COM (Component Object Model) firmy Microsoft, umożliwiające komunikację między obiektami na różnych komputerach w sieci Windows. W kontekście OPC Classic:
- Serwer OPC - aplikacja Windows uruchomiona na komputerze podłączonym do sterowników PLC (przez sterownik komunikacyjny producenta). Udostępnia dane procesowe jako obiekty COM.
- Klient OPC - aplikacja SCADA, HMI lub historian, która łączy się ze zdalnym serwerem OPC przez DCOM.
Mechanizm połączenia
Nawiązanie sesji OPC Classic/DCOM przebiega następująco:
- Klient kontaktuje się z usługą RPC Endpoint Mapper na serwerze (port TCP 135)
- Endpoint Mapper zwraca dynamicznie przydzielony port TCP, na którym nasłuchuje żądany serwer OPC
- Klient nawiązuje połączenie na porcie dynamicznym (domyślny zakres: 1024-65535)
- Dalsze wywołania DCOM (odczyt/zapis wartości, subskrypcje) odbywają się przez ten port
Problem jest oczywisty: każda sesja DCOM może używać innego portu z zakresu tysięcy portów. To sprawia, że konfiguracja firewalla staje się poważnym wyzwaniem.
Parametry techniczne
| Parametr | Wartość |
|---|---|
| Warstwa modelu OSI | 4-7 (TCP/IP + DCOM/RPC) |
| Port - Endpoint Mapper | TCP 135 |
| Porty - sesje DCOM | Dynamiczne (domyślnie 1024-65535, konfigurowalny zakres) |
| Protokół transportowy | Microsoft RPC over TCP |
| Uwierzytelnianie | NTLM / Kerberos (konfiguracja DCOM Security) |
| Szyfrowanie | Opcjonalne (RPC Packet Privacy), rzadko włączane |
| System operacyjny | Wyłącznie Windows |
| Organizacja standaryzująca | OPC Foundation |
| Status | Zastąpiony przez OPC UA (2008), ale nadal szeroko stosowany |
Ocena bezpieczeństwa
OPC Classic/DCOM jest powszechnie uznawany za jeden z najtrudniejszych do zabezpieczenia protokołów w środowiskach OT. Problemy wynikają zarówno z architektury DCOM, jak i z praktyki wdrożeniowej.
Dynamiczne porty - koszmar firewalla
Domyślna konfiguracja DCOM używa portów z zakresu 1024-65535. W praktyce oznacza to, że administratorzy albo otwierają cały zakres na firewallu (przekreślając sens segmentacji), albo konfigurują ograniczony zakres portów w rejestrze Windows - co wymaga zmian na każdym serwerze OPC i każdym kliencie.
TIP
Jeśli musisz utrzymywać OPC Classic, skonfiguruj stały zakres portów DCOM w rejestrze Windows (klucz HKLM\Software\Microsoft\Rpc\Internet). Zalecany zakres: 100-200 portów (np. 49152-49352). Następnie otwórz na firewallu wyłącznie TCP 135 + ten zakres. To nie rozwiązuje problemu bezpieczeństwa DCOM, ale ogranicza powierzchnię ataku.
Uwierzytelnianie DCOM - teoria vs. praktyka
DCOM obsługuje uwierzytelnianie NTLM i Kerberos oraz różne poziomy ochrony pakietów (od braku ochrony po szyfrowanie). W teorii można skonfigurować OPC Classic tak, aby wymagał silnego uwierzytelniania i szyfrowania.
W praktyce wygląda to inaczej:
- Wielu producentów serwerów OPC zalecało obniżenie poziomu bezpieczeństwa DCOM, aby “rozwiązać problemy z połączeniem”
- Konfiguracja DCOM Security wymaga precyzyjnego ustawienia uprawnień na poziomie systemu operacyjnego, komponentów COM i aplikacji - co jest skomplikowane i podatne na błędy
- W środowiskach wielovendorowych (klient OPC jednego producenta, serwer OPC innego) problemy z uwierzytelnianiem DCOM są tak częste, że wielu integratorów ustawia minimalne zabezpieczenia
- Starsze systemy Windows (XP, Server 2003), wciąż obecne w instalacjach OT, mają ograniczone możliwości konfiguracji DCOM Security
DCOM jako wektor ataku
Port TCP 135 (RPC Endpoint Mapper) jest jednym z najczęściej atakowanych portów w systemach Windows. Liczne exploity historyczne (MS03-026 “Blaster”, MS08-067 “Conficker”) wykorzystywały usługę RPC. Nawet jeśli współczesne systemy Windows są odporne na te konkretne exploity, otwarty port 135 pozostaje cennym celem rozpoznania - pozwala enumować usługi RPC, obiekty COM i potencjalne wektory ataku.
TIP
Skaner OPC Expert (dawniej OPC Analyzer) oraz narzędzia takie jak Wireshark z disektorem OPC DA pozwalają na audyt ruchu OPC Classic w sieci. Warto przeprowadzić taki audyt, aby zidentyfikować wszystkie aktywne sesje DCOM i zweryfikować, czy uwierzytelnianie jest faktycznie wymagane.
Brak obsługi poza Windows
OPC Classic działa wyłącznie na platformie Windows, ponieważ DCOM jest technologią Microsoft. Oznacza to, że każdy serwer i klient OPC Classic to maszyna Windows ze wszystkimi konsekwencjami - aktualizacje OS, zarządzanie kontami, ekspozycja na malware targetujący Windows.
Segmentacja sieci z OPC Classic
Segmentacja sieci zawierającej OPC Classic wymaga szczególnej uwagi ze względu na dynamiczne porty i zależność od infrastruktury Windows.
Zalecenia praktyczne
-
Ograniczenie zakresu portów DCOM - skonfiguruj stały zakres portów w rejestrze Windows na każdym serwerze i kliencie OPC. Dokumentuj te zakresy centralnie.
-
Reguły firewalla: TCP 135 + zakres dynamiczny - zezwalaj na TCP 135 i skonfigurowany zakres portów wyłącznie między konkretnymi parami adresów IP (klient-serwer). Blokuj ruch OPC z/do każdego innego źródła.
-
OPC tunneling jako alternatywa - produkty takie jak Matrikon OPC Tunneller, Kepware LinkMaster czy Softing dataFEED enkapsulują ruch OPC Classic w pojedynczym tunelu TCP na ustalonym porcie. Eliminuje to problem dynamicznych portów i upraszcza konfigurację firewalla. To zalecane podejście przejściowe.
-
Strefa DMZ dla serwerów OPC - serwer OPC, który udostępnia dane z sieci OT do systemów IT (historian, MES), powinien znajdować się w strefie DMZ. Klient OPC w IT łączy się z serwerem w DMZ, a nie bezpośrednio z serwerem w strefie OT.
-
Hardening Windows - minimalizacja usług, blokada zbędnych portów, GPO ograniczające zdalny dostęp DCOM, wyłączenie anonimowego dostępu do RPC Endpoint Mapper.
-
Plan migracji do OPC UA - OPC UA rozwiązuje fundamentalne problemy OPC Classic: działa na jednym konfigurowalnym porcie (domyślnie TCP 4840), obsługuje TLS, uwierzytelnianie certyfikatami X.509 i jest wieloplatformowy. Dla każdego istniejącego wdrożenia OPC Classic warto przygotować harmonogram migracji.
-
Monitoring sesji DCOM - logowanie połączeń DCOM na poziomie systemu Windows (Event Log, DCOM audit) w połączeniu z systemem SIEM pozwala wykrywać nieautoryzowane próby połączenia.
Więcej o projektowaniu stref i korytarzy w środowiskach OT znajdziesz w artykule Segmentacja sieci OT - jak chronić systemy przemysłowe.
OPC UA - następca rozwiązujący problemy bezpieczeństwa
OPC UA (Unified Architecture) został zaprojektowany od podstaw z uwzględnieniem bezpieczeństwa:
| Cecha | OPC Classic | OPC UA |
|---|---|---|
| Transport | DCOM (port 135 + dynamiczne) | TCP (domyślnie 4840, konfigurowalny) |
| Uwierzytelnianie | NTLM/Kerberos (konfiguracja DCOM) | Certyfikaty X.509, username/password, Kerberos |
| Szyfrowanie | Opcjonalne (RPC Packet Privacy) | TLS, AES-256, RSA-2048+ |
| System operacyjny | Wyłącznie Windows | Wieloplatformowy (Windows, Linux, embedded) |
| Firewall | Trudna konfiguracja (wiele portów) | Jeden port |
| Status | Legacy, brak rozwoju | Aktywny rozwój, nowe specyfikacje |
Migracja do OPC UA nie zawsze jest natychmiastowa - wymaga aktualizacji oprogramowania serwera OPC, klientów i często sterowników. Ale dla każdego nowego projektu OPC UA powinien być jedynym rozważanym wyborem.
Podsumowanie
OPC Classic to protokół, który przez dwie dekady umożliwiał interoperacyjność systemów przemysłowych, ale jego architektura oparta na DCOM stanowi dziś poważne obciążenie bezpieczeństwa. Dynamiczne porty utrudniają segmentację, konfiguracja uwierzytelniania DCOM jest skomplikowana i często pomijana, a zależność od Windows Windows ogranicza opcje hardeningu. Tam, gdzie OPC Classic musi pozostać, kluczowe jest ograniczenie portów, tunelowanie i DMZ. Tam, gdzie to możliwe - migracja do OPC UA.
Narzędzia open source
| Narzędzie | Język | Opis | Link |
|---|---|---|---|
| OPC Expert | GUI (Windows) | Darmowe narzędzie Softing do przeglądania i diagnostyki serwerów OPC Classic | softing.com |
| Matrikon OPC Explorer | GUI (Windows) | Darmowy klient OPC Classic do przeglądania, odczytu i zapisu danych z serwerów OPC DA | matrikonopc.com |
| Wireshark | C | Disektor DCOM/OPC - analiza sesji RPC, identyfikacja serwerów OPC i operacji DCOM | wireshark.org |
TIP
Serwery OPC Classic udostępniają interfejsy DCOM - usługa OpcEnum na porcie 135 pozwala wylistować wszystkie zarejestrowane serwery OPC na danej maszynie Windows.
Źródła
- OPC Foundation - OPC Classic Specifications - oficjalna dokumentacja OPC Classic
- OPC Foundation - OPC UA - specyfikacja OPC UA
- Microsoft - Configuring DCOM for OPC - dokumentacja konfiguracji DCOM
- CISA - Recommended Practices for OPC Security - zalecenia CISA
- Matrikon OPC Tunneller - rozwiązanie tunelowania OPC Classic
- Langner, Ralph - “OPC Security: Old Problems and New” - analiza bezpieczeństwa OPC w kontekście Stuxnet