Helion


Szczegóły ebooka

Hardware i testy penetracyjne. Przewodnik po metodach ataku i obrony

Hardware i testy penetracyjne. Przewodnik po metodach ataku i obrony


Hardware i testy penetracyjne. Przewodnik po metodach ataku i obrony

Wraz z rozwojem internetu rzeczy, a także upowszechnianiem się elektronicznego sterowania i kontrolowania różnych procesów przestępcy doskonalą techniki łamania zabezpieczeń systemów wbudowanych. Konsekwencje skutecznego ataku na jakiś kluczowy element infrastruktury mogą się okazać dotkliwe i niezwykle kosztowne. Oznacza to, że testowanie pod kątem bezpieczeństwa powinno dotyczyć sprzętu i systemów wbudowanych. Również elektronicy powinni umieć chronić przed atakami swoje urządzenia. Szczególną rolę w tym procesie odgrywają testy penetracyjne, których celem jest wyszukiwanie luk w zabezpieczeniach.

Oto praktyczny przewodnik po bezpieczeństwie sprzętu. Opisuje podstawy sprzętowej architektury systemów wbudowanych i protokoły komunikacyjne stosowane w urządzeniach elektronicznych. Pokazuje, w jaki sposób można przechwytywać przesyłane dane i jak wykorzystać tę wiedzę do przeprowadzania ataków. W książce zaprezentowano techniki identyfikacji i klasyfikacji zagrożeń systemu. Przeanalizowano także zależności łączące system wbudowany z jego otoczeniem, przy czym zwrócono uwagę na możliwe podatności na ataki i konsekwencje ewentualnego odczytania oprogramowania układowego. W końcowej części natomiast omówiono zasady inżynierii wstecznej oprogramowania, umożliwiającej ataki na urządzenia. Znajdziemy tu również wskazówki dotyczące ochrony urządzeń przed najbardziej typowymi atakami.

Dzięki książce dowiesz się, jak:

  • testować systemy wbudowane i rozpoznawać ich najważniejsze funkcjonalności
  • identyfikować i atakować krytyczne zabezpieczenia
  • odczytywać i modyfikować dane zapisane w systemach wbudowanych
  • badać zależności pomiędzy oprogramowaniem układowym a sprzętem
  • atakować zabezpieczenia stosowane w różnych blokach funkcjonalnych urządzeń
  • rozwijać laboratorium umożliwiające zaawansowane analizy i przygotowanie ataków

Internet rzeczy również można skutecznie zaatakować!

O autorze

O korektorach merytorycznych

Wstęp

Część I. Zapoznanie ze sprzętem

Rozdział 1. Przygotowanie laboratorium do testów penetracyjnych i zasady bezpieczeństwa

  • Podstawowe wymagania - co będzie potrzebne?
    • Języki programowania
    • Umiejętności związane ze sprzętem
    • Konfiguracja systemu
    • Przygotowanie podstawowego laboratorium
    • Bezpieczeństwo
  • Zakup wyposażenia testowego
    • Laboratorium domowe kontra firmowe
    • Wybór urządzeń
    • Co kupić, po co i kiedy?
    • Drobne narzędzia i sprzęt
    • Wynajem i zakup przyrządów
  • Zapas elementów elektronicznych
    • Przechowywanie
    • Zapas
  • Przykładowe laboratoria
    • Poziom początkującego
    • Poziom amatora
    • Poziom profesjonalisty
  • Podsumowanie
  • Pytania

Rozdział 2. Przedmiot testu

  • Blok procesora
    • Zadania procesora
    • Typowe rodzaje procesorów stosowanych w systemach wbudowanych
  • Blok pamięci
    • Pamięć RAM
    • Pamięć programu
    • Pamięć danych
  • Blok zasilania
    • Blok zasilania z perspektywy testów penetracyjnych
  • Blok sieci
    • Typowe protokoły komunikacyjne stosowane w systemach wbudowanych
  • Blok czujników
    • Czujniki analogowe
    • Czujniki cyfrowe
  • Blok urządzeń wykonawczych
  • Blok interfejsów
  • Podsumowanie
  • Pytania
  • Dalsza lektura

Rozdział 3. Komponenty testowanego systemu

  • Wymagania techniczne
  • Pozyskiwanie informacji z instrukcji obsługi
    • Podejście analityczne
    • Analiza instrukcji do zabawki
  • Pozyskiwanie informacji z internetu
    • Informacje o zabawce
  • Utworzenie diagramu systemu
    • Diagram zabawki
  • Eksplorowanie systemu - identyfikowanie komponentów i umieszczanie ich na diagramie
    • Otwarcie zabawki
    • Manipulowanie systemem
    • Demontaż zabawki
    • Identyfikacja układów
    • Układy zastosowane w zabawce
    • Identyfikacja nieoznaczonych i tajemniczych układów
    • Tajemnicza zawartość zabawki
    • Granice bloków funkcjonalnych
  • Podsumowanie
  • Pytania

Rozdział 4. Planowanie i przygotowanie testu

  • Metodyka STRIDE
    • Wyszukiwanie celów ataków w badanym systemie
  • Aspekty bezpieczeństwa - czego należy oczekiwać?
    • Komunikacja
    • Utrzymanie
    • Spójność systemu i auto-testy
    • Ochrona poufnych danych i środków bezpieczeństwa
  • Jakie są ataki i ich skutki?
    • Metodyka STRIDE w analizie bezpieczeństwa komponentów systemu
    • Przykładowy system: zabawka Furby
  • Planowanie testu
    • Wybór scenariusza
  • Podsumowanie
  • Pytania
  • Dalsza lektura

Część II. Atakowanie sprzętu

Rozdział 5. Główna platforma ataku

  • Wymagania techniczne
  • Wprowadzenie do płytki bluepill
    • Do czego służy płytka bluepill?
    • Co to jest?
  • Dlaczego język C, a nie Arduino?
    • Dokumentacja
    • Rejestry pamięci
  • Narzędzia programistyczne
    • Proces kompilacji
    • Przebieg kompilacji
    • Programowanie układu
    • Praktyczne zastosowanie płytki bluepill
  • Wprowadzenie do języka C
    • Operatory
    • Typy danych
    • Ten okropny wskaźnik
    • Dyrektywy preprocesora
    • Funkcje
  • Podsumowanie
  • Pytania
  • Dalsza lektura

Rozdział 6. Podsłuchiwanie i atakowanie najpopularniejszych protokołów

  • Wymagania techniczne
    • Sprzęt
  • Protokół I(2)C
    • Tryby pracy
    • Podsłuchiwanie transmisji
    • Wstrzykiwanie danych
    • Atak typu "człowiek pośrodku"
  • Protokół SPI
    • Tryby pracy
    • Podsłuchiwanie transmisji
    • Wstrzykiwanie danych
    • Atak typu "człowiek pośrodku"
  • Protokół UART
    • Tryby pracy
    • Podsłuchiwanie transmisji
    • Wstrzykiwanie danych
    • Atak typu "człowiek pośrodku"
  • Protokół D1W
    • Tryby pracy
    • Podsłuchiwanie transmisji
    • Wstrzykiwanie danych
    • Atak typu "człowiek pośrodku"
  • Podsumowanie
  • Pytania

Rozdział 7. Wyodrębnianie i modyfikowanie pamięci

  • Wymagania techniczne
  • Wyszukiwanie układów pamięci
    • Pamięć EEPROM
    • Pamięci EMMC i NAND/NOR flash
    • Dyski magnetyczne i SSD oraz inne nośniki
  • Wyodrębnianie danych
    • Oprogramowanie układowe
    • Pamięć wbudowana i niestandardowe interfejsy
    • Pamięć wbudowana i typowe interfejsy
  • Badanie struktury nieznanego nośnika
    • Nieznane formaty nośników
    • Znane formaty pamięci masowych
    • Zabawka Furby
  • Montowanie systemu plików
  • Przepakowanie danych
  • Podsumowanie
  • Pytania
  • Dalsza lektura

Rozdział 8. Atakowanie Wi-Fi, Bluetooth i BLE

  • Wymagania techniczne
  • Podstawy komunikacji sieciowej
  • Komunikacja Wi-Fi w systemach wbudowanych
    • Wybór karty Wi-Fi
    • Utworzenie punktu dostępu
    • Przygotowanie punktu dostępu i podstawowych usług sieciowych
    • Inne ataki na sieć Wi-Fi
  • Komunikacja Bluetooth w systemach wbudowanych
    • Podstawy komunikacji Bluetooth
    • Wykrywanie urządzeń Bluetooth
    • Narzędzia Bluetooth w systemie Linux
    • Podsłuchiwanie komunikacji Bluetooth na komputerze
    • Podsłuchiwanie surowej komunikacji Bluetooth
    • BLE
  • Podsumowanie
  • Pytania

Rozdział 9. Atakowanie SDR

  • Wymagania techniczne
  • Wprowadzenie do technologii SDR
  • Opis i dobór sprzętu
    • Badanie urządzenia radiowego
    • Odbieranie sygnału: antena
  • Analiza spektrum radiowego
  • Odtwarzanie danych
  • Rozpoznawanie modulacji - edukacyjny przykład
    • AM/ASK
    • FM/FSK
    • PM/PSK
    • MSK
    • Analiza sygnału
  • Demodulacja sygnału
    • Blok Clock Recovery MM
    • Narzędzie WPCR
  • Wysyłanie sygnałów
  • Podsumowanie
  • Pytania

Część III. Atakowanie oprogramowania

Rozdział 10. Korzystanie z interfejsów diagnostycznych

  • Wymagania techniczne
  • Programowalne interfejsy diagnostyczne - czym są i do czego służą?
    • Właściwe przeznaczenie interfejsów diagnostycznych
    • Atakowanie systemu przy użyciu interfejsu JTAG
  • Identyfikowanie pinów
    • "Przyjazna" płyta drukowana
    • Trudniejszy przypadek
    • Bardzo trudny przypadek i płytka JTAGulator
  • Oprogramowanie OpenOCD
    • Instalacja
    • Plik adaptera
    • Docelowy plik
  • Praktyczny przykład
  • Podsumowanie
  • Pytania

Rozdział 11. Statyczna inżynieria odwrotna i analiza

  • Wymagania techniczne
  • Formaty plików wykonywalnych
    • Popularne formaty plików wykonywalnych
  • Formaty zrzutów i obrazy pamięci
    • Struktura zrzutu pamięci - przykład płytki bluepill
  • Analiza oprogramowania układowego - wprowadzenie do programu Ghidra
    • Analiza prostego programu dla systemu Linux i procesora ARM
    • Wyższy stopień wtajemniczenia - analiza surowego pliku binarnego dla płytki STM32
    • Pierwszy przebieg identyfikacyjny
    • Inżynieria odwrotna funkcji
  • Podsumowanie
  • Pytania

Rozdział 12. Dynamiczna inżynieria odwrotna

  • Wymagania techniczne
  • Dynamiczna inżynieria odwrotna i jej zastosowania
  • Zastosowanie programów OpenOCD i GDB
    • GDB? Nic o nim nie wiem!
  • Wprowadzenie do asemblera ARM
    • Ogólne informacje i składnia
    • Najbardziej przydatne instrukcje procesora ARM
  • Przykład dynamicznej inżynierii odwrotnej
    • Badanie kodu za pomocą programu Ghidra
    • Odtworzenie hasła
    • Prostsze rozwiązanie
  • Podsumowanie
  • Pytania

Rozdział 13. Ocenianie i raportowanie zagrożeń

  • Ocenianie zagrożeń
  • Raportowanie zrozumiałe dla wszystkich
    • Szablon raportu
    • Język raportu
    • Jakość raportu
  • Konfrontacja z inżynierami
  • Podsumowanie
  • Pytania

Rozdział 14. Podsumowanie - środki zaradcze i dobre praktyki

  • Dobre praktyki branżowe, czym są i gdzie ich szukać?
    • OWASP IoT Top 10
    • Testy porównawcze CIS
    • Wytyczne NIST dotyczące bezpieczeństwa sprzętu
  • Typowe problemy i środki zaradcze
    • Nawiązywanie zabezpieczonego połączenia między urządzeniem a zapleczem
    • Przechowywanie poufnych danych
    • Kryptografia w krytycznych aplikacjach
    • Programy rozruchowe oraz interfejsy szeregowe, JTAG i UART
  • Co dalej? Samodzielna nauka i pierwszy projekt
  • Słowo końcowe

Odpowiedzi