SCADA z protokołem DNP3

Protokół DNP3 został powszechnie zaakceptowany w wielu dziedzinach. Jedną z jego zalet jest otwartość. Jednak w sytuacji, gdy narasta zagrożenie atakami terrorystycznymi, DNP3 musi sprostać nowym wymaganiom.

DNP3 w zamyśle twórców nigdy nie był przeznaczony do zapewnienia bezpieczeństwa. Ze względu na to, że jest konstrukcją otwartą, każda osoba dobrze zapoznana z tym protokołem może przypuścić atak na system SCADA. Przede wszystkim dotyczy to protokołu przesyłanego przez otwarte sieci radiowe, gdzie pakiety mogą być przechwytywane przez skaner. Czy jest zatem sposób na pozostawienie sieci SCADA otwartą, a jednocześnie zapewnienie bezpieczeństwa przed cyberatakami? Ogół użytkowników DNP3 uznał, że to konieczne i opracował model zabezpieczeń dla tego protokołu.

Urządzenia wodociągowe wymagają środków bezpieczeństwa i sprzedawcy reagują na tę potrzebę. Przykładowo, Multitrode wprowadza bezpieczny DNP3 do swojego produktu MultiSmart Pump Station Manager.

W założeniu powinien on wprowadzać:

  • uwierzytelnienie i spójność wiadomości,
  • uproszczenie algorytmu,
  • umieszczenie w warstwie aplikacji DNP3 wspomagania dla klucza zdalnego zarządzania,
  • kompatybilność ze wszystkimi łączami komunikacji wspieranymi przez DNP3.

Specyfikacja bezpiecznego protokołu DNP3 nadal jest na etapie prac końcowych. Oczekuje się, że zostanie przekazana testowej grupie użytkowników DNP3 jeszcze w 2008 roku. Zatwierdzenie nastąpiłoby wkrótce potem. W powszechnym odczuciu protokoły własne są bezpieczne w sposób naturalny, ponieważ ich konstrukcja nie jest otwarta. Niestety oznacza to, że protokół nie może być w prosty sposób konstruowany metodą analizy (revers engineering). Skoro środki bezpieczeństwa, zawarte w protokołach własnych, nie mogą być niezależnie weryfikowane pod kątem ich odporności, to za pochopne trzeba uznać przyjęcie, że protokół własny jest w wymaganym stopniu bezpieczny.  

Szczególny typ ryzyka

Bezpieczny DNP3 ma za zadanie eliminację ryzyka, że zaistnieją sytuacje, w których przekazy będą mogły być zafałszowane albo przechwycone i powielone przez kogoś z zewnątrz. Obydwa możliwe scenariusze spowodowałyby poważne uszkodzenie urządzenia oraz uniemożliwienie działania, jeśli przeprowadziłoby się je poprawnie. Zgodnie ze wstępną specyfikacją zagrożenia dla bezpieczeństwa adresowane przez protokół obejmują: spoofing (fałszowanie źródłowego adresu IP w wysyłanym przez komputer pakiecie sieciowym), modyfikację, odtworzenie, podsłuch (tylko przez wymianę kluczy łączności szyfrowej, a nie innych danych), brak odrzucenia (w zakresie identyfikacji indywidualnego użytkownika systemu).

Bezpieczny DNP3 chroni przed takimi zagrożeniami wprowadzając zarówno uwierzytelnienie, jak też integralność wiadomości. Nie szyfruje wiadomości, a stosuje szyfrowanie klucza dla zabezpieczenia kluczy sesji. Bezpieczny DNP3 wykorzystuje metodę „challenge-response” (konieczność podania tożsamości) do weryfikacji wiadomości pod względem pochodzenia z właściwego źródła. Implementacja jest oparta na Protokole Uwierzytelnienia Challenge – Handshake (RFC 1994). Którakolwiek ze stron może wezwać sygnałem do podania tożsamości dla uwierzytelnienia. Możliwe jest to na początku, okresowo albo po otrzymaniu krytycznej funkcji. Następnie wysyła się odpowiedź uwierzytelnienia. Sygnał wezwania do podania tożsamości zawiera pewne dane pseudolosowe, numer sekwencji i wymagany algorytm. Odpowiedź zawiera wartość haszującego  klucza generowanego z danych sygnału wezwania do podania tożsamości oraz klucz. Zwracany jest również numer sekwencji. Następnie, jeżeli uwierzytelnienie jest aktualne, generator wezwania do podania tożsamości odpowie na pierwotną wiadomość, używając standardowej odpowiedzi protokołu.  

Metoda „modu agresywnego” 

Metoda „challenge-response” zwiększa wymaganą szerokość pasma komunikacyjnego. Jeśli mała szerokość pasma jest ważniejsza, można stosować prostszą metodę uwierzytelnienia. „Mod agresywny” zmniejsza potrzebną szerokość pasma poprzez usunięcie zwykłych wiadomości „challenge-response”: wezwania do identyfikacji oraz odpowiedzi.

Dane uwierzytelnienia również mogą być umieszczone w zakończeniu wiadomości DNP3. Ten model jest nieznacznie mniej bezpieczny. Jeżeli chodzi o zarządzanie kluczem, bezpieczny DNP3 wykorzystuje szyfrowanie minimum 128-bitowe AES dla zabezpieczenia kluczy. Istnieją dwa typy kluczy: tymczasowe klucze sesji i klucze uaktualnienia. Klucze sesji są wprowadzone przez start-up, a potem regularnie zmieniane mniej więcej co 10 minut. Klucze uaktualnienia są stosowane do szyfrowania kluczy sesji. Zabezpiecza się je wstępnie hasłem na każdym z końców łącza tak, że nigdy nie wymagają przesyłania. Dodanie środków bezpieczeństwa do protokołu DNP3 jest istotne dla sieci komunikacji SCADA, operujących poprzez łatwo dostępne medium, jakim jest radio. Zagrożenia, takie jak przechwycenie wiadomości i powtórzenie, są usuwane przez wprowadzanie bezpiecznego uwierzytelnienia w warstwie aplikacji samego protokołu. Chociaż końcowa norma nie jest oczekiwana później niż w końcu tego roku, możliwe jest korzystanie z bezpiecznego DNP3 już teraz. Użycie go umożliwia korzystanie z otwartego, przyjaznego protokołu już dzisiaj.

Paul Gibson, MultiTrode  
Artykuł pod redakcją inż. Doroty Maksymowicz