Jak zapewnić kompleksowe bezpieczeństwo systemów wbudowanych?
| TechnikaSystemy wbudowane muszą jak najszybciej zmienić reputację łatwych ofiar dla hakerów. Jednym z powodów, przez który zaczęły być tak postrzegane jest fakt, że wiele z nich polega na pojedynczym, słabym mechanizmie zabezpieczeń, którego rolą jest zapobieganie niepowołanemu dostępowi do gromadzonych w nich treści i do realizowanych funkcji.
Gdy urządzenia wbudowane zaczęły rutynowo łączyć się z Internetem, słabość takiego podejścia stała się natychmiast zauważalna. W efekcie haker, który znalazł kod dostępu do jednego z urządzeń, mógł z powodzeniem wykorzystać go do włamania się do innych urządzeń tego samego typu. Hakerzy pokazali, na co ich stać poprzez wykorzystanie opisanej podatności, podmieniając firmware atakowanych urządzeń i w ten sposób dołączając je do własnych botnetów.
O ile istnieje ogromna liczba producentów, którzy dostarczają rozwiązania bezpieczeństwa do systemów wbudowanych, zazwyczaj koncentrują się oni jedynie na określonym aspekcie systemu, podczas gdy prawdziwe bezpieczeństwo działania może być osiągnięte, dopiero kiedy tworzone rozwiązanie obejmuje system od początku do końca. Odpowiedzialność za bezpieczeństwo w komunikacji pomiędzy dwoma końcami systemu leży po stronie projektanta, który musi myśleć holistycznie, by mieć pewność, że wziął pod uwagę wszystkie istotne kwestie i podsystemy. Kluczowym wymaganiem dla wszystkich urządzeń wbudowanych jest zabezpieczony kodem unikalnym dla każdego urządzenia dostęp do funkcji serwisowych. Trzeba jednak pamiętać, że jest to absolutne minimum. W praktyce projektowanie z myślą o bezpieczeństwie musi zostać podzielone na wiele warstw i oddzielnych mechanizmów, które zapobiegną różnym rodzajom ataków, jakimi mogliby się posłużyć hakerzy.
Zabezpieczanie przed manipulowaniem i bezpieczeństwo urządzeń
Projektanci systemów wbudowanych muszą mieć na uwadze wiele różnych potencjalnych punktów ataku, jaki mogliby przeprowadzić hakerzy. Na podstawie tej analizy inżynierowie powinni rozważyć, jaki rodzaj zabezpieczeń stanowi w danym przypadku optymalny kompromis pomiędzy ochroną, kosztem i zużyciem energii. Ataki mogą koncentrować się na zbieraniu danych celem ich przyszłego wykorzystania, na zatrzymywaniu świadczenia funkcji systemu by narazić operatora na koszty i pogorszenie reputacji, lub na bezpośrednim niszczeniu obiektów. Każdy z typów ataków będzie koncentrował się na innych elementach całego systemu lub systemu systemów. Coraz częściej hakerzy sięgają po strategie hybrydowe. Przykładowo - na tyle na ile mogą, skorzystają z fizycznego dostępu do jednego lub dwóch urządzeń, co pozwoli zebrać cenne informacje na temat sposobu jego działania. Dopiero później przeprowadzą atak zdalny na serwery w chmurze, dzięki czemu będą w stanie osiągnąć swój główny cel. Ochrona przed tymi coraz bardziej wyrafinowanymi zagrożeniami nierzadko wymaga wykorzystania różnorodnych komponentów, pochodzących do różnych dostawców.
Trzeba jednak pamiętać, że wszelkie zabezpieczenia kosztują. Weźmy na przykład szyfrowanie danych. Idealnie by było, gdyby dane przetwarzane przez urządzenie było szyfrowane w trzech fazach: w trakcie spoczynku w pamięci Flash lub w chmurze, w trakcie przesyłania przez sieć lub nawet przez systemową szynę danych oraz podczas używania ich przez procesor. Każdy cykl szyfrowania i deszyfrowania zwiększa zużycie mocy i koszt systemu. W przypadku samego przechowywania danych może być kuszącym zastosowanie bardzo długie klucze zabezpieczające treść, ponieważ czas potrzebny na włamanie się do systemu rośnie wykładniczo z długością klucza. Jednakże trzeba mieć na uwadze, że tak naprawdę wartość tych danych może szybko maleć z czasem, więc czy faktycznie jest sens bardzo silnie zabezpieczać informacje archiwalne?
Przykładowo, chwilowe wyniki pomiarów temperatury z czujników przemysłowych będą miały ograniczoną użyteczność dla atakującego, chyba że zyska on dostęp do kompletnej historii tych wartości, z których będzie w stanie odtworzyć przebieg jakiegoś zastrzeżonego procesu produkcyjnego. Sprawne chronienie tych informacji powinno znacznie bardziej skoncentrować się na bronieniu gromadzonych danych w chmurach lub w bramkach, służących do zbierania odczytów z wielu małych, lokalnych urządzeń, zamiast na jak najsilniejszym utrudnianiu pobierania wskazań z poszczególnych sensorów osobno. W małych urządzeniach oraz na potrzeby przesyłania danych przez Internet, sensowniejsze będzie zastosowanie lekkiego protokołu szyfrującego, dzięki czemu będzie można użyć tańszego procesora, pobierającego mniej mocy. Bramki takie jak FactoryCast firmy Schneider Electric, które dysponują większym poborem mocy i stanowią cenniejszy obiekt do ataku, mogą szyfrować dane silniejszymi algorytmami, zanim rozpoczną przesyłanie zgromadzonych treści do innych serwerów. Ponadto mogą pracować jako firewalle, blokujące próby ataku ze zdalnych lokalizacji, tj. spoza sieci zakładowej.
Cenniejsze dane, większa stawka
Jeśli same dane mają większą wartość, bo obejmują np. informacje osobiste na temat użytkownika, lub inne wrażliwe informacje finansowe, trzeba je chronić bardziej kompleksowo. Jednym ze sposobów na taką wielopoziomową ochronę jest zastosowanie mechanizmów bezpieczeństwa, opierających się o algorytmy sprzętowe. Samo oprogramowanie może nie być wystarczające, by zagwarantować bezpieczeństwo urządzeń wbudowanych. Wynika to z faktu, że bez oparcia się o jakąś formę zabezpieczeń sprzętowych, zbyt łatwo jest hakerom załadować do pamięci własne oprogramowanie w miejsce oryginalnego kodu i zapewnić sobie większy dostęp do zgromadzonych informacji.
Zakorzenienie algorytmów bezpieczeństwa w sprzęcie stanowi podstawę wszystkich użytych mechanizmów i zapewnia, że jedynie autoryzowani użytkownicy mogą dokonywać jakichkolwiek krytycznych zmian, czy to w odniesieniu do firmware'u, czy do gromadzonych danych. Ponadto, to w sprzęcie powinny być zaszyte najważniejsze klucze używane do szyfrowania pamięci danych lub transmisji informacji, które uznawane są za wrażliwe. W żadnym wypadku te prywatne klucze, przechowywane w pamięci nie powinny być udostępniane na zewnątrz. Architektura tego typu systemu powinna bazować na generowaniu tymczasowych kluczy dla sesji i przekazywaniu ich do kolejnych podsystemów, zgodnie z potrzebami. Wtedy, jeśli klucze faktycznie zostaną złamane, chronione przez nie dane nie będą już aktualne, a więc nie będą dla nikogo użyteczne, a nowe dane będą chronione innymi kluczami.
Szyfrowanie danych w układzie scalonym
W niektórych systemach można po prostu polegać na niedużych podzespołach, które stanowią właśnie takie sprzętowe zakorzenienie algorytmów bezpieczeństwa, realizując jedynie określony, specyficzny zestaw funkcji. Przykładem może być bezpieczny mechanizm zastosowany w szeregu mikrokontrolerów z rodziny ST32 od STMicroelectronics. Mogą one świadczyć usługi, takie jak bezpieczne ładowanie firmware’u, jego aktualizacje oraz sprawdzanie bezpieczeństwa w trakcie pracy urządzenia i przechowywanie kluczy. Bezpieczne ładowanie firmware’u staje się niezbędnym elementem mechanizmów zabezpieczeń urządzeń wbudowanych. Pozwala ograniczyć koszty dzięki możliwości zastosowania zwykłej pamięci Flash do przechowywania kodu programu, zamiast umieszczać go w drogiej, pojemnej bezpiecznej pamięci.
Wykorzystując hashe, bezpieczny mechanizm ładowania kodu sprawdza jego zgodność z kluczami, zapisanymi we własnym, bezpiecznym obszarze pamięci. Wtedy, jeśli utworzony na nowo skrót kodu zgadza się z oczekiwanym, system pozwala na uruchomienie się. W przeciwnym wypadku urządzenie automatycznie przywracane jest do ustawień fabrycznych, zaczytując poprawny kod z wbudowanej kości pamięci ROM, lub zwyczajnie uniemożliwia start aż do momentu, gdy użytkownik sam załaduje poprawny obraz z programem do pamięci Flash. Tymczasem już po uruchomieniu programu, system operacyjny może wywoływać te same funkcje i autoryzować wszystkie aplikacje, zanim pozwoli im na uruchomienie.
Wiele układów scalonych opartych o rdzenie ARM, w tym te z rodziny ST32, ma programowalny silnik bezpieczeństwa, bazujący o mechanizmie Trustzone, który pozwala na wbudowywanie różnego rodzaju zabezpieczeń. Przykładowo, mogą one szyfrować i deszyfrować dane przenoszone przez wbudowaną szynę systemową lub przez połączenie sieciowe.
Bezpieczeństwo w chmurze
Kolejnym wymaganiem, jakie stawia się przed urządzeniami instalowanymi w terenie, jest zdolność do odpierania fizycznych ataków, które mogłyby zagrozić działaniu sprzętowego korzenia bezpieczeństwa. Zasadniczo, jest możliwe by wymusić na tym mechanizmie, by pozwolił na dostęp do niepożądanego kodu lub przekazał własne klucze bezpieczeństwa, poprzez wprowadzenie go w nieprzewidywane, błędne warunki działania. Przykładami takich ataków mogą być próby przerw w zasilaniu i zmieniania sygnału zegarowego. Sama implementacja sprzętowego mechanizmu zakorzenienia zabezpieczeń może uwzględniać szereg przeciwdziałań, które całkiem skutecznie uniemożliwiają osiągnięcie sukcesu podczas wspomnianych prób ataków.
Nawet dobrze zabezpieczony sprzętowy korzeń bezpieczeństwa, dostępny na każdym urządzeniu, nie gwarantuje faktycznego bezpieczeństwa w kontekście całego systemu IoT. Haker może zdobyć sprzęt, który będzie udawał działanie autentycznych urządzeń, wprowadzić go do sieci i zakłócić funkcjonowanie całej aplikacji IoT. Z tego powodu, niezwykle ważnym jest by zabezpieczyć cały łańcuch komunikacji IoT. Proces produkcji, wdrażania i instalacji powinien umożliwiać na podłączanie jedynie poprawnych urządzeń, a więc w oparciu o zgodne poświadczenia. Zadanie związane z organizacją łańcucha dostaw tak, by można było urządzeniom wydawać certyfikaty, i by w chmurze przechowywane były komplementarne informacje, poświadczające zgodność tych certyfikatów i sprawdzane podczas instalacji, jest bardzo złożone. Mechanizmy tego typu są wspierane przez środowiska Microchip Trust Platform i Microsoft Azure IoT Hub. Ułatwiają organizację i kontrolowanie bezpiecznych łańcuchów produkcyjno-logistycznych.
W czasach, gdy zagrożenia względem systemów wbudowanych narastają, inżynierowie-projektanci mają dostęp do narzędzi, które pozwalają się im bronić przed takimi problemami. Jednakże by zapewnić wymagany poziom ochrony, muszą mądrze wybierać spośród szerokiej gamy rozwiązań, technik, protokołów i produktów, dostępnych obecnie na rynku, zamiast polegać tylko na pojedynczym, bezpiecznym komponencie.
Cliff Ortmeyer
Global Head of Technical Marketing, Farnell
źródło: Farnell