Autorem artykułu jest Łukasz Malinowski, IoT Consultant, AWS Professional Services
Każdej sekundy 127 nowych urządzeń podłączanych jest do sieci, wg danych McKinsey Global Institute. Inteligentne, komunikujące się ze sobą auta, czujniki używane w przemyśle, a nawet sprzęt gospodarstwa domowego – Internet Rzeczy (Internet of Things) to obszar, w którym kod komputerowy bezpośrednio oddziaływuje na nasze codzienne otoczenie, a urządzenia IoT są fizyczną manifestacją cyfrowego oprogramowania.
Jak podłączyć kawowy ekspres do Internetu... i nie dać się zhakować?
Gartner ocenia, że rynek ten będzie wart w 2025 roku 58 miliardów dolarów, co oznacza wzrost o 34% od 2020 roku. IoT jest unikalnym połączeniem świata wirtualnego i fizycznego. Stwarza nowe możliwości, ale równocześnie niesie ze sobą nowe (bardzo realne) zagrożenia.
W tym tekście opiszę podstawowe sposoby na zapewnienie bezpieczeństwa w systemach Internetu Rzeczy.
„Inteligenty ekspres”
Zanim opiszę, jak zdalnie za pomocą sieci obsługiwać ekspres do kawy, zastanówmy się jakie korzyści mogą z tego płynąć.
Podczas projektowania systemu Internet of Things bardzo istotne jest uwzględnienie wymagań biznesowych, aby uniknąć budowy rozwiązania, z którego nikt nie będzie chciał korzystać. Użytkowników nie interesuje techniczna finezja naszego produktu, ale to, jak usprawni on ich życie.
Wśród najczęstszych przykładów praktycznego zastosowania Internetu Rzeczy (Internet of Things / IoT) znajdują się:
- zdalny monitoring (silników samolotowych, platform wiertniczych, linii produkcyjnych, samochodów itp.),
- przewidywanie usterek i prewencyjne naprawy,
- śledzenie przesyłek (nie tylko gdzie się znajdują, ale w jakich warunkach są transportowane, np. czy podczas przewozu drogiego wina jest utrzymywana odpowiednia temperatura i wilgotność),
- ułatwianie codziennych czynności (np. „inteligentny” ekspres, który sam przygotuje dla nas poranną kawę, a w razie potrzeby zamówi brakujące ziarna).
Zapach świeżo przygotowanej kawy może pozytywnie nas nastawić na cały dzień, więc kontynuujmy nasze rozważania w tym kierunku.
W tym momencie może nasunąć się następujące pytanie: jeśli podłączymy nasz ekspres do Internetu, to czy „Internet” będzie mógł się podłączyć do naszego ekspresu? Innymi słowy, czy ktoś będzie mógł zdalnie zmienić parametry urządzenia i popsuć smak naszej porannej kawy albo sprawić, że w ogóle jej nie wypijemy?
Na to pytanie mogę odpowiedzieć jedynie w następujący sposób: to zależy od tego, jak zaprojektujemy nasz system.
Projektując system Internet of Things koniecznie uwzględnijcie następujące zagadnienia:
- budowanie zaufania pomiędzy uczestnikami projektowanego systemu (urządzenie ↔ urządzenie, urządzenie ↔ backend/cloud),
- szyfrowanie przesyłanych informacji (ten aspekt jest niezwykle istotny, gdyż zapewnia poufność oraz integralność wymienianych danych),
- zdalna aktualizacja oprogramowania (firmware) na urządzeniach (Over The Air - OTA).
Poniżej opiszę wymienione aspekty, aby nasz inteligentny ekspres pozostał bezpieczny, a kawa aromatyczna i z pianą na dwa palce.
Jak zbudować zaufanie pomiędzy naszymi urządzeniami?
Zaufanie w świecie rzeczy budujemy przez autentykację i autoryzację.
Czym jest autentykacja? Autentykacja to sposób udowodnienia swojej tożsamości – czyli jak nasz ekspres ma zapewnić zdalny system, że to naprawdę on (a nie haker podszywający się pod niego chcący zamówić kawę na nasz koszt).
Poniżej opiszę jak przebiega autentykacja urządzenia IoT na przykładzie podłączenia do chmury AWS.
Pierwszym krokiem podczas nawiązywania połączenia jest wymiana certyfikatów X.509 pomiędzy uczestnikami komunikacji.
Na tym etapie, nasz ekspres wyśle swój certyfikat do AWS IoT Core. Certyfikat X.509 jest konieczny, ale nie wystarczający do udowodnienia swojej tożsamości przez urządzenie. Urządzenie musi posiadać również klucz prywatny powiązany z prezentowanym certyfikatem.
WAŻNE: klucz prywatny nigdy nie powinien opuszczać urządzenia i musi być zabezpieczony przed niepowołanym dostępem.
Następnie AWS IoT Core weryfikuje otrzymany certyfikat. Podczas tego kroku IoT Core wyszukuje otrzymany certyfikat w swoim rejestrze oraz sprawdza jego status (tylko aktywny certyfikat umożliwia autentykację; urządzenie nie będzie mogło się połączyć jeśli jego certyfikat został wycofany w rejestrze IoT Core).
Odnalezienie aktywnego certyfikatu w AWS IoT Core potwierdza tożsamość naszego ekspresu (który dysponuje tym certyfikatem oraz odpowiadającym mu kluczem prywatnym). Od tej pory IoT Core traktuje ekspres jako zaufane urządzenie!
Relacja zaufania powinna obowiązywać w dwóch kierunkach. Nasz ekspres również musi potwierdzić tożsamość IoT Core. Weryfikacja tożsamości IoT Core uchroni nasze urządzenie przed komunikacją z serwerem, który jest kontrolowany przez hakera i podszywa się pod endpoint AWS.
Aby się upewnić, z kim ma do czynienia, ekspres weryfikuje certyfikat zaprezentowany przez IoT Core z posiadanym certyfikatem Amazon Root CA. Jeśli certyfikaty nie będą zgodne, urządzenie zakończy komunikację i haker nie dostanie się do naszej kawy.
Zaufanie pomiędzy partnerami zaczyna obowiązywać od momentu, gdy obie strony komunikacji wymieniły i potwierdziły swoje certyfikaty.
W tym miejscu należy zaznaczyć, że każdy etap zestawiana połączenia pomiędzy urządzeniem, a chmurą AWS jest automatycznie szyfrowany. Szyfrowana transmisja zapewnia, że haker nie może podsłuchać ani zmodyfikować przesyłanych wiadomości.
Skoro sobie ufamy, to po co nam autoryzacja i czym ona właściwie jest?
Autoryzacja określa dozwolone interakcje urządzenia IoT (np. naszego ekspresu) z chmurą AWS.
Fakt potwierdzenia tożsamości urządzenia nie oznacza, że chcemy mu pozwolić na wszystkie możliwe akcje. Powinniśmy ograniczyć dozwolone rodzaje komunikatów do minimum wymaganego przez funkcje danego urządzenia. Przykładowo nie chcemy pozwolić aby nasz „inteligentny” ekspres wysłał informację do „inteligentnego” zamka do drzwi i wpuścił nieznajomych. Poprawna autoryzacja urządzenia zabezpiecza nasz system przed powyższym wektorem ataku.
Chmura AWS wykorzystuje polityki IoT w celu autoryzacji podłączonych urządzeń.
Polityka IoT (IoT Policy) określa dozwolone komunikaty dla konkretnego urządzenia (reprezentowanego przez certyfikat X.509). W ten sposób powstrzymujemy zaufane urządzenie przed wykonaniem niechcianych akcji (np. gdy ktoś przejmie nad nim kontrolę i za jego pomocą będzie chciał wpłynąć na funkcjonowanie naszego systemu).
W tym momencie możemy sobie postawić poniższe pytanie.
Czemu zdalna aktualizacja firmware'u jest tak istotna?
Smutna prawda jest taka, że nie istnieją programy doskonałe – każdy kod można ulepszyć, każdy potencjalnie zawiera błędy.
Oczywiście należy dołożyć wszelkich starań, aby inicjalna wersja naszego firmware'u była bezpieczna i realizowała funkcje biznesowe (np. robienie porannej kawy). Jednak cykl życia urządzenia nie kończy się z chwilą jego wysłania do klienta.
Zdalna aktualizacja oprogramowania (Over The Air - OTA) pozwala na dodawanie nowych (i naprawianie już istniejących) funkcjonalności urządzeń działających u klienta, w fabryce, bądź w przestrzeni kosmicznej (tak, satelita to też urządzenie IoT!).
Nasze urządzenia będą zagrożone, jeśli w oprogramowaniu skorzystamy z jakiejś biblioteki, w której wykryto podatność bezpieczeństwa w kilka lat po produkcyjnym uruchomieniu system. Zdalna aktualizacja oprogramowania pozwoli nam na szybkie załatanie tej luki zanim zostanie ona wykorzystana przez hakera do przejęcia kontroli nad urządzeniami i próbą dalszej ingerencji w nasz system.
Innym ciekawym zastosowaniem funkcjonalności OTA jest zwinne projektowanie i wdrażanie rozwiązań Internet of Things. „Zwinność” polega na tym, że inicjalna wersja naszego systemu realizuje podstawowe wymagania biznesowe, jest bezpieczna i posiada funkcje zdalnej aktualizacji oprogramowania. Po uruchomieniu naszego systemu możemy zaproponować naszym użytkownikom wypełnienie ankiety oceniającej ich satysfakcję i pytanie o dodatkowe funkcje, które zwiększyłyby atrakcyjność naszego rozwiązania.
Dzięki zdalnej aktualizacji oprogramowania możemy dostarczyć nowe funkcjonalności bezpośrednio na urządzenia posiadane przez klientów.
Czy można podłączyć do AWS coś bardziej złożonego niż kawowy ekspres?
Chmura Amazon Web Services (AWS) jest wykorzystywana w wielu komercyjnych inicjatywach działających na globalną skalę.
Przykładowo, Grupa Volkswagen podłączyła 122 fabryk do AWS. Obiekty VW znajdują się w wielu lokalizacjach i generują ogromne ilości danych – jedną z kluczowych zalet Amazon Web Services jest skalowalność, która pozwala na realizację takiej inicjatywy.
Do Digital Production Platform, zbudowanej na AWS, są podłączone sensory i maszyny działające w fabrykach oraz systemy logistyczne. Wykorzystanie możliwości IoT oraz AI/ML dostarczonych przez AWS, pozwala VW na ciągły monitoring i optymalizację globalnego ekosystemu.
Zbudowane rozwiązanie dostarcza wymierne zyski dla Grupy Volkswagen - fabryki zyskały 30% wzrost produktywności przy jednoczesnym zmniejszeniu kosztów o 30%.
Informacje o tym i innych wdrożeniach AWS możecie znaleźć na tej stronie.
Podsumowanie
W powyższym artykule przestawiłem podstawowe sposoby na zapewnienie bezpieczeństwa w systemach Internet of Things.
Wszystko wskazuje na to, że powszechność i znaczenie rozwiązań IoT będzie systematycznie rosnąć przez wiele kolejnych lat. Mam nadzieję, że ten obszar jest dla Was ciekawy i dowiedzieliście się czegoś nowego.
Zachęcam do zadawania pytań w komentarzach i sugerowania tematów do kolejnych artykułów z dziedziny Internetu Rzeczy.
Hej, jesteśmy na Google News - Obserwuj to, co ważne w techu