Niniejszy wpis opisuje istotę podatności (ang. vulnerability) a więc dziur i luk w systemach komputerowych, systemów sterowania infrastruktury ICS/OT. Jest również wprowadzeniem do serii artykułów skupiającej się na tematyce podatności, zarządzania ryzykiem z nich związanych.
Przemysłowe systemy sterowania ICS/OT (ang. Industrial Control System, Operational Technology) odgrywają kluczową rolę w skali przedsiębiorstwa, organizacji, regionu, kraju i w końcu infrastruktury kontynentu czy sieci globalnej. Na każdym z wymienionych szczebli współpracują one z systemami komputerowymi, zarządzając procesem wytwórczym maszyn i urządzeń, przetwarzania informacji z procesu wytwarzania energii, oczyszczania ścieków i uzdatniania wody. Co więcej korzystają ze współdzielonej infrastruktury IT-OT, systemów zdalnego dostępu. Tym samym więc, zagadnienia bezpośrednio związane z zarządzaniem podatnościami stają się kluczowym aspektem polityki bezpieczeństwa. Również i bezpieczeństwa przemysłowego i nie tylko w aspektach infrastruktury krytycznej (usługi kluczowe), lecz również w pozostałych branżach i gałęziach przemysłu.
Vulnerabilities czyli Podatności (luki)
Mianem podatności określa się:
lukę, wadę lub słabość produktu, którą wykorzystać można do złamania zabezpieczeń produktu, poufności, integralność i / lub dostępności/kontroli tegoż systemu.
Błędy się zdarzają, to całkowicie naturalne. Błędy z natury nie są szkodliwe (z wyjątkiem potencjalnego ograniczenia wydajności, funkcjonalności), wiele z nich może zostać wykorzystanych w sposób niebezpieczny. Znane luki – podatności w zabezpieczeniach można wykorzystać, aby zmusić oprogramowanie/system/urządzenie do działania w sposób niezgodny z jego przeznaczeniem. Niech przykładem jest tu zbieranie informacji o istniejących zabezpieczeniach, skanowanie infrastruktury czy zmiana przyznanych uprawnień administracyjnych.
Gdy błąd zostanie uznany za lukę, jest on zgłaszany do producenta i rejestrowany jako CVE (MITRE) lub NVD (NIST) w powszechnie dostępnych i wzajemnie synchronizujących się bazach danych podatności. Celem określenia potencjalnego ryzyka i nadania krytyczności/wagi, przypisywana jest wartość liczbowa w skali 1-10, Common Vulnerability Scoring System (CVSS) a producent powinien opracować dalsze zalecenia.

Zagrożenia – luki, zero days i exploits
Opisany powyżej proces dotyczy wykrytych i upublicznionych podatności. Należy być świadomym jednak, iż nielegalny biznes związany z podatnościami prężnia działa w podziemiach i w tzw. DarkNecie, gdzie organizacje hakerskie handlują wykrytymi i niezgłoszonymi lukami zabezpieczeń. Tak wykryte lecz niezgłoszone podatności nazywa się określeniem Zero Days. Co więcej handel ten opiera się również o sprzedaży gotowych kodów i oprogramowania służącego do zastosowania danej luki – podatności – kodu. Tak spreparowany kod wykorzystujące błędy niejawne to exploit.
Ataki i konsekwencje
Zastosowanie kodu, techniki wykorzystującej konkretną podatność jest bardzo często początkiem bardziej złożonego scenariusza i kampanii hakerskiej. W efekcie końcowym atak ma doprowadzić do strat materialnych (okup, ransomware), wykradzenia danych poufnych lub zniszczeń fizycznych – co w szczególności dotyczy części ICS/OT infrastruktury. Do najpowszechniejszych metod ataków na systemy komputerowe, w tym i rozwiązania ICS/OT z zastosowaniem podatności CVE i/lub zero days należą techniki:
- Broken Authentication: przejęcie danych uwierzytelnienia sesji, użytkowników, przejęcia haseł i danych kont
- SQL Injection: wstrzyknięcie złośliwego kodu do bazy SQL celem pozyskania danych obiektowych w tym danych do logowania,
- Cross-Site Scripting (XSS): wprowadzeniu złośliwego kodu witryny, celem pozyskania danych do uwierzytelnienia bezpośrednio od użytkownika,
- Denial of Service (DoS lub DDoS): odmowa dostępu użytkownikowi poprzez obciążenie atakowanego systemu zbyt dużą ilością zapytań,
- Security Misconfiguration: błędna konfiguracja systemu od strony zabezpieczeń, która umożliwia osobie atakującej przeprowadzenie ataku
- Remote Code Execution (RCE): zdalne wywoływanie komend, odczytu i zapisu np. dowolnego rodzaju pliku na zaatakowanej maszynie.
Jak duże jest zagrożenie dla systemów ICS ?
Oczywiście, przywołane powyżej ataki stanowią te jedne z najczęściej stosowanych, nie opisujemy tu jednak inne równie często stosowanych jak i wykorzystywanych w przeszłości technik typu Buffer overflow, Syn-flood.
Systemy ICS/OT z racji na swoje strategiczne funkcje pozostają nieustannie zagrożone atakiem ze strony zorganizowanych grup przestępczych, szpiegostwa korporacyjnego oraz ataków z podtekstem politycznym. Potwierdzeniem tej tezy pozostaje atak na producenta oprogramowania Solrwinds (link do artykułu na securOT) w efekcie którego wiele podmiotów uległo atakującym. Najprawdopodobniej i najczęściej mówi się o agresji ze strony Rosji.
Z perspektywy ochrony infrastruktury sieciowej ICS/OT, najbardziej chronionymi zasobami powinny być wszelkie komputery, stacje operatorskie i inżynierskie (EWS, ang. Engineering Work Station), sterowniki i kontrolery PLC/PAC oraz stacje RTU. Oczywiście, to czy dany zasób jest krytyczny z perspektywy organizacji powinno wynikać z oceny ryzyka, inwentaryzacji, określenia skutków ewentualnego ataku. Każda z organizacja powinno sama odpowiednio sklasyfikować swoje systemy, ocenić ryzyko i odpowiednio nim zarządzić (Zarządzanie Ryzykiem ICS/OT). Słuszność powyższych zdań zdają się potwierdzać opracowania i dane statystyczne przeprowadzone przez Claroty oraz Kaspersky ICS CERT.
Raport Claroty & Kaspersky ICS CERT
W ramach przywołanych opracowań, obie firmy wskazują na wciąż rosnącą ilość indexowanych (zgłaszanych) podatności, z czego wiele z nich określane są mianem high oraz critical:
Energy, critical manufacturing, and water & wastewater are the infrastructure sectors most affected by the 365 ICS vulnerabilities disclosed by the NVD in 1H 2020.
76% of these vulnerabilities have high or critical CVSS severity ratings, whereas 70% can be exploited remotely via a network attack vector.
The five most prevalent CWEs among these vulnerabilities all rank highly on MITRE’s Most Dangerous Software Errors list due to their ease of exploitation and ability to seriously compromise the availability, reliability, and/or safety of industrial systems.
Claroty Biannual ICS Risk & Vulnerability Report: 1H 2020
Raport wskazuje na ok 10% przyrost ilości wykrytych i zgłoszonych luk i podatności systemów, w ocenie tego samego okresu czasu:

W ujęciu lat poprzednich, świetnym uzupełnieniem i tym samym punktem odniesienia jest raport opracowany przez Kaspersky ICS CERT:

Claroty wskazuje ponadto stacje inżynierskie EWS jako zasoby szczególnie newralgiczne w całej infrastrukturze IT-OT. Wynika to z faktu, iż komputery te przeznaczone są w swojej idei do programowania sterowników PLC oraz osprzętu automatyki przemysłowej. Zainstalowane więc tam jest specjalistyczne oprogramowanie a nadane uprawnienia użytkownikom często pozwala na dużą swobodę działania i dostęp do najbardziej krytycznych procesów i zasobów przedsiębiorstwa:
Specifically, EWS often have some degree of connectivity to the IT network. They also have access to the shop floor and the PLCs that control physical processes within OT networks. For adversaries seeking to manipulate or compromise those physical processes, gaining access to an EWS provides an initial foothold. EWS are also generally considered to be prone to vulnerabilities, which — when combined with their tendency to have IT connectivity — can cause adversaries to perceive them as both desirable and viable targets.
Claroty Biannual ICS Risk & Vulnerability Report: 1H 2020
Zarządzanie podatnościami
Zarządzanie podatnościami, podobnie jak w pozostałych aspektach zarządzania ryzykiem, wymaga kompleksowego podejścia. Mam tutaj na myśli zarówno aspekty polityki bezpieczeństwa ujmujące zagadnienia zarządzania zmianą (change management), przypisania odpowiedzialności za dany zasób (urządzenie, maszyna, instalacja, asset ownership) oraz stały proces monitorowania i administracji.
Bez wątpienia, pierwszym i zarazem podstawowym krokiem jest identyfikacja luk bezpieczeństwa w posiadanym inwentarzu. Bez dokładnego określenia zasobów ICS/OT w środowisku oraz ewentualnych podatności nie jesteśmy w stanie odpowiedzieć na kluczowe pytanie – czym tak naprawdę mam zarządzać, gdzie znajdują się kluczowe dla mnie zasoby, jakie ryzyko z nimi jest związane i jaki wpływ na moje bezpośrednie otoczenie mieć będzie ewentualny atak na nie.
Z perspektywy zarządzania zmianą, istotne jest określenie procedur aktualizacji i patchowania systemów ICS/OT adekwatnych z jednej strony wyłącznie do sprawdzonych poprawek (kompatybilność systemowa), ryzyka wynikającego z braku podjęcia działań (być może dany system jest całkowicie wyodrębnioną maszyną, nie wpiętą w infrastrukturę, bez komunikacji z otoczeniem) a i czasu w którym aktualizację można przeprowadzić w danym oknie serwisowym. Niejednokrotnie okazuje się więc iż aktualizacji firmware na sterowniku PLC lub systemu operacyjnego panelu HMI (część systemu SCADA) można przeprowadzić raptem 1 – 2 razy w roku podczas zaplanowanych akcji serwisowych. Wgranie bowiem aktualizacji wymaga ponownego uruchomienia urządzenia, co w normalnych warunkach produkcyjnych często jest niemożliwe do wykonania (produkcja ciągła, olbrzymie straty z tytułu ponownego uruchomienia, inne ograniczenia technologiczne). Stanowi to poważne ograniczenie i wyzwanie z perspektywy security. Często bowiem atakujący wybierają takie elementy infrastruktury ICS/OT, które na daną chwilę są podatne a więc niezaktualizowane.
Automatyzacja, Systemy Detekcji IDS, Threat Detection i Asset Inventory

Z pomocą w ocenie ryzyka, zarządzania infrastrukturą OT oraz komponentami ICS, oceny podatności systemów i aplikacji przychodzą systemy IDS (ang. Intrusion Detection Systems) oraz Threat detection. Podstawową funkcjonalnością systemów klasy Claroty CTD, Nozomi Guardian, Dragos Platorm jest zapewnienie widoczności w czasie rzeczywistym co do ruchu i komunikacji w sieci industrialnej. Systemy te monitorują i analizują ruch sieciowy. Wspierają szereg protokołów przemysłowych co czyni je narzędziami dedykowanymi do przestrzeni ICS/OT. Cecha ta pozwala również wspomnianemu oprogramowaniu stworzenie pełnej listy podatnych urządzeń, systemów i aplikacji znajdujących się w zainstalowanym środowisku. Każdy z tych systemów posiada ponadto szereg innych funkcjonalności.
Niniejszy wpis stanowi pierwszą z 4 części poświęconej zagadnieniom podatność, patchowania oraz monitorowaniu środowiska ICS/OT. W kolejnych częściach scharakteryzujemy jeden z przywołanych systemów klasy IDS jako uzupełnienie tego tekstu. Ponadto wskażemy na istotę poprawnie zbudowanego plany zarządzania zmianą – w tym łatkami i aktualizacjami.