Modbus RTU - najstarszy protokół fieldbus i jego bezpieczeństwo
Modbus RTU over RS-485/RS-232 - architektura master-slave, brak uwierzytelniania i szyfrowania, ochrona fizyczna i segmentacja sieci OT. Encyklopedia protokołów OT.
Modbus RTU (Remote Terminal Unit) to szeregowy protokół komunikacyjny opracowany w 1979 roku przez firmę Modicon (dziś Schneider Electric) do komunikacji ze sterownikami PLC. Mimo blisko pięciu dekad od powstania, Modbus RTU pozostaje jednym z najczęściej spotykanych protokołów w automatyce przemysłowej - od prostych instalacji HVAC, przez linie produkcyjne, po infrastrukturę energetyczną. Jego popularność wynika z prostoty, niskich kosztów wdrożenia i uniwersalności - praktycznie każde urządzenie OT obsługuje Modbus.
Modbus RTU przesyła dane w formacie binarnym przez łącza szeregowe RS-485 lub RS-232. Jego sieciowy odpowiednik - Modbus TCP (port 502) - przenosi tę samą logikę na Ethernet, ale Modbus RTU wciąż dominuje w warstwie field (poziom 0-1 modelu Purdue), gdzie RS-485 łączy sterowniki PLC z czujnikami, przetwornicami i siłownikami.
Architektura protokołu
Modbus RTU działa w modelu master-slave (w nowszej terminologii: client-server). Master (sterownik PLC, SCADA) wysyła zapytania, slave (czujnik, przetwornica, napęd) odpowiada.
| Parametr | Modbus RTU |
|---|---|
| Warstwa fizyczna | RS-485 (2/4-wire, multidrop) lub RS-232 (punkt-punkt) |
| Topologia | Master-slave, do 247 urządzeń na magistrali RS-485 |
| Prędkość | 9600-115200 baud (typowo 9600 lub 19200) |
| Uwierzytelnianie | Brak |
| Szyfrowanie | Brak |
| Integralność | CRC-16 (wykrywanie błędów transmisji, nie ochrona kryptograficzna) |
| Adresowanie | 1-247 (adres slave w nagłówku ramki) |
| Zasięg | RS-485: do 1200 m, RS-232: do 15 m |
Kluczowe kody funkcji Modbus:
- 01/02 - odczyt cewek (coils) / wejść dyskretnych
- 03/04 - odczyt rejestrów (holding/input registers)
- 05/06 - zapis pojedynczej cewki / rejestru
- 15/16 - zapis wielu cewek / rejestrów
Każda z tych funkcji wykonuje się bez żadnego uwierzytelniania - kto ma dostęp do magistrali, może zarówno odczytywać, jak i zapisywać rejestry dowolnego urządzenia.
Zastosowania
Modbus RTU jest stosowany wszędzie tam, gdzie sterowniki PLC lub RTU komunikują się z urządzeniami polowymi:
- Automatyka przemysłowa - komunikacja PLC z przetwornikami pomiarowymi (temperatura, ciśnienie, przepływ), napędami VFD, zaworami
- Energetyka - odczyt parametrów z analizatorów sieci, liczników energii, zabezpieczeń elektroenergetycznych
- Woda i ścieki - sterowanie pompami, monitoring poziomu w zbiornikach
- HVAC - komunikacja sterowników central wentylacyjnych z czujnikami i siłownikami
TIP
Jeśli audytujesz instalację OT i widzisz konwertery Modbus RTU/TCP (np. Moxa NPort, HMS Anybus), traktuj je jako krytyczne punkty przejścia. Konwerter taki wystawia całą magistralę RS-485 do sieci Ethernet - atakujący z poziomu sieci TCP może wysyłać dowolne ramki Modbus do urządzeń polowych.
Ocena bezpieczeństwa
Modbus RTU został zaprojektowany w epoce, gdy sieci przemysłowe były fizycznie izolowane, a jedynym zagrożeniem były błędy transmisji (stąd CRC-16). Protokół nie zawiera żadnych mechanizmów bezpieczeństwa:
- Brak uwierzytelniania - każde urządzenie podłączone do magistrali RS-485 może wysyłać polecenia do dowolnego slave’a. Nie ma pojęcia “autoryzowanego mastera”
- Brak szyfrowania - dane przesyłane są jawnie. Na magistrali RS-485 każde urządzenie widzi cały ruch (medium współdzielone)
- Brak integralności kryptograficznej - CRC-16 chroni wyłącznie przed błędami transmisji, nie przed celową modyfikacją ramek
- Brak mechanizmu uwierzytelniania urządzeń - atakujący może podłączyć własne urządzenie do magistrali RS-485 i podszywać się pod istniejącego slave’a lub mastera
Scenariusze ataku na Modbus RTU:
- Podsłuch magistrali - podłączenie analizatora do RS-485 (wystarczy fizyczny dostęp do dowolnego punktu na magistrali) pozwala odczytać wszystkie wartości procesowe
- Wstrzyknięcie poleceń - wysłanie ramki Write Register z podmienionym adresem slave’a zmienia nastawy procesu (np. ciśnienie, temperatura, obroty)
- Man-in-the-middle - urządzenie pośredniczące na magistrali może modyfikować odpowiedzi slave’ów, fałszując dane procesowe prezentowane na HMI
Segmentacja i ochrona
Ponieważ Modbus RTU nie oferuje żadnych mechanizmów bezpieczeństwa na poziomie protokołu, ochrona opiera się na zabezpieczeniach fizycznych i architektonicznych.
Ochrona fizyczna magistrali:
- Kontrola dostępu fizycznego - szafy sterownicze z zamkami, monitoring wideo w pomieszczeniach z infrastrukturą RS-485
- Ochrona tras kablowych - magistrale RS-485 w korytkach zamkniętych lub kanałach kablowych z kontrolą dostępu
- Detekcja manipulacji - systemy wykrywania otwarcia szaf sterowniczych (kontaktrony, czujniki tamper)
Segmentacja architektoniczna:
- Konwertery RTU/TCP jako granica strefy - konwerter Modbus RTU/TCP powinien znajdować się za firewallem z inspekcją Modbus (DPI), który filtruje dozwolone kody funkcji i zakresy rejestrów
- Ograniczenie kierunku komunikacji - firewall zezwala wyłącznie na odczyt (kody 01-04) z poziomu SCADA, blokując zapis (kody 05, 06, 15, 16) z sieci wyższego poziomu
- Separacja magistrali - osobne segmenty RS-485 dla różnych procesów (np. linia produkcyjna A i B), połączone ze SCADA przez oddzielne konwertery
- Monitoring ruchu - systemy IDS dedykowane dla OT (np. Nozomi Networks, Claroty) potrafią parsować Modbus RTU/TCP i wykrywać anomalie (nowe adresy, nietypowe kody funkcji, zapisy poza normalnymi cyklami)
Szczegółowe wytyczne dotyczące projektowania stref i korytarzy dla sieci z protokołami fieldbus opisujemy w artykule o segmentacji sieci OT.
TIP
Przy projektowaniu nowych instalacji rozważ Modbus/TCP Security (TLS) zdefiniowany w specyfikacji Modbus/TCP Security z 2018 roku - dodaje TLS i autoryzację opartą na rolach. Dla istniejących instalacji Modbus RTU jedyną realną ochroną pozostaje bezpieczeństwo fizyczne i segmentacja na poziomie konwerterów RTU/TCP.
Źródła
- Modbus Application Protocol Specification V1.1b3 - oficjalna specyfikacja protokołu
- Modbus/TCP Security Protocol Specification - rozszerzenie o TLS
- NIST SP 800-82 Rev. 3 - Guide to OT Security
- ICS-CERT - Modbus Protocol Deep Dive - analiza bezpieczeństwa protokołu
- IEC 62443-3-3 - wymagania bezpieczeństwa systemów automatyki przemysłowej