TABLE OF CONTENTS:
Kiedy przygotowywałem się do certyfikacji CEH, to w jego wersji v11 pojawił się moduł dedykowany IoT. W artykule postaram się przybliżyć wybrane rozwiązania i w kilku zdaniach wyrazić opinię o tym, jak możemy zapewnić poufność w systemach. Na łamach tego tekstu omówię zabezpieczenia systemów na warstwie sieciowej oraz zagrożenia wynikające z używania fal radiowych jako medium transmisyjnego. Dowiecie się również, z jakimi technikami ataku na systemy o swobodnym dostępie możecie spotkać się na co dzień. Może zaciekawi Was również mój poprzedni artykuł: Bezpieczeństwo internetu rzeczy – protokoły szyfrujące w systemach IoT.
IoT czyli Internet of Things (albo w niektórych publikacjach Internet of Everything) to dziedzina w technologiach informacyjnych, której początki datuje się na wczesne lata 80. Mimo że w języku polskim mamy powiedzenie, że gdy coś jest do wszystkiego, to jest do niczego, to takie określenie IoT byłoby nader krzywdzące.
Najkrócej rzecz ujmując, urządzenia IoT, które oprócz przydatnych funkcji, czyli świadczenia zwyczajnych czynności ludziom (od zastosowań w przemyśle i automatyce, poprzez urządzenia do leczenia i ratowania życia, do czujników alarmowych, kamer przemysłowych oraz Smart TV) posiadają też moduł sieciowy. Nieważne, czy NIC (interfejs sieciowy) jest przewodowy czy bezprzewodowy, gdyż w każdym przypadku umożliwia on komunikację w ramach szeroko rozumianych sieci, w tym Internetu. Tak zrealizowane systemy komunikują się miedzy sobą, mogą też być odgórnie sterowane, a od Internetu oddziela je brama (IoT Gateway). Urządzenia IoT korzystają z dobrodziejstwa łączności i mogą być sterowane za pomocą aplikacji, a w elementach takich systemów często pojawiają się serwery chmurowe, w których dokonywana jest analiza danych. Wachlarz zastosowań systemów IoT jest bardzo szeroki, a co za tym idzie, mogą pojawić się dość istotne problemy natury bezpieczeństwa internetu rzeczy.
Z pomocą przychodzą mechanizmy i technologie zabezpieczania warstwy sieciowej , które mogą przewidywać segmentację sieci, czyli dzielenie sieci na osobne VLAN-y (segmentacja na warstwie L2). Dużą wartością dodaną dla bezpieczeństwa takich systemów będzie polityka NAC, oparta choćby o serwer radius i ogólnie standard 802.1X.
Aby usystematyzować te informacje, posłużę się ogólnym schematem architektury takich systemów:
W systemach IoT często możemy spotkać się z wymaganiem niskiego poboru energii, żeby zasilanie bateryjne wytrzymywało jak najdłużej (na przykład w systemach takich jak ZigBee). Jest tutaj niestety potrzebny kompromis, bo algorytmy szyfrowania bywają łakome na zasoby obliczeniowe – zwłaszcza te asymetryczne (potęgowanie, czyli wielokrotne mnożenie, mnożenie punktów na krzywych eliptycznych, czyli wielokrotne ich dodawanie) są obliczeniowo kosztowne i wykazują korelację ze zużyciem energii.
Jestem zadeklarowanym pasjonatem szachów, więc pozwolę sobie na przytoczenie pewnego żartu jednego z silniejszych polskich arcymistrzów szachowych, Bartosza Soćki. Rozważania o sile komputerów wobec ludzkich możliwości w tej dyscyplinie i płynącym z tego faktu zagrożeniom w postaci dopingu elektronicznego, skwitował stwierdzeniem, że współcześni arcymistrzowie sporo muszą się napocić, aby nie przegrać z młynkiem do kawy. Gdy usłyszałem ten żart, natychmiast przyszły mi skojarzenia na temat wszechobecności urządzeń IoT i tego, jak w niektórych dziedzinach dość skąpa moc obliczeniowa może stawić czoła ludzkiemu intelektowi! Ale do sedna.
Używanie łączności bezprzewodowej niesie za sobą poważne zagrożenie, że nie da się ukryć systemu, który jest obecny w widmie częstotliwościowym. Wynika z tego wprost, że systemy te są podatne na podsłuchiwanie, a co za tym idzie – podsłuchana komunikacja może zostać poddana działaniom inżynierii wstecznej (np. kryptoanalizie). Systemy radiowe w warstwie funkcjonalnej opierają się o techniki modulacji i teorii informacji – osoba, która je analizuje, musi wykazać się biegłością również w tej materii.
Gdy mamy swobodny dostęp do takiego urządzenia IoT, pojawiają się możliwości podłączenia się pod interfejs SPI Flash czy eMMC (potrzebne zdolności lutowania ) i przeczytania całego oprogramowania układowego, gdzie znaleźć można wiele informacji (np. kod źródłowy i binarki usług oferowanych przez urządzenie (whardcodowane) hasła wpisane na sztywno czy klucze sesyjne SSH). Do samej analizy oprogramowania układowego wielce pomocne mogą być narzędzia dostępne tutaj. Przy użyciu specjalistycznej aparatury (analizatora widma, oscyloskopu) możliwe jest poszukiwanie tzw. bocznych kanałów.
Zasadniczo techniki te polegają na obserwacjach urządzenia podczas jego normalnej pracy. Zwraca się uwagę na parametry takie jak zużycie energii, emitowanie ciepła, czy promieniowanie elektromagnetyczne. Bardzo dobre rezultaty można jednak uzyskać stosując podejście, w którym celowo zaburzamy normalne działanie badanego urządzenia IoT.
Przykładowo, gdy zaczniemy zakłócać sygnał zegarowy urządzenia (te podejścia są nazywane ogólnie Fault Injection Attacks) dokonują się np. próby odblokowania JTAG (glitching). Gdy interfejs JTAG zostanie odblokowany, otwiera furtkę i mamy możliwość manipulowania działaniem oprogramowania wbudowanego. Dzięki temu, na podstawie obserwacji przebiegów urządzenia, możemy odkryć większość mechanizmów kontrolnych opartych o oprogramowanie zapewniających bezpieczeństwo badanego urządzenia. Aby utrudnić takie czynności, stosuje się różnego rodzaju powłoki ekranujące (zawarte w samej konstrukcji urządzenia podczas jego montażu), które osłabiając emitowane pole elektromagnetyczne, osłabiają ten boczny kanał.
Same zabezpieczenia fizyczne (zalewanie żywicą epoksydową, czy ukrywanie linii adresowych pomiędzy komponentami elektronicznymi) mogą pomóc w uniemożliwieniu fizycznego dostania się do obwodów drukowanych.
Żeby dobrze zabezpieczyć system IoT przed wspomnianymi rodzajami ataków, można użyć metod inżynierii wstecznej dla sprawdzenia odporności na tego typu ataki:
W tym przypadku podczas realizowania szyfru tworzy się wykres zależności od zużycia mocy w funkcji czasu i na jego podstawie dochodzi się do sedna. W podejściu SPA (Simple Power Analysis) systemy oparte o RSA, opierające się na warstwie funkcjonalnej o technikę faktoryzacji, wykazują podatność na tego typu analizy. Należy się temu przeciwstawić, wykorzystując techniki typu aktywnego maskowania danych wejściowych np. poprzez ich losowe opóźnianie oraz dodawanie przetwarzania nadmiarowych elementów – tak aby zbić z tropu potencjalnego atakującego.
Z kolei w podejściu DPA (Differential Power Analysis), używając analizy statystycznej na zbiorze pomiarów badanego systemu kryptograficznego (podczas jego działania), podejmuje się próby ekstrakcji klucza. Co do technik zabezpieczających, to na rynku są dostępne specjalne biblioteki, które mogą zlikwidować to ryzyko, ale istnieją również rozwiązania sprzętowe, uniemożliwiające tego rodzaju ataki.
Tutaj znajdziesz przykład badań nad wiodącym na rynku i uznanym za bezpieczny – algorytmem symetrycznym AES.
Na koniec warto wspomnieć o dwóch modelach, które pomagają wprowadzać polityki bezpieczeństwa informacji w organizacjach: trójkącie CIA i Sześciokącie Parkera.
Pod akronimem CIA kryją się 3 elementy:
Ten model został rozszerzony w 2002 roku przez Donna B. Parkera i dodano do niego następujące elementy:
Swobodny dostęp jest blisko związany ze stanem posiadania. Łatwo sobie więc wyobrazić sytuację, że jakieś urządzenie posiada wyrafinowane i niebanalne zabezpieczenia, które kruszy tak prozaiczna czynność jak ręczne resetowanie urządzenia do ustawień fabrycznych.
IoT to dziedzina, która cały czas przeżywa bardzo dynamiczny wzrost udziału w rynku, a samych źródeł traktujących o standardach wytwarzania, czy poradników z dobrymi praktykami ich zabezpieczania, jest naprawdę pokaźna ilość. Zagrożenia, czyhające na bezpieczeństwo urządzeń IoT, oraz ich zabezpieczanie to temat rzeka – przedstawione przeze mnie punkty nie wyczerpują tematu, ale stanowią dobry punkt do otwarcia dyskusji, do czego gorąco zachęcam.