Internet Of Things: IoT Security - Rozdział 6
1. Big bounty hunter to tzw. "łowca nagród za błędy". Zostaje on zatrudniony celem poszukiwania błędów w oprogramowaniu. HackerOne to jedna z pierwszych firm oferujących usługi oceny podatności oparte na modelu crowdsourcingu. HackerOne zatrudnia etycznych hakerów do wykorzystania swoich talentów na prośbę klientów biznesowych HackerOne.
2. Ocena podatności identyfikuje luki, które prawdopodobnie zostaną wykorzystane przez aktorów zagrożeń. Mogą być one przeprowadzane rutynowo i regularnie, często w sposób zautomatyzowany, lub mogą być skierowane na konkretne komponenty systemu IoT. Składa się ona z następujących etapów:
3. Ocena podatności może być podzielona na trzy typy, w zależności od tego, kto ją przeprowadza i jak dobrze oceniający znają sieć:
- Biała skrzynka - Oceniąjący posiadają wiedzę o systemach sieciowych, które są oceniane. Często koncentrują się na określonych aspektach systemu, aby przeprowadzić swoje oceny. Ci testerzy zazwyczaj działają wewnątrz organizacji.
- Czarna skrzynka - Ta ocena jest najbardziej zbliżona do rzeczywistego ataku. Oceniąjący, którzy zwykle pracują dla firmy zewnętrznej, nie mają wiedzy o architekturze sieci przed przeprowadzeniem oceny.
- Szara skrzynka - Testerzy białej skrzynki identyfikują podatności, a następnie zatrudnia się testerów czarnej skrzynki, aby skierować ich na odkryte podatności. Tester szarej skrzynki ma częściową wiedzę o testowanych systemach sieciowych, w tym dostęp do dokumentacji architektury wewnętrznej sieci. Celem jest zweryfikowanie podatności, określenie łatwości ich wykorzystania i określenie potencjalnych skutków eksploatacji.
- Atak siłowy - Ten atak jest bardzo czasochłonny, nieefektywny, zautomatyzowany sposób próbowania każdej możliwej kombinacji liter, cyfr i symboli do wyzwań logowania.
- Atak słownikowy - Ten atak używa list słów, które mogą być używane jako hasła. Niektóre listy zawierają prawdziwe przykłady haseł, które zostały skradzione z kont użytkowników.
- Podsłuchiwanie i łamanie haseł - Wiele haseł jest przechowywanych lub przesyłanych jako hashe. Analizatory protokołów mogą być używane do przechwytywania ruchu uwierzytelniającego, który zawiera hashowane hasła. Hashowane hasła mogą być również odkryte w systemach plików urządzeń IoT.
- Tablice tęczowe - Tablice tęczowe zawierają hashowane wartości i ich odpowiedniki w postaci zwykłego tekstu. Te wcześniej złamane hasła znacznie przyspieszają proces dostępu do systemu. Bardzo duże tablice tęczowe można uzyskać online. Przechwycone hashe są wyszukiwane w tablicy tęczowej i, jeśli zostaną znalezione, równoważnik w postaci zwykłego tekstu może być znany bez faktycznego odszyfrowania hashowanego hasła. Jest to znacznie szybsze niż faktyczne łamanie hasha.
- podstawowej (Możliwość wykorzystania - Są to cechy exploitu, takie jak wektor, złożoność i interakcja użytkownika wymagana przez exploit. Metryki wpływu - Wpływy exploitu są zakorzenione w triadzie CIA poufności, integralności i dostępności. Zauważ, że bezpieczeństwo jest brakujące w metrykach.)
- czasowej (Mierzy cechy podatności, które mogą zmieniać się w czasie, ale nie w różnych środowiskach użytkowników. Z biegiem czasu nasilenie podatności zmieni się, gdy zostanie wykryta i opracowane będą środki przeciwdziałające. Nasilenie nowej podatności może być wysokie, ale będzie maleć, gdy pojawią się łatki, sygnatury i inne środki zaradcze.)
- środowiskowej (Mierzy aspekty podatności, które są zakorzenione w konkretnym środowisku organizacji. Te metryki pomagają kierować konsekwencjami w organizacji i również pozwalają na dostosowanie metryk, które są mniej istotne dla tego, co robi organizacja.)
- Nastawione na atak - Jest przeprowadzane z punktu widzenia atakującego.
- Nastawione na obronę - Analizuje system architektury, aby zidentyfikować zagrożenia dla różnych elementów.
- Nastawione na aktywa - Skupia się na klasyfikacji aktywów i przypisywaniu im wartości.
- Urządzenia IoT - Są to czujniki i siłowniki.
- Bramki IoT - Umożliwiają one przesyłanie danych z czujników przez sieć IP. Mogą również umożliwiać ruch kontrolny do siłowników.
- Lokalne aplikacje - Kontrolują i monitorują oprogramowanie, które znajduje się w tej samej sieci co czujniki i siłowniki.
- Urządzenia krawędziowe - Umożliwiają przesyłanie wewnętrznego ruchu IP między lokalizacjami a internetem lub chmurą.
- Aplikacje danych - Zapewniają dostęp do danych IoT, analiz i paneli sterowania.
- Przechowywanie danych - Są to magazyny danych i typy baz danych.
- Aplikacje kontrolne - Przetwarzają dane w celu podejmowania decyzji, które wprowadzają kontrolę.
- Aplikacje mobilne - Umożliwiają monitorowanie użytkowników i kontrolę z odległych lokalizacji.
- Każdy proces powinien mieć co najmniej jeden wejście i jeden wyjście.
- Magazyny danych powinny mieć przepływy zarówno dla dostępu do zapisu, jak i odczytu.
- Dane przechowywane w systemie muszą przejść przez co najmniej jeden proces.
- Unikanie ryzyka (Terminate) - zaprzestanie wykonywania działań, które generują ryzyko. Możliwe jest, że w wyniku oceny ryzyka stwierdzono, że ryzyko związane z działaniem przewyższa korzyść z działania dla organizacji. Jeśli okaże się to prawdą, może zostać ustalone, że działanie powinno zostać zakończone.
- Zmniejszanie ryzyka (Treat) - zmniejszenie ryzyka poprzez podjęcie środków mających na celu zmniejszenie podatności. Wiąże się to z wdrażaniem podejść zarządzania omówionych wcześniej w tym rozdziale.
- Dzielenie ryzyka (Transfer) - przeniesienie części ryzyka na inne strony. Na przykład techniką dzielenia ryzyka może być zlecenie niektórych aspektów operacji związanych z bezpieczeństwem stronie trzeciej.
- Zachowanie ryzyka (Tolerate) - akceptacja ryzyka i jego konsekwencji. Ta strategia jest akceptowalna dla ryzyk o niskim potencjalnym wpływie i stosunkowo wysokim koszcie łagodzenia lub redukcji. Inne ryzyka, które mogą być zatrzymane, to te, które są tak dramatyczne, że nie można ich realistycznie uniknąć, zredukować lub podzielić.
Gdy dokonujemy zakupu towarów lub usług, obie strony zgadzają się na metodę płatności. Zazwyczaj jest to jakaś forma tradycyjnej waluty, takiej jak gotówka, karta debetowa, karta kredytowa lub czek (weksel). Wszystkie te przypadki polegają na tym, że polegamy na stronie trzeciej, pośredniku, który gwarantuje transakcję finansową między kupującym a sprzedającym. Ten pośrednik może być rządem gwarantującym wartość waluty, lub bankiem gwarantującym, że sprzedawca otrzyma środki dostarczone przez kupującego. Jest powszechne, że instytucja finansowa, pośrednik, pobiera opłatę za tę usługę.
Transakcje finansowe takie jak te są zazwyczaj rejestrowane w jednym, scentralizowanym rejestrze kontrolowanym przez zaufanego pośrednika. Pośrednicy, tacy jak banki, prowadzą scentralizowany rejestr, który zawiera wszystkie swoje transakcje, w tym wpłaty, wypłaty i wszelkie opłaty związane z świadczeniem tej usługi. Ufamy, że rejestr jest dokładnie prowadzony i że nie ma w nim nieodpowiednich dodatków, usunięć ani zmian. To pozwala ludziom, którzy niekoniecznie się znają lub sobie ufają, prowadzić interesy, korzystając z zaufanego pośrednika do przetwarzania transakcji finansowej.
Zaufanie, które zapewniają ci pośrednicy, obejmuje:
- Uwierzytelnianie, że osoba dokonująca transakcji jest tym, za kogo się podaje.
- Zapewnienie, że wszystkie transakcje dokonane do rejestru, takie jak konto bankowe osoby, są dokładne.
- Nie zezwalanie na żadne nielegalne transakcje, takie jak próba wypłaty większej niż saldo.
Blockchain nie jest tylko dla kryptowalut. Może być stosowany do dowolnego rodzaju aplikacji, która korzysta z jakiegoś rodzaju transakcji lub rejestru.
Blockchain to ciągle rosnąca lista transakcji w formie bloków. Te bloki są ze sobą połączone i zabezpieczone za pomocą kryptografii. Blockchain korzysta z następujących technologii i funkcji:
- Podpisy cyfrowe
- Rozproszony rejestr
- Algorytm do osiągania konsensusu
- Każdy blok zawiera hash poprzedniego bloku, tworząc łańcuch bloków znany jako blockchain.
Wiele szczegółów zostało pominiętych w następujących wyjaśnieniach. Ważne jest również zauważenie, że istnieją różne rodzaje blockchainów. Celem tutaj jest pomoc w zobrazowaniu przykładu blockchaina i komponentów, które obejmuje.
28. Podpis cyfrowy to matematyczny schemat służący do uwierzytelniania informacji cyfrowych. Podpisu cyfrowego nie można skopiować, ponieważ jest zawsze inny. Wynika to z faktu, że do wygenerowania podpisu wykorzystuje się wiadomość lub transakcję. Nawet niewielka zmiana wiadomości powoduje całkowitą zmianę podpisu cyfrowego. Każdy blok w blockchainie składa się z kilku transakcji, w tym z jego podpisu cyfrowego. Podpisy cyfrowe obejmują wiadomość (lub transakcję), klucz prywatny i klucz publiczny, jak pokazano na rysunku.
Blockchain korzysta z rozproszonego rejestru, z którym wszystkie zainteresowane strony utrzymują kopię, jak pokazano na rysunku. Zaufanie jest zapewnione przez otrzymanie i zaakceptowanie przez wszystkich nowych transakcji. Innymi słowy, wszyscy muszą korzystać i pracować z dokładnie tym samym rejestrem. Jest to realizowane za pomocą procesu znanego jako Dowód Pracy (Proof of Work).
Blok zawiera transakcje wraz z ich podpisami cyfrowymi. Przykładowo komputer 1 weryfikuje, że wiadomość została utworzona przez Jose, używając publicznego klucza Jose. Walidacja transakcji w bloku wykorzystuje proces, który jest czasochłonny dla osoby go tworzącej, ale łatwy do zweryfikowania przez innych. Jest to znane jako Dowód Pracy (PoW). PoW to algorytm (hash) wykonywany przez komputery, który wymaga dużej ilości pracy obliczeniowej w stosunkowo krótkim czasie. Te komputery są znane jako górnicy.
Blockchain składa się z bloków. Każdy blok to lista transakcji, z hashem poprzedniego bloku i hashem tego bloku, w tym jego PoW. Hash jest obliczany za pomocą hasha poprzedniego bloku (poprzedniego PoW), wraz ze wszystkimi transakcjami w tym bloku z ich podpisami cyfrowymi. Sprawia to, że jest obliczeniowo nieosiągalne modyfikowanie bloku lub zmiana kolejności bloków. Zrobienie tego oznaczałoby konieczność przeliczenia hasha dla tego bloku i każdego następnego bloku.
Konwencjonalne metody zabezpieczeń nie są praktyczne dla IoT, ponieważ topologie IoT są w dużej mierze zdecentralizowane, a urządzenia IoT mają ograniczone zasoby. Jak widzieliśmy, blockchain został użyty do zapewnienia bezpieczeństwa w podobnym środowisku używanym dla kryptowalut.
Blockchain może być używany do pomocy w rozwiązaniu wielu tych wyzwań związanych z bezpieczeństwem i zaufaniem dla IoT, w tym:
- Śledzenie pomiarów danych z czujników i zapobieganie szkodliwym danym.
- Zapewnienie identyfikacji urządzeń IoT, uwierzytelniania i bezpiecznego przesyłania danych.
- Czujniki IoT mogą bezpiecznie wymieniać dane bezpośrednio między sobą, bez potrzeby pośrednika.
- Rozproszony rejestr eliminuje pojedyncze źródło awarii w ekosystemie IoT.
- Wdrożenie IoT jest uproszczone, a koszty operacyjne IoT są zmniejszone, ponieważ nie ma pośrednika.
- Urządzenia IoT są bezpośrednio adresowalne za pomocą blockchaina, dostarczając niezmiennej historii podłączonych urządzeń dla zaufania i przejrzystości.