Zarządzanie strategią bezpieczeństwa podczas projektowania systemów IoT
| TechnikaCyberbezpieczeństwo staje się coraz ważniejszym elementem codziennego życia, coraz głębiej i silniej obecnym w świadomości użytkowników urządzeń elektronicznych. W wielu projektach oraz obszarach wymaga się od producentów odpowiednich certyfikatów lub świadectw potwierdzających spełnianie przez ich wyroby określonych norm bezpieczeństwa. Jest to praktyka szczególnie powszechna w przypadku infrastruktury krytycznej oraz projektów publicznych. Już na początkowym etapie projektowania systemu należy zatem zdecydować się na przyjęcie i implementację określonej strategii bezpieczeństwa. Ma to specjalne znaczenie w przypadku systemów IoT, podłączonych do sieci, a przez to ciągle wystawionych na potencjalne próby ataku i nieuprawnionego uzyskania dostępu.
Międzynarodowe organizacje standaryzacyjne oraz agencje rządowe opracowały szereg wytycznych oraz wymagań dotyczących cyberbezpieczeństwa systemów i urządzeń. Poleganie na jednym z takich standardów jest znacznie lepszym rozwiązaniem niż tylko wiara w skuteczność dobrych praktyk inżynierskich oraz osobistego doświadczenia projektantów i konstruktorów. Istnieje wiele różnych standardów oferujących różne sposoby kontroli poziomu bezpieczeństwa systemu. Wybór najlepszego z nich może być skomplikowanym zadaniem, wymagającym dobrej znajomości poszczególnych publikacji, jak również głębokiego zrozumienia specyfiki projektowanego systemu. Praca ta musi zostać wykonana już na wczesnym etapie projektu, podczas tworzenia generalnych założeń systemu. Informacja o wybranym standardzie musi następnie trafić do projektantów oraz programistów, odpowiedzialnych za zdefiniowanie oraz późniejszą implementację strategii cyberbezpieczeństwa w projekcie.
Strategia bezpieczeństwa w procesie projektowym
Strategia bezpieczeństwa jest elementem niezbędnym podczas projektowania każdego systemu i urządzenia IoT, wykorzystywanym na wszystkich etapach jego cyklu życia. Na rysunku 1 przedstawiono typowe elementy tej koncepcji w powiązaniu ze standardowymi etapami cyklu projektowania oprogramowania.
Szacowanie ryzyka. Szacowanie ryzyka jest procesem polegającym na szukaniu potencjalnych zagrożeń oraz słabych punktów systemu. Zadanie to musi zostać wykonane dla wszystkich obszarów ryzyka, takich jak warstwa sprzętowa, oprogramowanie czy sposób organizacji i użytkowania systemu. Istnieje wiele różnych metod prowadzenia szacowania ryzyka, wybór optymalnej z nich zależy od wielu czynników, takich jak zadania i rozmiar systemu czy też wymagany poziom bezpieczeństwa.
Jednym z etapów procesu szacowania ryzyka jest przypisanie zidentyfikowanym zagrożeniom wartości reprezentujących ich potencjalny negatywny wpływ na funkcjonowanie systemu. Im wyższa wartość (priorytet), tym więcej wysiłku i uwagi poświęcić należy na przeciwdziałanie zagrożeniu.
Określenie mechanizmów kontroli bezpieczeństwa. Aby zneutralizować lub przynajmniej zminimalizować zidentyfikowane ryzyko konieczne jest przyjęcie mechanizmów kontroli bezpieczeństwa. Są to programowe i sprzętowe sposoby zmniejszenia prawdopodobieństwa zaistnienia oraz ograniczania negatywnych skutków wystąpienia zidentyfikowanych zagrożeń. Zbiór wszystkich mechanizmów bezpieczeństwa tworzy politykę cyberbezpieczeństwa systemu, będącą nieodłączną częścią jego architektury.
Implementacja mechanizmów kontroli bezpieczeństwa. Po zdefiniowaniu mechanizmów bezpieczeństwa konieczna jest ich implementacja, co odbywa się poprzez wytworzenie odpowiedniego oprogramowania, zgodnie z przyjętymi uprzednio wymaganiami.
Testowanie. Celem procesu testowania jest identyfikacja (a w efekcie usunięcie) podatności i błędów obecnych w systemie. Istnieje wiele sposobów realizacji tego zadania, od analizy kodu, poprzez testy funkcjonalne, aż do testów penetracyjnych włącznie. Testowanie powinno być procesem cyklicznym, powtarzanym iteracyjnie aż do momentu osiągnięcia określonego poziomu niezawodności systemu.
Określenie rodzaju systemu
Niezwykle istotnym krokiem niezbędnym do podjęcia przed dokonaniem wyboru strategii bezpieczeństwa jest określenie rodzaju systemu. Wymienione w tabeli 2 ogólne wymagania bezpieczeństwa systemu zależą od typu zadań wykonywanych przez projektowany system, przy czym układy IoT podzielić można generalnie na dwie główne kategorie – systemy z grupy IT (Information Technology) oraz OT (Operational Technology).
Układy typu IT koncentrują się na gromadzeniu, przetwarzaniu oraz przesyłaniu informacji oraz danych, pochodzących np. z czujników. Nie pełnią znaczących funkcji kontrolnych i sterujących, nie są też zazwyczaj systemami czasu rzeczywistego. Ewentualne opóźnienia lub krótkie awarie systemu są dopuszczalne i akceptowalne przez użytkownika, nie wpływając znacząco na aspekt bezpieczeństwa.
Układy OT to zazwyczaj systemy sterowania i kontroli, zarządzające pracą i działaniem funkcji i usług o krytycznych znaczeniu dla bezpieczeństwa, zdrowia i życia użytkowników, a także będące częścią infrastruktury o znaczeniu krytycznym. Nawet chwilowe błędne działanie systemu typu OT nie jest zazwyczaj dopuszczalne ani akceptowalne, bardzo często zdefiniowane są również ścisłe wymagania i zależności czasowe, które muszą być precyzyjnie i w sposób wysoce powtarzalny realizowane.
Znaczna część systemów IoT to rozwiązania hybrydowe, łączące elementy i cechy układów IT oraz OT. Systemy te zawierają elementy o znaczeniu krytycznym, jak np. układy sterowania i kontroli, dodatkowo wyposażone mogą być w znaczną liczbę czujników i systemów monitorujących stan otoczenia.
Systemy typu OT mają zazwyczaj znacznie bardziej restrykcyjne wymagania odnośnie do dopuszczalnego poziomu bezpieczeństwa, w niektórych obszarach katalog środków zabezpieczających dla obu typów rozwiązań może się jednak pokrywać. Za przykład przedstawić można obszar ochrony przechowywanych danych – w wielu sytuacjach minimalizacja ryzyka wymagać będzie zastosowania mechanizmów kryptograficznych zarówno w systemach typu IT, jak i OT.
Popularne standardy cyberbezpieczeństwa
Opracowano wiele różnych standardów oraz wytycznych opisujących proces implementacji mechanizmów bezpieczeństwa w systemach elektronicznych i informatycznych. Postępowanie według tego typu wskazówek jest zazwyczaj znacznie skuteczniejszym oraz łatwiejszym rozwiązaniem niż próba wypracowania własnego, całkowicie nowego podejścia. Niewątpliwie jednak dla ostatecznego powodzenia projektu bardzo istotny jest wybór standardu najlepiej odpowiadającego jego potrzebom. Do najpowszechniejszych zaliczyć można:
- standardy IEEE (Institute of Electrical and Electronic Engineers) dla warstw PHY/MAC oraz łącza danych;
- publikacje IETF (Internet Engineering Task Force) dla protokołów sieciowych od warstwy sieciowej i powyżej;
- standardy ISO (International Standard Organization) oraz IEC (International Electrotechnical Commission), w szczególności publikacje z rodziny ISO/IEC 27000 określające wymagania zarządzania bezpieczeństwem informacyjnym systemów;
- standardy IEC 62443 lub ISA 99 (International Society of Automation), określające wymagania dla sieci i systemów przemysłowych.
Pomimo opracowania i dostępności wielu różnych standardów i publikacji, wciąż dość trudno jest znaleźć wytyczne oraz wskazówki odnośnie do wyboru i wykorzystania odpowiedniego z nich.
Framework NIST
W celu łatwiejszego odnalezienia się w gąszczu standardów i zaleceń z pomocą przychodzi opracowany przez NIST (National Institute of Standards and Technology) zbiór wymagań, zalecanych polityk bezpieczeństwa oraz wskazówek ich implementacji, określany jako NIST Cybersecurity Framework. Publikacja ta całościowo opisuje sposób zapewnienia cyberbezpieczeństwa systemu, zawierając listę mechanizmów zabezpieczeń niezbędnych do implementacji.
W tabeli 3 przedstawiono podstawowe pojęcia wykorzystywane w NIST Framework do opisu strategii zapewnienia cyberbezpieczeństwa systemu.
Funkcje systemu
W dokumencie wyróżniono pięć funkcjonalności, którymi powinna się charakteryzować właściwie zorganizowana strategia cyberbezpieczeństwa systemu cyfrowego. Te funkcje to:
- identyfikacja – zdolność do określenia zasobów wymagających ochrony, takich jak urządzenia, dane czy możliwości,
- ochrona – zdolność do opracowania i implementacji usług i mechanizmów niezbędnych do zapewnienia poprawnego i bezpiecznego funkcjonowania systemu,
- detekcja – zdolność do opracowania i implementacji usług i mechanizmów identyfikujących wystąpienie zdarzeń naruszających lub zagrażających bezpieczeństwu systemu,
- odpowiedź – zdolność do reakcji i przeciwdziałania skutkom wykrytego naruszenia bezpieczeństwa,
- odzyskanie – zdolność do odzyskania pełnej funkcjonalności i operacyjności systemu w przypadku wystąpienia szkód wyrządzonych przez naruszenie bezpieczeństwa systemu.
Wymienione zdolności skrótowo opisują wymagania bezpieczeństwa dla w zasadzie każdego systemu. Główny wysiłek polega jednak na ich implementacji w zgodzie z uwarunkowaniami oraz wymaganiami projektu, do czego konieczne jest wdrożenie właściwych mechanizmów bezpieczeństwa.
Rekomendowane standardy bezpieczeństwa
Wytyczne NIST zawierają rekomendacje odnośnie do korzystania z określonych standardów bezpieczeństwa, zależnie od rodzaju projektowanego systemu. W przypadku systemów typu IT zaleca się stosowanie do wytycznych zawartych w ISO 27001 oraz NIST SP 800-53, opisujących wymagania bezpieczeństwa dla systemów ogólnego przeznaczenia. Wytyczne dla projektów OT umieszczone są w dokumentach NIST SP 800-82 oraz ISA 62443, koncentrujących się bardziej na systemach przemysłowych.
Dobór mechanizmów bezpieczeństwa w procesie projektowym
W przypadku niektórych rodzajów aplikacji istnieją dodatkowe zbiory reguł i wytycznych bezpieczeństwa, szczegółowo opisujące wymagane mechanizmy oraz sposoby zabezpieczania systemu. Sytuacja ta dotyczy przede wszystkim systemów pracujących w specjalistycznych obszarach, dotyczących urządzeń o znaczeniu krytycznym dla bezpieczeństwa użytkowników lub infrastruktury. Publikacje takie opracowane zostały m.in. na potrzeby branży lotniczej, motoryzacyjnej, projektów związanych z energetyką czy systemami wodociągowymi.
Jeśli jednak nie istnieją żadne dodatkowe wytyczne, dobrym pomysłem może być skorzystanie z zaproponowanego przez NIST standardu NIST SP 800-53, opracowanego z myślą o systemie teleinformatycznym ogólnego przeznaczenia oraz udostępnianego nieodpłatnie wszystkim zainteresowanym. Publikacja ta zawiera wyczerpujący opis mechanizmów bezpieczeństwa z podziałem na odpowiadające im obszary ryzyka. Przykład opisu jednego z mechanizmów przedstawiono na rysunku 3.
W celu opracowania strategii bezpieczeństwa systemu niezbędne jest dokonanie wyboru wymaganych mechanizmów bezpieczeństwa, dostosowanie ich do potrzeb oraz uwarunkowań systemu, a także nadanie priorytetów, w zależności od znaczenia poszczególnych obszarów ryzyka oraz wartości potencjalnych zagrożeń.
Podsumowanie
Bezpieczeństwo jest jedną najważniejszych cech każdego produktu, zaś w przypadku urządzeń sieciowych, takich jak np. produkty IoT, jednym z najistotniejszych aspektów bezpieczeństwa jest cyberbezpieczeństwo. Osiągnięcie wysokiego poziomu odporności na potencjalne próby uzyskania nieautoryzowanego dostępu lub uszkodzenia urządzenia powinno być absolutnym priorytetem każdego projektanta układów IoT. W tym celu konieczne jest opracowanie długofalowej oraz spójnej strategii bezpieczeństwa dla projektowanego systemu. Istnieją publikacje oraz standardy znacząco ułatwiającego wykonanie tego zadania – opisano w nich w przejrzysty oraz zorganizowany sposób poszczególne etapy jego realizacji. Dostosowanie się do tych wskazówek usprawnia proces projektowy oraz ułatwia kontrolę nad jego realizacją. Jednym z najpopularniejszych narzędzi pomagających w zarządzaniu bezpieczeństwem systemu jest NIST Framework, zawierający opis wielu dostępnych standardów oraz wskazówki dotyczące wyboru najlepszego z nich i implementacji zawartych w nim mechanizmów bezpieczeństwa.
Damian Tomaszewski