Hakowanie internetu rzeczy w praktyce. Przewodnik po skutecznych metodach atakowania IoT - ebook
Hakowanie internetu rzeczy w praktyce. Przewodnik po skutecznych metodach atakowania IoT - ebook
Konsekwencje udanego ataku na IoT mogą być niezwykle poważne. Zagrożenie dotyczy przecież wszystkiego, co działa pod kontrolą komputera. Mogą to być samochód, rozrusznik serca, zamki w inteligentnym domu czy też system sterujący maszynami w fabryce. Zabezpieczanie i testowanie bezpieczeństwa urządzeń internetu rzeczy jest jednak specyficzną dziedziną. Przesądza o tym jego charakter, ale także budowa i ekonomika produkcji urządzeń IoT. Inżynier bezpieczeństwa internetu rzeczy musi więc przyswoić zupełnie inne metody pracy i pokonywać inne problemy.
Ta książka jest praktycznym przewodnikiem po technikach atakowania internetu rzeczy. Dzięki niej dowiesz się, w jaki sposób testować systemy, urządzenia i protokoły i jak ograniczać ryzyko. Zawarto tutaj przegląd typowych zagrożeń i opisano sposoby ich modelowania. Omówiono również metodykę testowania bezpieczeństwa i pasywnego rekonesansu, a także zasady oceny zabezpieczeń wszystkich warstw systemów IoT. Zaprezentowano techniki ataków polegających na przeskakiwaniu między sieciami VLAN, łamaniu uwierzytelnień w protokole MQTT, zakłócaniu usługi mDNS czy zniekształcaniu komunikatów WS-Discovery. W rezultacie lektury nauczysz się hakować sprzęt i transmisję radiową, poznasz też metodykę ataków na wbudowane urządzenia IoT i systemy RFID.
W książce:
- skanowanie usługi DICOM
- hakowanie mikrokontrolerów
- inżynieria wsteczna oprogramowania układowego
- analiza aplikacji mobilnych
- zakłócanie pracy czytnika NFC
- hakowanie urządzeń inteligentnego domu
IoT. Które urządzenie zhakujesz najpierw?
Spis treści
- O autorach
- O współautorach
- O korektorze merytorycznym
- Przedmowa
- Podziękowania
- Wprowadzenie
- Koncepcja książki
- Dla kogo jest ta książka?
- Kali Linux
- Struktura książki
- Część I. Krajobraz zagrożeń IoT
- 1. Bezpieczeństwo w świecie IoT
- Dlaczego bezpieczeństwo IoT jest ważne?
- Czym różni się bezpieczeństwo IoT od tradycyjnego bezpieczeństwa IT?
- Co jest specjalnego w hakowaniu IoT?
- Normy, regulacje i wytyczne
- Studium przypadku: identyfikowanie, zgłaszanie i ujawnianie problemów z bezpieczeństwem IoT
- Zdaniem eksperta: poruszanie się po świecie IoT
- Regulacje dotyczące hakowania IoT
- Harley Geiger, dyrektor ds. polityki społecznej w Rapid7
- Rola rządu w bezpieczeństwie IoT
- David Rogers, prezes Copper Horse Security, autor brytyjskiego Kodeksu Praktyki, kawaler Orderu Imperium Brytyjskiego za zasługi w dziedzinie cyberbezpieczeństwa
- Bezpieczeństwo urządzeń medycznych z perspektywy pacjentów
- Marie Moe, @mariegmoe, SINTEF
- Jay Radcliffe, @jradcliffe02, Thermo Fisher Scientific
- Regulacje dotyczące hakowania IoT
- Podsumowanie
- 2. Modelowanie zagrożeń
- Modelowanie zagrożeń IoT
- Regulacje dotyczące modelowania zagrożeń
- Identyfikacja architektury urządzenia
- Podział architektury na komponenty
- Określenie zagrożeń
- Restrykcyjny interfejs użytkownika
- Usługa serwera sterującego
- Biblioteka leków
- System operacyjny
- Oprogramowanie układowe komponentów urządzenia
- Fizyczny system
- Usługa pompy
- Wykrywanie zagrożeń za pomocą drzewa ataku
- Ocena zagrożenia przy użyciu klasyfikacji DREAD
- Inne modele zagrożeń, podejścia i narzędzia
- Typowe zagrożenia IoT
- Zakłócanie sygnału
- Odtwarzanie danych
- Zniekształcanie ustawień
- Naruszenie integralności sprzętu
- Klonowanie węzłów
- Naruszenie bezpieczeństwa i prywatności danych
- Niska świadomość zagrożeń
- Podsumowanie
- 3. Metodyka testów bezpieczeństwa
- Pasywny rekonesans
- Instrukcje i dokumenty
- Patenty
- Wiedza użytkowników
- Warstwa fizyczna lub sprzętowa
- Interfejsy peryferyjne
- Środowisko rozruchowe
- Blokady
- Zabezpieczenia przed modyfikacjami i wykrywanie modyfikacji
- Oprogramowanie układowe
- Interfejsy diagnostyczne
- Fizyczna odporność
- Warstwa sieciowa
- Rekonesans
- Wykrywanie hostów
- Określanie wersji usług
- Identyfikowanie systemów operacyjnych
- Tworzenie mapy sieci
- Ataki na protokoły i usługi sieciowe
- Skanowanie luk w bezpieczeństwie
- Analiza ruchu sieciowego
- Odwrotna inżynieria protokołów
- Eksploracja protokołów i usług
- Testy protokołów bezprzewodowych
- Rekonesans
- Testy aplikacji WWW
- Tworzenie mapy aplikacji
- Kontrolki klienckie
- Uwierzytelnianie użytkowników
- Zarządzanie sesjami
- Kontrola dostępu i autoryzacja
- Weryfikacja danych wejściowych
- Błędy w algorytmie
- Serwer aplikacyjny
- Przegląd konfiguracji hosta
- Konta użytkowników
- Siła haseł
- Uprawnienia kont
- Poziom poprawek
- Zdalne utrzymanie
- Kontrola dostępu do systemu plików
- Szyfrowanie danych
- Błędy w konfiguracji serwera
- Testy aplikacji przenośnych i chmurowych
- Podsumowanie
- Pasywny rekonesans
- Część II. Hakowanie sieci
- 4. Ocenianie sieci
- Skok w sieć IoT
- Sieci VLAN i przełączniki sieciowe
- Imitowanie przełącznika
- Podwójne tagowanie
- Imitowanie urządzeń VoIP
- Identyfikowanie urządzeń IoT w sieci
- Uzyskiwanie haseł poprzez badanie odpowiedzi usług
- Tworzenie własnych sygnatur usług
- Hakowanie protokołu MQTT
- Przygotowanie środowiska testowego
- Tworzenie modułu dla programu Ncrack do hakowania poświadczeń w protokole MQTT
- Krótkie wprowadzenie do architektury narzędzia Ncrack
- Kompilacja narzędzia Ncrack
- Zainicjowanie modułu
- Główny kod
- Test modułu MQTT
- Podsumowanie
- Skok w sieć IoT
- 5. Analiza protokołów sieciowych
- Badanie protokołów sieciowych
- Gromadzenie informacji
- Identyfikowanie i instalowanie klientów
- Identyfikowanie protokołów podrzędnych
- Identyfikowanie portów
- Wyszukiwanie dodatkowej dokumentacji
- Testowanie dekoderów Wireshark
- Analiza
- Rejestracja ruchu sieciowego
- Analiza ruchu sieciowego za pomocą programu Wireshark
- Prototypowanie i tworzenie narzędzi
- Ocena bezpieczeństwa protokołu
- Gromadzenie informacji
- Tworzenie dekodera protokołu DICOM w języku Lua dla programu Wireshark
- Język Lua
- Protokół DICOM
- Komunikaty C-ECHO
- Jednostki PDU typu A
- Generowanie ruchu DICOM
- Włączenie języka Lua w programie Wireshark
- Zdefiniowanie dekodera
- Zdefiniowanie głównej funkcji dekodera
- Skompletowanie dekodera
- Tworzenie dekodera żądań C-ECHO
- Wyodrębnienie ciągów znaków z tytułu jednostki aplikacji
- Uzupełnienie funkcji dekodującej
- Analiza pól o zmiennych długościach
- Test dekodera
- Tworzenie skanera usługi DICOM dla silnika skryptowego Nmap
- Utworzenie biblioteki Nmap dla protokołu DICOM
- Identyfikatory DICOM i stałe wartości
- Zdefiniowanie funkcji tworzącej i usuwającej gniazdo sieciowe
- Zdefiniowanie funkcji wysyłającej i odbierającej pakiet DICOM
- Utworzenie nagłówka pakietu DICOM
- Utworzenie funkcji wysyłającej żądanie A-ASSOCIATE
- Odczytanie parametrów skryptu w silniku Nmap
- Zdefiniowanie struktury żądania A-ASSOCIATE
- Analiza odpowiedzi A-ASSOCIATE
- Utworzenie finalnego skryptu
- Podsumowanie
- Badanie protokołów sieciowych
- 6. Eksploracja sieci samokonfiguracyjnych
- Eksploracja protokołu UPnP
- Stos protokołu UPnP
- Typowe wady protokołu UPnP
- Otwieranie przejść w zaporze sieciowej
- Opis ataku
- Przygotowanie testowego serwera UPnP
- Otwieranie przejść w zaporze
- Atakowanie protokołu UPnP poprzez interfejs WAN
- Opis ataku
- Uzyskanie narzędzia Umap i korzystanie z niego
- Inne ataki na protokół UPnP
- Eksploracja protokołów mDNS i DNS-SD
- Jak działa protokół mDNS?
- Jak działa protokół DNS-SD?
- Rekonesans przy użyciu protokołów mDNS i DNS-SD
- Atak na operację sondowania w protokole mDNS
- Ataki typu człowiek pośrodku na protokoły mDNS i DNS-SD
- Przygotowanie atakowanego serwera
- Przygotowanie atakowanego klienta
- Typowa interakcja między klientem a serwerem
- Utworzenie programu zakłócającego protokół mDNS
- Test programu zakłócającego
- Eksploracja protokołu WS-Discovery
- Jak działa protokół WS-Discovery?
- Imitowanie kamery
- Przygotowanie środowiska
- Analiza zapytań i odpowiedzi WS-Discovery w programie Wireshark
- Imitowanie kamery IP w sieci
- Ataki na protokół WS-Discovery
- Podsumowanie
- Eksploracja protokołu UPnP
- Część III. Hakowanie sprzętu
- 7. Eksploracja UART, JTAG i SWD
- Interfejs UART
- Narzędzia sprzętowe wykorzystujące interfejs UART
- Identyfikacja pinów interfejsu UART
- Określenie prędkości transmisji interfejsu UART
- Interfejsy JTAG i SWD
- Interfejs JTAG
- Polecenia skanowania ścieżki krawędziowej
- Test portu TAP
- Jak działa interfejs SWD?
- Narzędzia sprzętowe wykorzystujące interfejsy JTAG i SWD
- Identyfikacja pinów interfejsu JTAG
- Interfejs JTAG
- Hakowanie urządzenia za pomocą interfejsów UART i SWD
- Hakowanie mikrokontrolera STM32F103C8T6 (black pill)
- Przygotowanie środowiska diagnostycznego
- Instalacja środowiska Arduino IDE
- Instalacja oprogramowania OpenOCD
- Instalacja debuggera GDB
- Utworzenie programu w środowisku Arduino IDE
- Załadowanie i uruchomienie programu
- Wybór trybu rozruchu
- Załadowanie programu
- Identyfikacja pinów UART za pomocą analizatora stanów logicznych
- Podłączanie adaptera szeregowego do portu USB
- Podłączenie komputera
- Diagnozowanie urządzenia
- Uruchomienie serwera OpenOCD
- Diagnostyka kodu za pomocą debuggera GDB
- Podsumowanie
- Interfejs UART
- 8. Interfejsy SPI i I2C
- Narzędzia do komunikacji z interfejsami SPI i I2C
- Interfejs SPI
- Jak działa interfejs SPI?
- Odczyt zawartości pamięci EEPRM/flash za pomocą interfejsu SPI
- Identyfikacja układu pamięci i pinów
- Komunikacja z układem pamięci
- Odczytanie zawartości pamięci
- Interfejs I2C
- Jak działa interfejs I2C?
- Utworzenie szyny I2C typu kontroler urządzenie peryferyjne
- Hakowanie interfejsu I2C za pomocą urządzenia Bus Pirate
- Wykrywanie urządzeń I2C
- Podsłuchiwanie i wysyłanie komunikatów
- Podsumowanie
- 9. Hakowanie oprogramowania układowego
- Oprogramowanie układowe i system operacyjny
- Uzyskanie oprogramowania układowego
- Hakowanie routera Wi-Fi
- Wyodrębnienie systemu plików
- Statyczna analiza zawartości systemu plików
- Hakowanie poświadczeń administratora urządzenia
- Wyszukiwanie poświadczeń w plikach konfiguracyjnych
- Automatyzacja analizy oprogramowania układowego
- Emulacja oprogramowania układowego
- Emulacja binarna
- Pełna emulacja oprogramowania układowego
- Analiza dynamiczna
- Otwieranie ukrytych wejść do oprogramowania układowego
- Hakowanie mechanizmu aktualizacji oprogramowania układowego
- Kompilacja i konfiguracja
- Kod klienta
- Uruchomienie usługi aktualizacji
- Luki w bezpieczeństwie usługi aktualizacji oprogramowania
- Zakodowane na stałe poświadczenia
- Słabe algorytmy szyfrujące
- Nieszyfrowany kanał komunikacyjny
- Poufne informacje w dzienniku
- Podsumowanie
- Część IV. Hakowanie radia
- 10. Radio krótkiego zasięgu: nadużywanie RFID
- Jak działa RFID?
- Zakresy częstotliwości radiowych
- Pasywne i aktywne technologie RFID
- Architektura tagu RFID
- Klasy tagów
- Informacje przechowywane w tagach RFID
- Tagi RFID niskiej częstotliwości
- Tagi RFID wysokiej częstotliwości
- Atakowanie systemów RFID za pomocą urządzenia Proxmark3
- Przygotowanie narzędzia Proxmark3
- Aktualizacja urządzenia Proxmark3
- Identyfikacja tagów niskiej i wysokiej częstotliwości
- Klonowanie tagu niskiej częstotliwości
- Klonowanie tagu wysokiej częstotliwości
- Struktura pamięci karty MIFARE Classic
- Hakowanie kluczy metodą brutalnej siły
- Odczytywanie i klonowanie danych tagu
- Symulowanie tagu RFID
- Modyfikacja tagu RFID
- Atakowanie karty MIFARE za pomocą aplikacji Android
- Ogólne polecenia dla nieoznaczonych i niekomercyjnych tagów RFID
- Identyfikacja karty i odczytanie jej specyfikacji
- Wysyłanie ogólnych poleceń
- Podsłuchiwanie komunikacji między tagiem a czytnikiem
- Wyodrębnianie klucza sektora z zarejestrowanych danych
- Atakowanie czytnika RFID
- Automatyzacja ataków przy użyciu skryptów Proxmark3
- Zakłócanie czytnika RFID za pomocą własnego skryptu
- Podsumowanie
- Jak działa RFID?
- 11. Technologia BLE
- Jak działa technologia BLE?
- Profile GAP i GATT
- Korzystanie z technologii BLE
- Urządzenia BLE
- BlueZ
- Konfiguracja interfejsów BLE
- Wykrywanie urządzeń i wyświetlanie charakterystyk
- Narzędzie GATTTool
- Narzędzie Bettercap
- Uzyskiwanie listy charakterystyk, usług i deskryptorów
- Odczytywanie i zapisywanie charakterystyk
- Hakowanie technologii BLE
- Przygotowanie projektu BLE CTF Infinity
- Pierwsze kroki
- Flaga 1 zbadanie charakterystyk i deskryptorów
- Flaga 2 uwierzytelnienie
- Flaga 3 podszycie się pod adres MAC
- Podsumowanie
- Jak działa technologia BLE?
- 12. Radio średniego zasięgu: hakowanie Wi-Fi
- Jak działa Wi-Fi?
- Sprzęt do oceniania bezpieczeństwa Wi-Fi
- Ataki na klientów sieci Wi-Fi
- Ataki dysocjacyjne i blokujące usługę
- Ataki asocjacyjne
- Atak Evil Twin
- Atak KARMA
- Atak Known Beacons
- Wi-Fi Direct
- Jak funkcjonuje połączenie Wi-Fi Direct?
- Atak metodą brutalnej siły przy użyciu narzędzia Reaver
- Atak EvilDirect
- Ataki na punkty dostępu
- Łamanie szyfrowania WPA/WPA2
- Atak na sieć z kluczem współdzielonym
- Atak na sieć z identyfikatorem PMKID
- Łamanie szyfrowania WPA/WPA2 Enterprise i przechwytywanie poświadczeń
- Łamanie szyfrowania WPA/WPA2
- Metodyka testów bezpieczeństwa
- Podsumowanie
- 13. Radio dalekiego zasięgu: LPWAN
- LPWAN, LoRa i LoRaWAN
- Przechwytywanie danych w sieci LoRaWAN
- Przygotowanie płytki Heltec LoRa 32
- Programowanie modułu Heltec
- Test nadajnika LoRa
- Przygotowanie klucza LoStik
- Kod odbiornika LoRa
- Uruchomienie odbiornika LoRa
- Klucz USB CatWAN jako rejestrator pakietów
- Przygotowanie środowiska CircuitPython
- Program nasłuchujący
- Przygotowanie płytki Heltec LoRa 32
- Dekodowanie protokołu LoRaWAN
- Format pakietu LoRaWAN
- Dołączanie do sieci LoRaWAN
- Metoda OTAA
- Metoda ABP
- Hakowanie sieci LoRaWAN
- Atak bit-flipping
- Generowanie kluczy i zarządzanie nimi
- Ataki odtworzeniowe
- Podsłuchiwanie komunikacji
- Fałszowanie potwierdzeń
- Ataki aplikacyjne
- Podsumowanie
- Część V. Celowanie w ekosystem IoT
- 14. Ataki na aplikacje mobilne
- Zagrożenia aplikacji mobilnych IoT
- Komponenty środowiska aplikacji mobilnych
- Identyfikacja zagrożeń
- Ogólne zagrożenia urządzeń mobilnych
- Zagrożenia systemów Android i iOS
- Zabezpieczenia w systemach Android i iOS
- Ochrona danych i szyfrowany system plików
- Odizolowane otoczenie aplikacji, bezpieczna komunikacja międzyprocesowa, usługi
- Podpisy aplikacji
- Uwierzytelnienie użytkownika
- Odizolowane komponenty sprzętowe i zarządzanie kluczami
- Zweryfikowany i bezpieczny rozruch
- Analiza aplikacji dla systemu iOS
- Przygotowanie środowiska testowego
- Wyodrębnienie i ponowne podpisanie pakietu IPA
- Analiza statyczna
- Wyszukiwanie poufnych danych w liście właściwości
- Badanie zabezpieczenia pamięci w binarnym pliku wykonywalnym
- Automatyzacja analizy statycznej
- Analiza dynamiczna
- Badanie struktury plików i baz danych
- Uruchomienie debuggera
- Odczytywanie zapisanych ciastek
- Badanie dzienników aplikacji i wysyłanie wiadomości SMS
- Migawki aplikacji
- Badanie wycieku danych ze schowka i silnika przewidywania tekstu
- Wstrzykiwanie danych
- Magazyn łańcucha kluczy
- Dekompilacja pliku binarnego
- Przechwytywanie i badanie danych sieciowych
- Omijanie wykrywania włamań poprzez wprowadzanie dynamicznych zmian w kodzie
- Omijanie wykrywania włamań poprzez wprowadzanie statycznych zmian w kodzie
- Analiza aplikacji dla systemu Android
- Przygotowanie środowiska testowego
- Wyodrębnienie pliku APK
- Analiza statyczna
- Automatyzacja analizy statycznej
- Dekompilacja pliku binarnego
- Analiza dynamiczna
- Zmiana hasła użytkownika
- Wysyłanie wiadomości SMS
- Wyszukiwanie poufnych informacji w katalogu aplikacji
- Wyszukiwanie poufnych informacji w bazach danych
- Przechwytywanie i badanie danych sieciowych
- Boczne kanały wycieku danych
- Omijanie wykrywania włamań poprzez wprowadzanie statycznych zmian w kodzie
- Omijanie wykrywania włamań poprzez wprowadzanie dynamicznych zmian w kodzie
- Podsumowanie
- Zagrożenia aplikacji mobilnych IoT
- 15. Hakowanie inteligentnego domu
- Uzyskanie fizycznego dostępu do budynku
- Sklonowanie karty RFID do inteligentnego zamka
- Określenie rodzaju karty RFID
- Atak Darkside i uzyskanie pierwszego klucza sektora
- Zagnieżdżone uwierzytelnienie i uzyskanie pozostałych kluczy sektorów
- Załadowanie danych karty do pamięci urządzenia
- Test sklonowanej karty
- Zakłócanie bezprzewodowego systemu alarmowego
- Monitorowanie częstotliwości radiowej systemu alarmowego
- Wysyłanie sygnałów na wybranej częstotliwości za pomocą Raspberry Pi
- Sklonowanie karty RFID do inteligentnego zamka
- Odtwarzanie strumienia wideo z kamery IP
- Protokoły strumieniowe
- Analiza danych przesyłanych przez kamerę IP
- Wyodrębnienie strumienia wideo
- Hakowanie inteligentnej bieżni treningowej
- Inteligentna bieżnia i system Android
- Przejęcie kontroli nad inteligentną bieżnią
- Obejście ograniczeń interfejsu użytkownika
- Uzyskanie zdalnego dostępu do powłoki systemu
- Użycie lokalnego menedżera plików do zainstalowania pakietu APK
- Rozszerzenie uprawnień
- Zdalne sterowanie prędkością i nachyleniem bieżni
- Zablokowanie przycisków programowych i sprzętowych
- Czy eksploracja tej luki może spowodować śmiertelny wypadek?
- Podsumowanie
- Uzyskanie fizycznego dostępu do budynku
Kategoria: | Hacking |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-8355-5 |
Rozmiar pliku: | 42 MB |