Cyberbezpieczeństwo sterowników PLC

| Technika

Cyberataki na systemy automatyki przemysłowej, jeżeli w najlepszym razie zakończą się "tylko" naruszeniem bezpieczeństwa, są uciążliwe. Częściej jednak, jako działania celowe nakierowane na wyrządzenie jak najdotkliwszych szkód, mają poważne skutki w postaci uszkodzenia sprzętu, strat surowców, wypadków personelu. Koszt słabego zabezpieczenia przed nimi może być wysoki. Tymczasem okazji do ataków na instalacje przemysłowe przybywa, szczególnie przez zacieranie się granic między systemami informatycznymi i produkcyjnymi oraz coraz częstsze podłączanie tych ostatnich do Internetu. Aby się skutecznie chronić przed zagrożeniami, trzeba znać ich istotę, podatność obiektu na cyberataki, jak również mieć świadomość możliwości w zakresie zapewniania cyberbezpieczeństwa. W artykule kwestie te przedstawiamy na przykładzie sterowników PLC.

Cyberbezpieczeństwo sterowników PLC

Sterowniki PLC to sztandarowe komponenty systemów automatyki, będące w użyciu od lat 60. zeszłego wieku. Dzięki długiemu stażowi mają ugruntowaną pozycję w branży. Niestety starsze modele, które wciąż są w użytku, zostały zaprojektowane wówczas, kiedy pojęcie cyberbezpieczeństwa jeszcze w ogóle nie było znane. Nie mają one więc wbudowanych żadnych mechanizmów ochronnych. Dotyczy to też nowszych modeli, lecz "sprzed ery Stuxnetu", czyli robaka komputerowego, który zaatakował instalacje przemysłowe w 2010 roku. Do tego czasu bowiem beztrosko zakładano, że ponieważ systemy automatyki przemysłowej pracują we względnej izolacji, ich komponenty, jeżeli już, to wyłącznie w niewielkim stopniu potrzebują zintegrowanej ochrony. Z powodów wymienionych we wstępie nie jest to już prawdą. Dlatego podejście producentów zmienia się i wprowadzają oni na rynek coraz więcej PLC z wbudowanymi funkcjami cyberbezpieczeństwa.

Podobnie wśród użytkowników rośnie świadomość zagrożeń, jakie technika PRZEMYSŁ 4.0 niesie ze sobą udany cyberatak na system automatyki w zakładzie przemysłowym oraz że jednym z jego bardziej newralgicznych punktów są właśnie PLC. Przyczyniają się do tego kolejne zakończone powodzeniem ataki na instalacje przemysłowe oraz ostrzeżenia specjalistów z dziedziny cyberbezpieczeństwa. Ci regularnie informują o kolejnych wykrytych lukach w zabezpieczeniach sterowników i przedstawiają nowe możliwe scenariusze cyberataków za ich pośrednictwem, a nawet tworzą złośliwe oprogramowanie do ich infekowania w celach szkoleniowych.

Modelowy cyberatak

Spektakularnym przykładem był przeprowadzony w 2015 roku cyberatak na ukraińskie systemy sieci energetyczneh. Specjaliści uznali go za bezprecedensowy, zarówno ze względu na skalę jego skutków – w wyniku działań hakerów dostaw energii elektrycznej zostało pozbawionych 230 tys. odbiorców, a ponadto od zasilania, w tym zapasowego, odłączone zostały dyspozytornie, co uniemożliwiło szybką reakcję na atak – jak i niezwykle dopracowany, a następnie sprawnie zrealizowany plan działania. Strategia, określona wręcz jako wyrafinowana, obejmowała bowiem najpierw rozłożone w czasie rozpoznanie, a później wiele zsynchronizowanych w czasie akcji. To świadczyło o tym, że w operację było zaangażowanych szereg wysokiej klasy profesjonalistów, jak i dowodziło, że nie była tania w realizacji. W efekcie, pomimo że sieć energetyczna na Ukrainie była zaskakująco dobrze zabezpieczona (głównie dzięki skrupulatnemu podziałowi sieci komunikacyjnej na segmenty), zastosowane środki bezpieczeństwa okazały się niewystarczające.

Warto dodać, że chociaż bezpośredni efekt ataku, czyli przerwa w dostawie energii elektrycznej nie trwała długo, bo zasilanie udało się przywrócić już po kilku godzinach, uciążliwsze okazały się długofalowe skutki. Przestępcy bowiem zmodyfikowali oprogramowanie wyposażenia podstacji, przez co przestało ono reagować na zdalne komendy i jeszcze kilka miesięcy po tym zdarzeniu należało sterować nim ręcznie. Opisywany cyberatak okazał się zatem ważną lekcją nie tylko dla branży energetycznej, ale również całego przemysłu.

Jak się zaczął cyberatak na Ukrainie?

Mechanizm cyberataku na sieć energetyczną u naszego wschodniego sąsiada był następujący: najpierw hakerzy masowo rozesłali do pracowników przedsiębiorstw odpowiedzialnych za dystrybucję energii elektrycznej w poszczególnych regionach tego państwa e-maile z załącznikiem w postaci dokumentu Microsoft Word. Po jego otwarciu wyświetlała się prośba o włączenie makr. Po wyrażeniu zgody na atakowanym komputerze instalowane było złośliwe oprogramowanie BlackEnergy3, dające dostęp przestępcom. Warto zauważyć, że na tym etapie zbytnio się nie wysilili, bowiem zamiast błędu oprogramowania czy luki bezpieczeństwa wykorzystali standardową funkcję programu Word. Za jej pośrednictwem hakerzy atakowali już w latach 90. zeszłego wieku.

Ten ruch zapewnił dostęp jedynie do sieci korporacyjnych, co nie pozwalało na ingerencję w funkcjonowanie sieci energetycznej. Przestępcy mieli zatem do wyboru: próbować złamać zabezpieczenia w postaci firewalla albo poszukać innego rozwiązania, na co ostatecznie się zdecydowali. Polegało ono na tym, że przez wiele miesięcy prowadzili rozpoznanie, m.in. uzyskując dostęp do narzędzi do zarządzania kontami użytkowników sieci. Dzięki temu w końcu dotarli do danych uwierzytelniających pracowników, w tym tych używanych w sieciach VPN do zdalnego logowania się do systemów SCADA.

Jakie były kolejne kroki?

Następnie hakerzy zmienili ustawienia zasilania awaryjnego dyspozytorni, by można je było zdalnie dezaktywować. Zostało to przez ekspertów uznane za szczególnie perfidne posunięcie. Następnie przygotowali złośliwą wersję oprogramowania, którą planowali zastąpić to oryginalnie zainstalowane na konwerterach przetwarzających polecenia wysyłane z systemu SCADA do systemów sterowania podstacjami. W ten sposób zamierzali pozbawić operatorów możliwości zdalnego przywrócenia zasilania. Specjaliści uznali to za "godną podziwu" zapobiegliwość. Tak przygotowani, w dniu ataku, po podłączeniu się przez zhakowane sieci VPN do sieci SCADA, podjęli właściwe działania.

W pierwszej kolejności zdalnie wyłączyli zasilanie zapasowe centrów dyspozytorskich. W międzyczasie dodatkowo przeprowadzili atak typu TDoS (Telephone Denial of Service) na centra obsługi klienta, żeby uniemożliwić odbiorcom energii elektrycznej zgłaszanie awarii. Polegało to na tym, że ich linie telefoniczne zostały obciążone fałszywymi połączeniami, co je zablokowało. Był to kolejny ruch świadczący o dobrej organizacji i zapobiegliwości hakerów, dzięki temu zyskali bowiem czas na dokończenie działań. Miało to również aspekt psychologiczny, wzbudzając gniew klientów.

Następnie zdalnie odłączali zasilanie kolejnym odbiorcom. Gdy ten etap się zakończył, zainstalowali wspomniane złośliwe oprogramowanie w konwerterach poleceń z systemu SCADA, uniemożliwiając operatorom zdalne przywrócenie zasilania. Jakby tego było mało, zaatakowali stacje operatorskie, które zainfekowane złośliwym oprogramowaniem uległy awarii bez możliwości restartu. Dyspozytorzy zostali pozostawieni zatem w ciemności, bez możliwości jakiejkolwiek reakcji.

Luki w PLC – przykład

Do wyrządzenia groźnych szkód wystarczy zatem łatwa do sforsowania furtka. Tym bardziej przerażają potencjalne możliwości, jakie hakerom dają luki bezpieczeństwa w sterownikach PLC. O kolejnych takich brakach informują specjaliści i, w trosce o użytkowników, sami producenci sterowników.

Przykładem jest luka bezpieczeństwa pozwalająca na przejęcie kontroli nad sterownikami pewnej marki za pośrednictwem oprogramowania narzędziowego zainstalowanego na nieautoryzowanej stacji operatorskiej. Izraelskim badaczom, którzy problem ten odkryli, udało się też ukryć złośliwy kod we właściwym kodzie sterownika w taki sposób, że choć działał w tle, destabilizując działanie PLC, nie był możliwy do wykrycia. Za powód uznano brak uwierzytelniania instancji aplikacji przez sterownik PLC – w praktyce przeprowadza się bowiem tylko operację w drugą stronę.

Podano kilka sposobów rozwiązania problemu. Badacze zalecili korzystanie z kluczy prywatnych przez każdą z instancji aplikacji oraz kluczy publicznych współdzielonych i zapisywanych w PLC. Można też przeprowadzać parowanie instancji programu narzędziowego i sterownika podczas pierwszej sesji. Środkiem zaradczym zalecanym przez producenta PLC była aktywacja chronionego hasłem mechanizmu kontroli dostępu do sterownika. Generalnie zatem PLC nie powinien się komunikować z urządzeniem z zainstalowanym oprogramowaniem narzędziowym, które nie zostało wcześniej uwierzytelnione.

Zgodnie z najlepszymi praktykami odpowiedzialnego ujawniania wyników badań nad lukami bezpieczeństwa swoje wnioski izraelscy badacze najpierw przedstawili producentowi sterownika, zanim upublicznili je na konferencji branżowej Black Hat USA 2019. Na tym spotkaniu specjalistów z zakresu cyberbezpieczeństwa tradycyjnie sterownikom PLC poświęca się dużo uwagi.

Robaki "szkoleniowe", scenariusze ataków, zhakuj PLC i wygraj!

Przykładowo podczas konferencji Black Hat Asia w 2016 roku zaprezentowano eksperymentalnego robaka komputerowego, który był zdolny do rozprzestrzeniania się z jednego sterownika na inny, bez pośrednictwa komputera czy serwera. Za cel tego złośliwego oprogramowania wybrano sterowniki konkretnej marki. Robak napisany został w języku ST (Structured Text), z uwzględnieniem specyfiki PLC – aby umożliwić rozprzestrzenianie się między urządzeniami, wykorzystano funkcje komunikacyjne sterowników.

Jako potencjalny sposób zainfekowania przyjęto możliwość instalacji robaka w wyniku sabotażu na etapie produkcji lub transportu. Następnie mechanizm jego replikacji miał być następujący: po włączeniu do sieci zainfekowanego sterownika złośliwe oprogramowanie skanowałoby porty TCP 102 w poszukiwaniu innych PLC. W razie rozpoznania sterownika niezainfekowanego robak zatrzymywałby go na około 10 sekund, przesyłał swój kod i uruchamiał ponownie. Byłoby to powtarzane dla każdego wyszukanego sterownika. Instalacja złośliwego kodu była możliwa dzięki wykorzystaniu jednej z już usuniętych luk bezpieczeństwa, umożliwiającej podszywanie się pod oprogramowanie narzędziowe. Poza zdolnością do rozprzestrzeniania się, w robaku zaimplementowano złośliwą funkcjonalność, m.in. możliwość wyłączenia zainfekowanego PLC z użytku w podobny sposób, jak podczas ataku typu DoS (Denial of Service) czy manipulowania sygnałami wyjściowymi sterownika.

Badacze na tym przykładzie chcieli uświadomić, jak ważne dla cyberbezpieczeństwa systemów automatyki jest obserwowanie nietypowych zdarzeń. Przykładowo stworzonego przez nich robaka można by wykryć, odnotowując 10-sekundowe wyłączenia PLC w czasie instalacji złośliwego oprogramowania i nietypowy ruch sieciowy. Dodatkowo swoim eksperymentem dowiedli, że do napisania robaka w "stylu Stuxnetu" wcale nie potrzeba wielkich funduszy.

Za ciekawą inicjatywę można również uznać... zawody hakerskie Pwn2Own, które odbyły się na początku tego roku w Miami. Ich celem było przetestowanie zabezpieczeń przemysłowych systemów automatyki. Gospodarze konkursu przeznaczyli ponad 250 tys. dol. w gotówce i w nagrodach dla zwycięzców w następujących kategoriach obejmujących różne urządzenia i oprogramowanie: Control Servers, czyli rozwiązania serwerowe zapewniające łączność, monitorowanie i kontrolę między sterownikami PLC i urządzeniami polowymi, OPC UA Servers, DNP3 Gateway, HMI i Engineering Workstation Software.

Jak się uchronić?

Dobre praktyki w zakresie cyberbezpieczeństwa PLC wymagają skupienia się na trzech obszarach: systemie operacyjnym, interfejsach sieciowych, kontroli dostępu użytkowników. Zadbać należy też o bezpieczeństwo fizyczne oraz przestrzeganie zasad i procedur.

PLC przeważnie wykorzystują dedykowane systemy operacyjne typu zamkniętego (bez dostępu do kodu źródłowego), przystosowane do specyfiki ich pracy. Przeciwieństwem jest oprogramowanie open source. Wbrew pozorom może się ono okazać bezpieczniejsze, gdyż w jego rozwój angażują się całe społeczności programistów. To pozwala na szybsze wykrywanie oraz reagowanie na luki w zabezpieczeniach systemu operacyjnego niż w przypadku dostawców oprogramowania typu zamkniętego.

Systemy operacyjne open source w zastosowaniach przemysłowych powinny być tworzone dla konkretnego urządzenia oraz zawierać tylko wymagane pakiety. To ostatnie zawęża liczbę potencjalnych dróg cyberataku. Ponadto muszą być cyfrowo podpisane przez dostawcę, zaś sterownik powinien akceptować tylko takie autoryzowane wersje. PLC z systemem operacyjnym open source embedded Linux ma w ofercie m.in. firma Wago.

 
Rys. 1 Sieć niezaufaną trzeba wyraźnie oddzielić od tej zaufanej z kontrolą dostępu

Interfejsy sieciowe

Dla skutecznego zabezpieczenia PLC przed cyberatakami ważne jest rozróżnienie pomiędzy siecią zaufaną, z kontrolą dostępu, a niezaufaną, bez autoryzacji dostępu, na przykład Internetem. W przemyśle coraz częściej wymagany jest dostęp do obu. Dlatego ważne jest, żeby interfejsy sieciowe sterownika były niezależne oraz nierutowalne. Uniemożliwi to atakującemu połączenie się z zaufaną siecią z sieci niezaufanej.

Nieodzownym zabezpieczeniem jest firewall. W oparciu o nie najlepszą praktyką jest otwieranie tylko potrzebnych portów i blokowanie wszystkich innych w przypadku interfejsów dla sieci zaufanych, a w przypadku tych dla sieci niezaufanych domyślne blokowanie wszystkich portów, ewentualnie z wyjątkiem bezpiecznego portu umożliwiającego uwierzytelnionym użytkownikom dostęp do kontrolera przy szyfrowaniu połączenia. Prawidłowa konfiguracja sieci jest niezbędna. Powinna jednak iść w parze ze skuteczną kontrolą dostępu oraz przemyślanym przydzielaniem uprawnień.

Kontrola dostępu – dobre praktyki

W sterownikach nie powinno się korzystać z domyślnej nazwy użytkownika ani hasła do żadnego z kont, w zamian ustalając unikalne dane uwierzytelniające podczas ich zakładania. W przypadku ich wycieku dla konta z uprawnieniami administratora lepiej zresetować PLC do ustawień fabrycznych, niż je zmieniać. Liczba kont użytkowników powinna być ograniczona do niezbędnego minimum. Podobnie, jeżeli chodzi o uprawnienia, powinno się im przyznawać tylko te niezbędne, ograniczone do działań, za której odpowiadają i dostępu do zasobów, z których korzystają. Hasła muszą być silne, a uwierzytelnienie w celu skorzystania z systemu obowiązkowe. Dobrym nawykiem powinno być także wylogowywanie się z systemu w razie dłuższej nieaktywności. Dotyczy to zwłaszcza administratorów. Jeżeli wymagany jest zdalny dostęp do PLC przez Internet, należy komunikować się za pośrednictwem bezpiecznego portu z szyfrowaniem danych i kontrolą dostępu. Warto jest również rozważyć skorzystanie z sieci VPN.

 
Rys. 2 Bezpieczny zdalny dostęp można zapewnić za pośrednictwem sieci VPN

Podsumowanie

Ochrona przed cyberatakami musi być wielopoziomowa, tylko wtedy jest kompleksowa. Ułatwiają to PLC z wbudowanymi funkcjami bezpieczeństwa – na przykład w sterownikach ControlEdge PLC Honeywell zaimplementowano: firewall, zmniejszający podatność na ataki typu DoS, secure boot, zapobiegający instalowaniu nieautoryzowanego oprogramowania, komunikację opartą na protokołach do zestawiania bezpiecznych połączeń, która zapobiega atakom typu man-in-the-middle i nieautoryzowanemu dostępowi, szyfrowanie danych oraz uwierzytelnianie oparte na certyfikatach. Najsłabszym ogniwem zawsze jest jednak człowiek – personel świadomie lub nieświadomie bywa przyczyną problemów, na przykład korzystając w pracy z prywatnych, zainfekowanych wymiennych nośników danych czy otwierając załączniki e-maili o nieznanym pochodzeniu. Dlatego ważne jest zapewnienie kontroli fizycznego dostępu do kluczowych zasobów oraz uświadamianie pracowników w zakresie zagrożeń cyberatakami.

Na zakończenie warto dodać, że również branża jako całość nie pozostaje bezczynna. Przykładowo przybywa publikacji dotyczących polityki bezpieczeństwa oraz najlepszych praktyk w zakresie cyberbezpieczeństwa. W obliczu narastających zagrożeń zwiększa się również solidarność i chęć współpracy, której wyrazem jest na przykład powstanie organizacji Operational Technology Cyber Security Alliance (OTCSA, www.otcsalliance.org). W jej skład wchodzi 12 firm, w tym ABB oraz Microsoft, zaś celem statutowym jest wspieranie firm przemysłowych w zakresie wdrażania rozwiązań cyberbezpieczeństwa systemów OT.

 

Monika Jaworowska