Serwisy partnerskie:
Close icon
Serwisy partnerskie

Uwzględnienie zabezpieczeń w urządzeniach wbudowanych IoT

Article Image
Dziś, gdy łączność przewodowa i bezprzewodowa jest wszędzie, implementacja zabezpieczeń we wszelkich projektach urządzeń nie może już pozostawać kwestią drugorzędną. Spójne i solidne podejście do bezpieczeństwa jest najważniejsze i powinno stać się nieodłączną częścią wstępnej specyfikacji projektu. Na całym świecie regularnie pojawiają się doniesienia prasowe na temat włamań do systemów i aplikacji. Hakerzy i napastnicy są biegli w wyszukiwaniu słabych punktów w zabezpieczeniach systemów i współpracują ze sobą w celu przeprowadzania udanych ataków.

Wszystkie systemy wbudowane są podatne na ataki. Ataki nie zawsze muszą zakłócać system lub proces przemysłowy; początkowo mogą polegać na próbie kradzieży własności intelektualnej firmware, kluczy kryptograficznych i innych poufnych danych użytkowników. Uzbrojenie się w takie informacje umożliwia kolejną fazę ataku.

Wdrożone układy Internetu rzeczy (IoT) lub przemysłowego Internetu rzeczy (IIoT) są szczególnie narażone na atak. Instalacja IIoT wdrożona na dużą skalę może zawierać setki połączonych urządzeń, odpowiedzialnych za zarządzanie procesem przemysłowym, a wiele z nich może znajdować się w zdalnych lokalizacjach, dostępnych dla napastnika. Złamanie zabezpieczeń choć jednego urządzenia może wystarczyć, aby zagrozić całemu procesowi produkcyjnemu, schematycznie ilustruje to rysunek 1.

Napastnik może przeprowadzić atak na duży proces przemysłowy z jednego narażonego czujnika IoT

Konsekwencje udanego ataku którego celem jest na przykład proces przemysłowy lub usługę komunalną mogą być bardzo różne, ale w dzisiejszych czasach mogą przekładać się na długotrwałe przerwy w działaniu ważnych elementów infrastruktury miejskiej lub nawet ofiary śmiertelne.

Możliwe są różne scenariusze zagrożeń. Wśród nich można wyróżnić cztery kategorie ataków, którymi dysponuje napastnik, które zebrane są w tabeli 1.

Tabela ilustrująca potencjalne wektory ataku na system wbudowany, podzielone na cztery ogólne kategorie

Metody sprzętowe wymagają fizycznego dostępu do systemu wbudowanego, przy czym te najbardziej inwazyjne wymagają dostępu do płytki drukowanej i komponentów systemu. Wiele metod ataków za pomocą oprogramowania nie wymaga od napastnika nawet zbliżenia się do systemu. Zdalne ataki za pomocą oprogramowania na systemy wbudowane stają się coraz bardziej „atrakcyjnym” przedsięwzięciem. Istotną cechą niektórych wektorów ataku jest to, że są stosunkowo proste do wykonania i wymagają minimalnych kosztów.

Najbardziej chyba „publicznie znanym” typem ataku są ataki za pomocą oprogramowania. Złośliwe oprogramowanie (malware) oznacza dowolne oprogramowanie wstrzyknięte do systemu wbudowanego w celu przejęcia kontroli nad systemem.

Celem tego działania jest uzyskanie dostępu lub modyfikacji funkcji oprogramowania, interfejsów i portów, lub dostępu do pamięci i rejestrów mikrokontrolera. Jest to stosunkowo tani wektor ataku, który opiera się na dosyć powszechnie dostępnej (głównie w Internecie) wiedzy i dostępie do komputera. Złośliwe oprogramowanie może stanowić część zaplanowanego, iteracyjnego procesu uzyskiwania dostępu do systemu poprzez pobranie w pierwszym kroku kluczy kryptograficznych lub otwarcie uprzednio zabezpieczonych portów komunikacyjnych. Napastnicy mogą wstrzykiwać złośliwe oprogramowanie poprzez fizyczne interfejsy, takie jak port debugowania systemu, lub stworzyć fałszywą wersję aktualizacji oprogramowania sprzętowego, którą system zainstaluje automatycznie.

Kolejnym możliwym sposobem na inwazję są ataki sprzętowe. Ataki kanałem bocznym (SCA) wymagają dostępu do sprzętu systemu wbudowanego, lecz są nieinwazyjne. Jedną z technik jes prowadzenie analiza różnicowej mocy. Polega ona na ścisłym monitorowaniu zużycia energii przez system podczas jego pracy. Z upływem czasu możliwe staje się określenie na podstawie zmian w poborze mocy, jaka funkcja w systemie jest aktywna. Możliwe jest zrozumienie wewnętrznego zachowania urządzenia i jego architektury oprogramowania. Pokrewną techniką jest krótkie zakłócenia zasilania, któ®a w niektórych przypadkach może zmusić system wbudowanego do przejścia w stan błędu, w którym porty i interfejsy debugowania często nie są już zabezpieczone.

Ataki inwazyjne na sprzęt wymagają znacznych inwestycji w czas i specjalistyczne wyposażenie. Wymagają również dogłębnej znajomości konstrukcji urządzeń półprzewodnikowych i technologii procesowych, co zwykle przekracza możliwości większości napastników typowo chcących ukraść własność intelektualną.

Kolejna pozycja z tabeli 1 to ataki sieciowe. Atak typu MITM (man-in-the-middle) polega na przechwytywaniu i podsłuchiwaniu komunikacji pomiędzy urządzeniem wbudowanym a systemem hosta. Umożliwia to przechwytywanie danych logowania do hosta i zbieranie kluczy kryptograficznych. W większości przypadków atak MITM jest trudny do wykrycia; szyfrowanie danych i stosowanie protokołów IPsec stanowi skuteczny sposób przeciwdziałania takim wektorom ataku.

Oczywiście wielość wektorów ataku napędza ciągły wyścig między napastnikami a obrońcami, którzy starają się zneutralizować ataki. W tym miejscu zbliżamy się do tematu kryptografii, której znaczenie od pewnego czasu stało się kluczowe. To, co jeszcze całkiem niedawno było interesujące tylko teoretycznie, teraz uzyskało naprawdę gigantyczny potencjał aplikacyjny. 

Najpopularniejsza metoda komunikacji kryptograficznej stosowana do uwierzytelniania w systemach wbudowanych wykorzystuje infrastrukturę klucza publicznego (PKI). Uwierzytelnianie potwierdza tożsamość nadawcy wiadomości.

Najpopularniejsze algorytmy szyfrowania PKI to RSA (nazwa pochodzi od inicjałów twórców: Rivesta, Shamira i Adlemana) oraz kryptografia krzywych eliptycznych (ECC). Działają one w oparciu o parę kluczy (prywatny i publiczny), które pozostają w relacji asymetrycznej. Inicjator chroni klucz prywatny, lecz dzieli się kluczem publicznym z każdym, komu chce udostępnić zaszyfrowaną wiadomość. Schemat działania tego typu szyfrowania przedstawia ilustracja 2.

Wymiana wiadomości z wykorzystaniem infrastruktury klucza publicznego

Na rysunku podane są nazwy zarówno w języku polskim, jak i angielskim. W tej dziedzinie absolutnie obowiązującym językiem jest angielski, dlatego przy prowadzeniu dalszych poszukiwań w temacie tych zagadnień wyszukiwać należy haseł w wersji angielskiej. Wracając do istoty zagadnienia wyjaśnianego na rysunku, każdy, kto posiada klucz publiczny, może odszyfrować wiadomość zaszyfrowaną kluczem prywatnym. Na rysunku 3. użytkownik John Doe2 (Jan Kowalski 2) może zaszyfrować wiadomość kluczem publicznym i wysłać ją do Johna Doe1 (Jan Kowalski 1), który może ją odszyfrować przy użyciu klucza prywatnego. Lecz John Doe3 (Jan Kowalski 3) nie będzie mógł odczytać wiadomości przeznaczonej dla Johna Doe1 (Jan Kowalski 1).

Innym aspektem kryptografii jest potwierdzenie, że sama wiadomość nie została naruszona podczas transmisji. Algorytmy mieszające weryfikują integralność wiadomości. Skrót (ang, HASH, czyli ciąg bitów o stałej długości) jest tworzony z wiadomości i wysyłany do odbiorcy wraz z wiadomością. Proszę zwrócić uwagę, że napastnik nie może odtworzyć wiadomości ze skrótu. Do popularnych algorytmów mieszających należą MD5 i SHA-1/2/3. Dodanie podpisu, utworzonego przy użyciu algorytmu klucza publicznego, dodaje uwierzytelnienie do integralności mieszania, tak jak przedstawia to ilustracja 3.

Dodanie uwierzytelniania do integralności wiadomości za pomocą algorytmu klucza publicznego PKI

Wdrażanie zabezpieczeń systemów wbudowanych z jednej sgrony w dzisiejszych czasach jest koniecznością, a z drugiej wymaga bardzo specjalistycznej wiedzy nie związanej stricte z elektroniką. Aby ułatwić programistom wdrażanie niezawodnych i solidnych funkcji bezpieczeństwa w nowych projektach, producenci półprzewodników oferują sprzętowe funkcje i struktury bezpieczeństwa. Do przykładów należą Secure Vault firmy Silicon Labs oraz STM32Trust firmy STMicroelectronics (ST). Zarówno SecureVault jak i STM32Trust posiadają certyfikaty Platform Security Architecture (PSA) na poziomie 3. PSA to branżowe partnerstwo certyfikacyjne, pierwotnie założone przez firmę Arm, lecz obecnie będące globalną współpracą firm produkujących półprzewodniki, organizacji certyfikujących oraz laboratoriów oceniających bezpieczeństwo systemów wbudowanych. 

Rozwiązanie firmy Silicon Labs „Secure Vault” zawiera bogaty pakiet funkcji o różnym stopniu skuteczności i skomplikowania; pełną ich listę przedstawia ilustracja 4.

Funkcje dostępnych w platformie zabezpieczeń systemów wbudowanych Secure Vault firmy Silicon Labs

Na liście funkcji dostępnych w Secure Vault, znajdziemy implementacje bardzo szerokiego spektrum metod od podstawowych funkcji kryptograficznych po bardziej zaawansowane środki zaradcze DPA i funkcje bezpiecznego zarządzania kluczami.

Podobny zestaw funkcji oferuje firma ST w swoim pakiecie „STM32Trust”, ich listę przedstawia ilustracja 5.

Zestaw funkcji platformy bezpieczeństwa STM32Trust firmy STMicroelectronics

Funkcje dostępne w mikrokontrolerach poszczególnych producentów są zależne od urządzenia. Podstawowe koncepcje wbudowanych zabezpieczeń stosowane w obu platformach są zasadniczo takie same, chociaż każdy producent może implementować daną funkcję we właściwy dla siebie sposób.

Na przykład, funkcja Secure Vault, Secure boot with the root of trust wykorzystuje początkowy kod rozruchowy z niezmienialnej pamięci ROM urządzenia. Idea tego rozwiązania jest przedstawiona na ilustracji 6.

Funkcja bezpiecznego uruchamiania systemu Secure Vault ze źródłem zaufania

Żaden przeciwnik nie jest w stanie zmienić kodu rozruchowego przechowywanego w strukturze układu scalonego, więc programiści mogą ufać temu etapowi rozruchu z bardzo wysokim stopniem pewności. Kod zawarty w pamięci ROM jest uznawany za tzw. źródło zaufania (Root of Trust) i służy do walidacji podpisu następnej sekcji kodu, który ma zostać załadowany. Jest to tzw. bootloader pierwszego poziomu. Pierwszy poziom następnie sprawdza poprawność podpisu bootloadera drugiego poziomu, sprawdzając najpierw, czy dostępne są jakiekolwiek podpisane aktualizacje. Bootloader drugiego poziomu sprawdza również, czy dostępne są jakiekolwiek podpisane aktualizacje drogą radiową (OTA) dla kodu aplikacji przed jej wykonaniem. 

Kolejną funkcją Secure Vault jest Anti-Rollback Prevention (ochrona przed przywracaniem), która zapewnia, że w urządzeniu będą działać tylko nowe, podpisane aktualizacje oprogramowania sprzętowego. Funkcja ta uniemożliwia napastnikowi, który może wiedzieć o lukach w starszych wersjach oprogramowania firmware, wgranie ich w celu wykorzystania i przejęcia urządzenia.

Rozwiązanie firmy ST wykorzystuje kilka metod monitorowania systemu, które zapewniają ochronę w nieprawidłowych stanach pracy. Obejmują one zaawansowane wykrywanie sabotażu, na przykład otwarcia obudowy produktu, nieprawidłowo niskiego napięcia na szynach zasilających, odłączenia zewnętrznego zegara lub ataków przez różnice w poborze mocy. Monitorowana jest również temperatura urządzenia. Te formy wykrywania wspólnie pozwalają ustalić, czy napastnik próbuje wywołać stan awarii lub zmusić układ scalony do przejścia w tryb, który uczyni go podatnym na ataki. Programowalne mechanizmy odpowiedzi na potencjalny wektor ataku sabotażowego obejmują przerwania, resety i usuwanie kluczy tajnych.

STM32Trust i Secure Vault chronią porty debugowania i inne interfejsy peryferyjne przed atakiem. Te porty i interfejsy zapewniają dostęp do zasobów urządzenia, w tym pamięci, procesora i rejestrów. Debugowanie każdego systemu wbudowanego jest niezbędne w każdym projekcie na etapie jego powstawania, lecz dostęp do portu debugowania po zakończeniu prac nad urządzeniem  jest zazwyczaj blokowany, aby utrzymać bezpieczeństwo urządzenia. 

Ochrona wbudowanej pamięci SRAM jest kolejną krytyczną funkcją STM32Trust i zapewnia mechanizmy automatycznego czyszczenia pamięci SRAM w przypadku wykrycia nieprawidłowego zdarzenia.

Zarówno STM32Trust jak i Secure Vault posiadają certyfikowany przez NIST (National Institute of Standards and Technology) generator liczb losowych (RNG). Skuteczny RNG jest niezbędnym wymogiem dla każdego procesu kryptograficznego.

Generator liczb losowych, który nie jest autentycznie losowy oznacza, że przeciwnik może odkryć i wykorzystać „prawie-losową” sekwencję, przez co protokół bezpieczeństwa staje się podatny na atak.

Uwzględnienie wysokiego stopnia zabezpieczeń w systemie wbudowanym jest niezwykle istotne. Jest to bardzo specjalistyczne i jednocześnie szerokie zagadnienie; opanowywanie i implementacja ich od podstaw jest bardzo trudnym i czasochłonnym zadaniem. Aby pomóc w tej sytuacji, producenci półprzewodników, tacy jak Silicon Labs i ST, opracowali sprzętowe i firmowe rozwiązania bezpieczeństwa z certyfikatem PSA dla swoich mikrokontrolerów, znacznie upraszczające ten proces. Wdrażanie zabezpieczeń systemów wbudowanych przy użyciu jednej z tych platform pomaga przyspieszyć cykl projektowania i pozwala deweloperom skupić się na głównych zadaniach aplikacji.

Powyższa publikacja to artykuł techniczny firmy Mouser, jego wersja polska została przygotowana przez firmę specjalnie do publikacji na Blogu ElPortalu. Firma Mouser zamieszcza dużo interesujących materiałów na swoim Twitterze.

Firma: Mouser Electronics
Tematyka materiału: Bezpieczeństwo systemów wbudowanych, kryprografia
AUTOR
AUTOR
Udostępnij
Zobacz wszystkie quizy
Quiz weekendowy
Edukacja
1/10 Jak działa rezystor LDR?
UK Logo
Elektronika dla Wszystkich
Zapisując się na nasz newsletter możesz otrzymać GRATIS
najnowsze e-wydanie magazynu "Elektronika dla Wszystkich"