Cyberbezpieczny PLC wykrywa anomalie w systemie

Wiktor Susfał Bedrock Tagi: , , ,
Cyberbezpieczny sterownik PLC od BEDROCK

Cyberbezpieczny PLC musi wykrywać anomalie w systemie, bronić się przed nimi oraz zapisywać dane o takich zdarzeniach.

Wpis ten powstał w celu opisania niektórych funkcjonalności najnowszej wersji wewnętrznego systemu bezpieczeństwa BEDROCK – Cybershield 3.0. Z lektury tego artykułu dowiesz się, w jaki sposób systemy sterowania od BEDROCK Automation potrafią wykrywać próby naruszenia swojej infrastruktury. Co więcej informacje te mogą być ogólnie dostępne dla upoważnionych operatorów.

Skanowanie ruchu komunikacyjnego na portach

Każdy kontroler PLC od BEDROCK, niezależnie od swojej konfiguracji oraz posiadanych kluczy dostępu posiada funkcję dynamicznego skanowania przepływu informacji na własnych portach. Poprzez przepływ informacji należy rozumieć wszystkie próby przesłania lub uzyskania danych z kontrolera PLC. Co więcej, każda próba komunikacji jest weryfikowana pod względem uprawnień aplikacji klienckich łączących się ze sterownikiem. Tak więc operator uzyskuje informacje na temat wszystkich autoryzowanych i nieautoryzowanych prób połączeń. Informacje te zawierają adres IP, DNS oraz dane o certyfikacie klienta, który próbował nawiązać łączność. Jest to sposób, na ustalenie, czy nie próbowano połączyć się ze sterownikiem z podejrzanej lokalizacji lub przy użyciu nieważnego certyfikatu.

Kontrolery BEDROCK używają dwóch głównych portów do komunikacji:

  • w celu wprowadzania zmian w konfiguracji programu sterownika i monitorowania jego działania,
  • do wymiany danych po protokole OPC UA.

Wszystkie próby nasłuchiwania, czy przekazywania danych na inne porty, jak również nietypowe wiadomości wyryte na powyższych portach zostaną zapisane przez sterownik.

Co więcej, cyberbezpieczny kontroler PLC wykryje również próby manipulowania stemplami czasowymi plików oraz logów systemowych sterownika. Jest to szczególnie ważne. Ewentualny atak na system z zewnątrz może mieć na celu zmianę logów systemowych. W konsekwencji doprowadzi to do niemożliwości ustalenia, jakie zmiany przeprowadzono w systemie. Bez takiej wiedzy, cyberatak może pozostać niewykryty.

Mechanizm Monitorowania Czasu Systemowego (System Time Monitoring) od BEDROCK wykryje próby manipulowania zegarem RTC lub stemplami czasowymi logów. Następnie zapisze informacje o tym do oddzielnej jednostki logów systemowych w pamięci kontrolera. Jeśli więc nawet naruszono logi systemowe, użytkownik dalej będzie mógł otrzymać informacje o takim zdarzeniu, oraz jakie zmiany w systemie wprowadzono po wystąpieniu tego typu ataku.

Zapis informacji o anomaliach

Zarys rozwiązania

W celu zapamiętywania informacji o niepożądanych zdarzeniach w systemie, BEDROCK Automation wyposażył swój system w mechanizm Intrusion Event Logging. Pozwala on na eksport danych z kontrolera PLC do zewnętrznej lokalizacji. To tak na prawdę świadczy o sile systemu wykrywania anomalii. Informacje o podejrzanych zdarzeniach nabierają wartości tylko wtedy, gdy dostęp operatorów do nich jest szybki i swobodny.

System sterowania Bedrock udostępnia funkcję rejestrowania istotnych zdarzeń systemowych i przechowywania tych informacji w bazie danych SQL. Obejmuje to zarówno informacje z modułów zasilania SPM, wejść/wyjść SIO, jak i Kontrolerów. Usługa Windows o nazwie BedrockLogMonitor działa na stacji roboczej kontrolującej system BEDROCK i okresowo wysyła zapytania do kontrolera o dane z jego logów. Kontroler może następnie odpowiadać komunikatami, które zawierają jego własne dane logów oraz te z modułów SPM i SIO, które działają na tej samej magistrali BMI. Komunikaty dziennika zawierają informacje dotyczące zdarzeń takich jak uruchomienie lub wyłączenie modułu, zmiany konfiguracji, błędy i ostrzeżenia. Usługa BedrockLogMonitor wykorzystuje sterownik ODBC do zapisywania rekordów do bazy danych.

Logi systemowe można przechowywać na stacji roboczej w bazach danych SQL Lite, MySQL oraz SQL Server. Informacje o nich są transportowane wyłącznie uwierzytelnionymi i zaszyfrowanymi kanałami komunikacji w obrębie systemu. Cały proces przedstawiono na poniższym schemacie.

Schemat procesu, w którym cyberbezpieczny PLC zapisuje logi do bazy na dysku
Schemat procesu, w którym cyberbezpieczny PLC zapisuje logi do bazy na dysku

Podstawy konfiguracji logowania danych

Aby odblokować archiwizację rekordów dziennika zdarzeń, należy uruchomić oprogramowanie BEDROCK IDE V1.8 z uprawnieniami administratorskimi. Następnie, na górnym pasku okna IDE należy wybrać zakładkę „Tools” oraz opcję „Device Management”. Okno to służy do zarządzania kontrolerami BEDROCK, dostępnymi w sieci lokalnej stacji roboczej.

Uruchomienie zapisu zdarzeń na PLC - Event Log Monitor
Uruchomienie zapisu zdarzeń na PLC – Event Log Monitor

Uruchomienie procesu logowania danych następuje poprzez wybranie opcji „Event Logging Monitor” oraz zatwierdzenie jej w nowo otwartym oknie. Następnie użytkownik zostanie również poproszony o zatwierdzenie dwóch certyfikatów używanych do szyfrowania połączenia pomiędzy stacją roboczą i sterownikiem. Od tej pory funkcja ta jest dostępna na kontrolerze BEDROCK, a jej pracę można podejrzeć w BEDROCK IDE po wybraniu opcji „Status” z powyższego okna, zaznaczeniu posiadanego kontrolera w nowym oknie oraz wybraniu pozycji „Details”.

Szczegóły pracy PLC
Szczegóły pracy PLC

W kolejnym oknie ukażą się szczegóły na temat pracy kontrolera, w tym spis logów systemowych, możliwy do wyeksportowania jako plik .txt.

Jeśli chodzi o konfigurację usługi BedrockLogMonitor (logowania do bazy danych) to wszystkie informacje, jak również pliki konfiguracji znajdują się w poniższej lokalizacji.

<katalog_instalacji_ide>\Log Monitor\

Jeśli przy instalacji nie poczyniono żadnych zmian względem ustawień domyślnych, lokalizacja ta jest następująca.

C:\Program Files (x86)\Bedrock IDE 1.8\Log Monitor

Katalag konfiguracji Bedrock Log Monitor
Katalog konfiguracji Bedrock Log Monitor

Według domyślnej konfiguracji, wszystkie informacje sąpoczątkowo zapisywane w pliku bazodanowym Log.db3. Jest to plik SQL Lite i może być on przeszukiwany za pomocą każdego narzędzia kompatybilnego z SQL Lite. Może to być to zarówno pojedyncza aplikacja, jak i cały system SCADA, np. ICONICS.

Aby skonfigurować Bedrock Log Monitor do zapisu danych do innej bazy (np. SQL Server, czy MySQL) lub do wykorzystywania interfejsu ODBC, należy odpowiednio edytować plik BedrockLogMonitor.config.xml. Aby uzyskać informacje, jak to robić, należy odwołać się do instrukcji użytkownika lub wysłać zapytanie na sterowniki@elmark.com.pl.

Prezentacja rozwiązania

Cyberbezpieczny system sterowania PLC od BEDROCK został zaprezentowany na jednym z filmów pokazowych od producenta.

Zagadnienia poruszane w tym artykule zostały zaprezentowane w minutach: 19:50 – 29:20 na poniższym wideo.

Reszta filmu producenta porusza inne interesujące zagadnienia związane z systemem PLC od BEDROCK jak:

  • zabezpieczanie komunikacji OPC UA przy użyciu certyfikatów,
  • bezpieczna natywna komunikacja pomiędzy kontrolerami BEDROCK,
  • bezpieczny moduł – gateway od BEDROCK montowany na BMI razem z innymi I/O, zapewniający kolejny poziom zabezpieczeń w systemie.
Nowości w systemie sterowania PLC BEDROCK

Czytaj więcej o cyberbezpiecznym systemie BEDROCK.

Środowisko BEDROCK IDE to darmowe oprogramowanie pozwalające na symulację budowanych programów, również jeśli chodzi o cyfrowe I/O będące częścią PLC BEDROCK. Pobierz je ze strony producenta lub wyślij zapytanie na sterowniki@elmark.com.pl