Zabezpieczenia w systemach zdalnego monitoringu dla aplikacji IIoT
| TechnikaProducenci maszyn czy integratorzy systemów automatyki coraz częściej poszukują rozwiązań pozwalających łatwo i szybko monitorować zainstalowane u klienta urządzenia i systemy. Taki zdalny nadzór pozwala na redukcję kosztów wdrożenia, a także zaoferowanie pakietu usług dodanych umożliwiających kontrolowanie parametrów procesu i przewidywaniu ewentualnych usterek, zanim one wystąpią. Istotnym elementem jest bezpieczeństwo transmisji danych tak, by była ona odporna na próby ingerencji w pracę monitorowanego systemu, zapewniała integralność i wiarygodność przesyłanych danych.
Spójrzmy na przykładową implementacją na przykładzie serii routerów serii ARS i AGS firma Antaira Technologies. System pozwala na dowolne kształtowanie topologii systemu monitoringu. Mogą być przesyłane różnorodne dane procesowe czy streaming video. Przykładową implementację pokazano na rysunku 1.
Zaawansowane systemy zdalnego monitoringu wykorzystują routery korzystające z technologii szyfrowanych kanałów transmisyjnych VPN i serwerów zlokalizowanych w chmurze. Takie rozwiązanie pozwala ominąć ograniczenia narzucane przez firewall czy NAT jak również pozwala na nie stosowanie statycznych adresów IP po stronie monitorowanego urządzenia i stacji nadzoru.
Co wpływa na bezpieczeństwo tych rozwiązań? Możemy wymienić szereg norm i standardów, które systematyzują bezpieczeństwo cybernetyczne. Do najpopularniejszych należą NIST 800-53, NERC CIP dla energetyki czy IEC 62443. Dają one szereg zaleceń zarówno dla projektantów systemów, producentów komponentów sieciowych jak również użytkowników – definiując katalog dobrych praktyk dla bezpiecznych systemów automatyki przemysłowej. Zabezpieczenia systemu przypominają wielopoziomową ochronę strategicznego obiektu i niekiedy są nazywane "Defencein Depth" lub "Castle Approach". Dzielą się na trzy aspekty: fizyczny, techniczny i administracyjny.
Fizyczne zapewnienie bezpieczeństwa następuje poprzez zabezpieczenie infrastruktury w szczególności serwerów cloud i routerów end point. Miejsca, gdzie serwery są zlokalizowane, są zabezpieczone przed ingerencją osób trzecich. Zarówno hardware jak i software jest na bieżąco aktualizowany a ich stan pracy na bieżąco monitorowany. Aplikacje są optymalizowane i walidowane pod kątem bezpieczeństwa. Nie mniej ważnym elementem jest zabezpieczenie routera polegające na wprowadzeniu wielu poziomów dostępów, wymuszaniu stosowania silnych haseł periodycznie zmienianych, analizy pakietów pod względem ich struktury i ich filtrowania, reguł i zasad QoS. Ważnym elementem jest też autodiagnoza i implementacja watch-dog timera pozwalającego na automatyczny reset w przypadku problemów z komunikacją. Od strony technicznej istotnym elementem jest zabezpieczenie kanału transmisji. Potwierdzeniem spełnienia tych norm są certyfikaty bezpieczeństwa ISO 27001 i AICPA. Popatrzmy na jedną z najbezpieczniejszych implementacji sieci VPN wykorzystującą protokół Open VPN.
Możemy wyróżnić trzy poziomy zabezpieczenia przy nawiązywaniu komunikacji pomiędzy end point:
- uwierzytelnienie (authentication) – sprawdzenie, czy serwer i klient jest tym, z którym faktycznie chcemy się połączyć. Może to odbywać się za pomocą loginu i hasła lub za pomocą kluczy uwierzytelniających. Druga metoda jest bezpieczniejsza i jest ona stosowana w systemach przemysłowych. Zapobiega to sytuacji, kiedy ktoś wejdzie w posiadanie elementu autoryzacyjnego (np. hasła) lub gdy następuje próba podszycia się pod serwer VPN. Dzięki TLS serwer zawsze ma swój własny klucz, wydany certyfikat i certyfikat CA. Po stronie klienta również musi być kopia właściwego certyfikatu CA. Uwierzytelnienie musi zakończyć się pozytywnie po obydwu stronach – serwera (cloud) i klienta (router),
- autoryzacja (end points authorisation) – zweryfikowanie, czy dany klient ma prawo dostępu do podłączenia do sieci VPN. Jak wyżej może to się odbywać na podstawie hasła, zestawu kluczy,
- szyfrowanie (cipher) – polega na szyfrowaniu transmisji w taki sposób, aby nie mogła ona zostać odczytana a także aby nie można było dokonać jej modyfikacji.
Istnieją także inne mechanizmy, które za zadanie mają zwiększyć bezpieczeństwo przesyłanej transmisji. W OpenVPN istnieje mechanizm HMAC
(keyed-Hash Message Authentication Code), który wykorzystuje osobny klucz do podpisania każdego pakietu kontrolnego przy uruchamianiu transmisji. Dane, które nie są odpowiednio podpisane takim kluczem są automatycznie odrzucane. Inną formą jest uwierzytelnianie wieloskładnikowe, gdzie ciekawą i bezpieczną implementacją jest AWS MFA (Amazon Multi-Factor Authentication).
W celu bezpiecznej komunikacji potrzebna była metoda na skuteczne uwierzytelnianie jej uczestników oraz zapewnianie jej integralności. W tym celu stworzono infrastrukturę klucza ,publicznego czyli zespół elementów pozwalający na tworzenie kluczy, certyfikatów, ich podpisywanie, odwoływanie oraz weryfikację. Całością usługi zajmują się zaufane firmy zwane Centrami Certyfikacji (Certificate Authority). Przy tworzeniu połączenia VPN serwer cloud generuje parę kluczy składającą się z klucza prywatnego i klucza publicznego, wraz z żądaniem podpisania certyfikatu (CSR). CSR to zakodowany plik tekstowy, który zawiera klucz publiczny i inne informacje, które zostaną zawarte w certyfikacie. Po wygenerowaniu CSR serwer wysyła go do urzędu certyfikacji, który sprawdza, czy informacje w nim zawarte są poprawne, a jeśli tak, to cyfrowo podpisuje certyfikat kluczem prywatnym i wysyła go zwrotnie. Dodatkowo warto zwrócić uwagę na zabezpieczenie, jakim jest przeznaczenie certyfikatu. Dzięki temu, nawet jeśli posiadamy certyfikat podpisany przez nasze CA, ale nie jest on typu serwerowego, to nie uruchomimy własnego serwera. Dzięki temu niemożliwe jest podszycie się klienta z poprawnym certyfikatem klienckim pod serwer cloud VPN. Proces autoryzacji zapewnia, że tylko autoryzowane urządzenia mogą nawiązać komunikację oraz że transmisja jest zaszyfrowana i zabezpieczona przed modyfikacją przez osoby trzecie.
Proces uwierzytelnienia i autoryzacji wygląda następująco:
- router łączy się do serwera i przedstawia swój podpisany przez CA certyfikat, serwer weryfikuje jego poprawność za pomocą certyfikatu CA,
- serwer przedstawia swój podpisany przez CA certyfikat a klient go weryfikuje na podstawie certyfikatu CA,
- serwer szyfruje transmisję do klienta za pomocą publicznego klucza klienta, a klient za pomocą swojego prywatnego go odszyfrowuje,
- klient szyfruje transmisję do serwera za pomocą publicznego klucza serwera, a serwer za pomocą swojego prywatnego go odszyfrowuje,
- serwer za pomocą swojego prywatnego klucza podpisuje (zapewnia integralność i pewność pochodzenia) dane do klienta, a klient weryfikuje to za pomocą publicznego klucza serwera,
- klient za pomocą swojego prywatnego klucza podpisuje dane do serwera, a serwer weryfikuje to za pomocą publicznego klucza klienta.
Systemy zdalnego monitoringu urządzeń pozwalają na kontrolę dowolnych maszyn i systemów z dowolnego miejsca na świecie. Producent czy integrator może w czasie rzeczywistym monitorować parametry pracy systemu zainstalowanego w miejscu oddalonym o setki czy tysiące kilometrów. Pozwala to na zdalną optymalizację i wczesne wykrywalnie problemów bez potrzeby wysłania serwisanta na miejsce. Bezpieczeństwo takich rozwiązań jest jednym z kluczowych elementów i jest zapewniane przez wielopoziomowe zabezpieczenia na poziomie sprzętu i oprogramowania. Obecne rozwiązania zapewniają wysoki poziom bezpieczeństwa z jednocześnie łatwą i tanią implementacją.
W artykule wykorzystano informacje ze stron:
ANTAIRA Technologies
www.antaira.pl