EtherNet/IP - protokół przemysłowy CIP na bazie Ethernet. Bezpieczeństwo i segmentacja
EtherNet/IP (CIP over Ethernet) - porty TCP 44818 i UDP 2222, ekosystem Rockwell/Allen-Bradley, CIP Security z TLS/DTLS. Analiza bezpieczeństwa i zalecenia segmentacyjne.
EtherNet/IP to jeden z najczęściej wdrażanych protokołów komunikacji przemysłowej na świecie. Litera “IP” w nazwie nie odnosi się do protokołu internetowego, lecz oznacza “Industrial Protocol” - co dobrze oddaje intencję projektantów: przenieść sprawdzony model komunikacji przemysłowej CIP (Common Industrial Protocol) na standardową infrastrukturę Ethernet i TCP/IP. Protokół jest filarem ekosystemu Rockwell Automation / Allen-Bradley, ale wspierają go również producenci tacy jak Omron, Molex czy Schneider Electric.
W tym artykule opisujemy architekturę EtherNet/IP, parametry techniczne istotne z perspektywy bezpieczeństwa, mechanizm CIP Security oraz praktyczne zalecenia dotyczące segmentacji sieci OT, w których ten protokół występuje.
Architektura i model komunikacji
EtherNet/IP bazuje na protokole CIP - tym samym, który obsługują sieci DeviceNet i ControlNet. CIP definiuje wspólny model obiektowy urządzeń (sterowniki, napędy, moduły I/O) i jednolity zestaw usług (odczyt atrybutu, zapis, reset). Dzięki temu programista pracujący z PLC Allen-Bradley widzi te same obiekty niezależnie od warstwy transportowej.
Komunikacja EtherNet/IP wykorzystuje dwa kanały:
- Explicit messaging (TCP, port 44818) - komunikacja typu request/response używana do konfiguracji, diagnostyki i przesyłania danych niekrytycznych czasowo. Sesja TCP jest nawiązywana poleceniem RegisterSession.
- Implicit messaging (UDP, port 2222) - komunikacja cykliczna typu producent-konsument, używana do wymiany danych I/O w czasie rzeczywistym. Dane przesyłane są jako ramki multicast lub unicast UDP z ustalonym interwałem (typowo 1-100 ms).
Parametry techniczne
| Parametr | Wartość |
|---|---|
| Warstwa modelu OSI | 4-7 (TCP/IP + CIP) |
| Port - konfiguracja | TCP 44818 |
| Port - dane I/O | UDP 2222 |
| Enkapsulacja | CIP over TCP/UDP (EtherNet/IP Encapsulation) |
| Uwierzytelnianie (natywne) | Brak - CIP nie wymaga uwierzytelniania |
| Szyfrowanie (natywne) | Brak |
| Uwierzytelnianie (CIP Security) | TLS 1.2+ / DTLS 1.2+ z certyfikatami X.509 |
| Szyfrowanie (CIP Security) | AES-128/256-GCM |
| Główny ekosystem | Rockwell Automation / Allen-Bradley |
| Organizacja standaryzująca | ODVA (Open DeviceNet Vendors Association) |
Ocena bezpieczeństwa
W swojej podstawowej postaci EtherNet/IP nie zapewnia żadnych mechanizmów bezpieczeństwa. Sesja TCP na porcie 44818 może być nawiązana przez dowolne urządzenie sieciowe bez uwierzytelniania. Po nawiązaniu sesji możliwe jest odczytywanie i zapisywanie atrybutów obiektów CIP - w tym zmiana parametrów pracy sterownika PLC, wymuszenie wartości wyjść czy reset urządzenia.
Implicit messaging na porcie UDP 2222 jest jeszcze bardziej narażony - ramki UDP nie wymagają nawet nawiązania sesji. Atakujący z dostępem do segmentu sieciowego może wstrzyknąć ramki I/O podszywając się pod kontroler lub moduł I/O.
TIP
Narzędzie open-source pycomm3 (Python) pozwala na odczyt/zapis tagów PLC Rockwell przez EtherNet/IP bez żadnego uwierzytelniania. To samo narzędzie, które ułatwia pracę integratorom, w rękach atakującego staje się wektorem ataku. Warto przetestować, czy Twoje reguły firewalla skutecznie blokują taki ruch.
CIP Security - rozszerzenie bezpieczeństwa
ODVA opublikowała specyfikację CIP Security jako rozszerzenie protokołu CIP. Mechanizm opiera się na:
- TLS 1.2+ dla explicit messaging (TCP) - szyfrowanie i uwierzytelnianie sesji konfiguracyjnych
- DTLS 1.2+ dla implicit messaging (UDP) - szyfrowanie i uwierzytelnianie danych I/O
- Certyfikaty X.509 - wzajemne uwierzytelnianie urządzeń (device identity)
- Pre-shared keys (PSK) - alternatywa dla certyfikatów w prostszych wdrożeniach
CIP Security jest dostępny w nowszych kontrolerach Rockwell (ControlLogix 5580, CompactLogix 5480) i wybranych modułach I/O. Wdrożenie wymaga infrastruktury PKI lub ręcznego zarządzania certyfikatami.
TIP
CIP Security rozwiązuje problem uwierzytelniania i szyfrowania, ale nie zastępuje segmentacji. Nawet z włączonym CIP Security, urządzenia EtherNet/IP powinny znajdować się w dedykowanej strefie sieciowej z kontrolowanym dostępem na granicach.
Segmentacja sieci z EtherNet/IP
Ponieważ EtherNet/IP działa na standardowym stosie TCP/IP, segmentacja jest prostsza niż w przypadku protokołów warstwy 2 (PROFINET, EtherCAT). Firewalle i listy ACL mogą filtrować ruch na podstawie portów i adresów IP.
Zalecenia praktyczne
-
Dedykowana strefa dla urządzeń EtherNet/IP - sterowniki PLC, moduły I/O i panele HMI komunikujące się przez EtherNet/IP powinny znajdować się w oddzielnym VLANie z firewallem na granicy.
-
Filtrowanie portów na firewallu - zezwalaj na TCP 44818 i UDP 2222 wyłącznie między znanymi adresami IP. Blokuj ruch EtherNet/IP do/z sieci korporacyjnej IT.
-
Blokowanie multicastu na granicach stref - implicit messaging może używać adresów multicast (domyślnie 239.192.1.0/24). Upewnij się, że multicast nie przekracza granic strefy OT.
-
Kontrola dostępu do portu TCP 44818 - to główny wektor konfiguracyjny. Dostęp powinny mieć wyłącznie stacje inżynierskie z autoryzowanych segmentów.
-
Monitoring anomalii - systemy IDS/IPS z obsługą protokołu CIP (np. Claroty, Nozomi Networks, Dragos) potrafią wykrywać nieautoryzowane operacje CIP - takie jak zapis tagów, zmiana trybu PLC czy reset urządzenia.
-
Wdrożenie CIP Security gdzie to możliwe - w nowych instalacjach z kontrolerami Rockwell serii 5580/5480 warto aktywować CIP Security jako dodatkową warstwę ochrony.
Więcej o projektowaniu stref i korytarzy w środowiskach OT znajdziesz w artykule Segmentacja sieci OT - jak chronić systemy przemysłowe.
Podsumowanie
EtherNet/IP to protokół dojrzały, szeroko wdrożony i - w swojej podstawowej postaci - pozbawiony mechanizmów bezpieczeństwa. Działa na standardowym stosie TCP/IP, co ułatwia zarówno integrację, jak i potencjalny atak. CIP Security stanowi istotny krok naprzód, ale wymaga nowoczesnego sprzętu i infrastruktury certyfikatów. Niezależnie od wersji protokołu, segmentacja sieci pozostaje fundamentalnym mechanizmem ochrony.
Narzędzia open source
| Narzędzie | Język | Opis | Link |
|---|---|---|---|
| pycomm3 | Python | Komunikacja z PLC Allen-Bradley (ControlLogix, CompactLogix) - odczyt/zapis tagów | GitHub |
| cpppo | Python | Implementacja EtherNet/IP i CIP - serwer/klient do symulacji i testów | GitHub |
| EIPScanner | C++ | Biblioteka EtherNet/IP do skanowania i komunikacji z urządzeniami CIP | GitHub |
TIP
Przykład pycomm3: plc.read('Tag_Name') - odczyt tagu z ControlLogix bez uwierzytelniania. Idealne do audytu dostępności PLC w sieci.
Źródła
- ODVA - EtherNet/IP Technology Overview - oficjalna dokumentacja ODVA
- ODVA - CIP Security - specyfikacja rozszerzenia bezpieczeństwa
- CISA - ICS-CERT Advisories for Rockwell Automation - alerty bezpieczeństwa dotyczące produktów Rockwell
- Rockwell Automation - Converged Plantwide Ethernet (CPwE) - architektura referencyjna Cisco/Rockwell
- pycomm3 - GitHub - biblioteka Python do komunikacji EtherNet/IP