Zabezpieczanie urządzenia IoT - staje się coraz bardziej istotne
| TechnikaImplementacja zabezpieczeń w dowolnym systemie embedded nie jest prostym zadaniem. Wiadomości, jakie słyszy się codziennie o hakerach kradnących poufne informacje lub wyłączonych witrynach z powodu ujawnienia informacji o klientach, wystarczą, aby pozbawić snu każdego programistę. Krajobraz zagrożeń nieustannie się zmienia, a sposoby ataków ciągle się zmieniają.
Opisane problemy dotyczą nie tylko luk w zabezpieczeniach produktów konsumenckich. Pod koniec 2020 r. hakerzy zablokowali produkcję jednego z dostawców układów półprzewodnikowych i zażądali okupu. To dlatego, że atakowanie konsumentów przynosi niewielkie korzyści. Znacznie bardziej dochodowe jest żerowanie na dużych firmach i organizacjach, poza tym takim ofiarom zazwyczaj zależy na uniknięciu rozgłosu. Obecnie technologie takie jak przemysłowy Internet Rzeczy (IIoT) wymagają od programistów jak najlepszego zabezpieczania każdego fragmentu kodu. Przejście od ataków na zdalne serwery IT w chmurze i centra danych w przedsiębiorstwie do atakowania lokalnych elementów infrastruktury, takich jak czujniki, węzły brzegowe i bramki, wskazuje na zmianę kierunków ataków, co przedstawiono na rysunki 1. Na przykład dostęp do węzła brzegowego czujnika temperatury zagraża nie tylko indywidualnemu urządzeniu, ale też umożliwia atak na połączoną z nim infrastrukturę za pośrednictwem tego czujnika.
Zmienia się także otoczenie regulacyjne, a ostatnio uchwalone przepisy w USA i Europie określają ramy prawne zarówno dla urządzeń konsumenckich, jak i przemysłowych. W Stanach Zjednoczonych przygotowywana jest federalna ustawa NIST.IR 8259, która określa zagadnienia dotyczące bezpieczeństwa i precyzuje zalecenia dotyczące ich przezwyciężenia w przypadku urządzeń IoT. Po ratyfikacji standard NIST stanie się uznawaną na całym świecie specyfikacją bezpieczeństwa urządzeń ISO IoT. Kilka stanów USA jest również na bardzo zaawansowanym etapie wdrażania wymogów NIST.IR 8259. Rysunek 2 przedstawia niektóre z podstawowych zasad bezpieczeństwa, których dotyczą niniejsze regulacje.
Podobne regulacje są opracowywane w Europie przez organizację normalizacyjną ETSI jako specyfikacja techniczna TS 103 645, a norma EN 303645 zatytułowana "Cyberbezpieczeństwo konsumentów w Internecie Rzeczy" zostanie powszechnie przyjęta przez państwa europejskie i inne, takie jak Australia.
W niniejszym artykule opisano kroki prowadzące do wdrożenia bardziej niezawodnych zabezpieczeń urządzeń IoT oraz wyjaśniono różne koncepcje związane z wbudowanymi zabezpieczeniami i wdrażaniem spójnego, kompleksowego podejścia do zabezpieczeń systemów embedded.
Luki w zabezpieczeniach
Programiści rozwiązań wbudowanych dobrze rozumieją wymagania dotyczące bezpieczeństwa, jednakże kroki niezbędne do ich wdrożenia wydają się skomplikowane i trudne. Prawdopodobnie było to o wiele łatwiejsze, gdy systemy embedded były urządzeniami samodzielnymi. Wraz z powszechnością komunikacji są wszechobecne, przez co każde urządzenie IoT jest podatne na atak. Ponadto przeciwnicy są dużo bardziej doświadczeni, a kierunki ataków nie ograniczają się do protokołu TCP/IP i skanowania portów – każda funkcja urządzenia może stanowić pole ataku.
Znajomość prawdopodobnych metod ataku pomaga w podjęciu decyzji, jakich metod ochrony użyć zarówno po stronie sprzętu, jak i oprogramowania, niemniej rzeczywiste problemy mogą być wyrafinowane, np. poprzez analizę poboru mocy (DPA) lub poprzez uzyskanie fizycznego dostępu do portu JTAG. DPA polega na szczegółowym analizowaniu zużycia energii przez urządzenie w czasie rzeczywistym w celu ustalenia, co może ono robić. Po pewnym czasie można zbudować cyfrowy model tego, co może robić procesor. Funkcje kryptograficzne wymagają dużej mocy obliczeniowej, dzięki czemu przeciwnik może zidentyfikować operacje związane z częstymi zadaniami szyfrowania i deszyfrowania. Po ustaleniu działania można próbować wymusić błąd, który może otworzyć dostęp do rejestrów i portów. Inne techniki obejmują manipulowanie zegarem systemowym, wprowadzanie zakłóceń do złączy urządzeń peryferyjnych i zmniejszanie napięcia zasilania do punktu, w którym zachowanie procesora staje się niestabilne.
Zabezpieczanie urządzenia
Podczas przeglądu systemu zabezpieczeń, który ma zostać wdrożony w urządzeniu IoT, zespoły inżynierów mogą uznać wytyczne branżowe, takie jak ioXt, za dobry punkt wyjścia. W ramach ioXt opracowano ramy złożone z ośmiu zasad obejmujących bezpieczeństwo IoT, możliwość aktualizacji i przejrzystość, których inżynierowie mogą przestrzegać podczas projektowania urządzenia IoT:
- Brak uniwersalnych haseł, czyli sprzedaż urządzenia z unikatowym hasłem początkowym zamiast prostego wspólnego hasła.
- Zabezpieczenia każdego interfejsu komunikacyjnego – wszystkie kanały komunikacji powinny być szyfrowane i uwierzytelniane podczas użytkowania.
- Wykorzystanie sprawdzonej kryptografii – zaleca się stosowanie zatwierdzonych w branży i otwartych standardów oraz algorytmów kryptograficznych.
- Bezpieczeństwo w standardzie – produkty powinny być dostarczane z włączonymi zabezpieczeniami na najwyższym możliwym poziomie.
- Podpisane aktualizacje oprogramowania – aktualizacje oprogramowania drogą radiową powinny być podpisane, aby urządzenie odbierające mogło uwierzytelnić aktualizację przed jej instalacją.
- Automatyczne aktualizacje oprogramowania – zamiast pozostawiać aktualizacje konsumentowi, urządzenie powinno automatycznie stosować uwierzytelnione aktualizacje oprogramowania, by zapewnić sobie najnowsze poprawki zabezpieczeń.
- Schemat zgłaszania luk – producenci powinni zapewnić użytkownikom możliwość zgłaszania potencjalnych problemów z bezpieczeństwem w celu szybkiego łatania dziur w zabezpieczeniach.
- Data wygaśnięcia zabezpieczenia – podobnie jak gwarancja, wsparcie producenta powinno również w pewnym momencie wygasnąć. Producenci mogą oferować rozszerzony program wsparcia, aby pomóc odroczyć koszty ciągłego wspierania bezpieczeństwa i aktualizacji.
Wdrażanie kompleksowego podejścia do bezpieczeństwa
Z uwagi na szybką ewolucję technologii zespoły projektantów aplikacji IoT z trudem nadążają z przygotowywaniem coraz to nowych zabezpieczeń. Pomocą jest tutaj platforma Secure Vault opracowana przez Silicon Labs, która wykorzystuje funkcje sprzętowe i oprogramowanie, aby zapewnić kompleksowy system bezpieczeństwa w ramach układu SoC, takiego jak EFM32MG21B.
Platforma Secure Vault uzyskała certyfikat branżowych grup zajmujących się bezpieczeństwem – PSA Certified i ioXt Alliance. Certyfikat poziomu drugiego wydany przez PSA Certified oparty jest na normach bezpieczeństwa, których współtwórcą jest Arm. SoC z Secure Vault realizuje wszystkie funkcje bezpieczeństwa, których można oczekiwać od nowoczesnej aplikacji, takie jak generator liczb losowych, jednostka szyfrująca, bezpieczny magazyn i wsparcie dla bezpiecznego rozruchu. Secure Vault pomaga przeciwstawić się atakom DPA, umożliwia wykrywanie manipulacji, zapewnia bezpieczne zarządzanie kluczami i innymi.
Ponieważ typowym wektorem ataku staje się ingerencja w działanie kodu odpowiadającego za rozruch lub podmiana kodu na taki, który przekierowuje dane na inne serwery, Secure Vault wykorzystuje ulepszony proces rozruchu, który korzysta zarówno z mikrokontrolera aplikacji, jak i mikrokontrolera elementu zabezpieczonego. Zawiera on mechanizm Root of Trust (RoT) i bezpieczną funkcję ładowania kodu, aby możliwe było wykonanie tylko zaufanego kodu aplikacji.
Innym sposobem hakerów jest przywrócenie firmware do poprzedniej wersji, która miała luki w zabezpieczeniach. W przypadku Secure Vault środki zapobiegające odinstalowywaniu aktualizacji oprogramowania wykorzystują podpisane cyfrowo oprogramowanie sprzętowe w celu sprawdzenia, czy należy użyć aktualizacji.
Niektóre systemy embedded dawniej korzystały z publicznie dostępnego, unikalnego identyfikatora produktu (UID) do identyfikacji. Zdaniem specjalistów obecnie ułatwiają one podrabianie produktów, bo łatwo mogą zostać skopiowane. Dzięki Secure Vault generowana jest unikatowa para klucza publicznego/tajnego ECC, a klucz tajny jest bezpiecznie przechowywany na chipie. Aplikacje mogą żądać certyfikatu urządzenia, ale odpowiedź jest podpisywana kluczem tajnym urządzenia, a nie wysyłana z certyfikatem.
Wnioski
Potrzeba solidnych zabezpieczeń jest najważniejszą potrzebą każdego opracowywanego obecnie urządzenia wbudowanego. Coraz szersze spektrum zagrożeń, z jakimi urządzenia IoT spotykają się ze strony przeciwników, wymaga kompleksowego zabezpieczenia, które ma działać już od momentu wysyłki. Dzięki Secure Vault zespoły projektantów mogą być pewne, że od samego początku istnieje solidny system ochrony przed atakami na oprogramowanie firmware.
Mouser Electronics
pl.mouser.com/ti