Podręcznik Hardware Hackera
Łamanie wbudowanych zabezpieczeń za pomocą
ataków sprzętowych
Urządzenia wbudowane
to mikrokomputery wielkości chipa na tyle małe, że można je włączyć w
strukturę urządzenia, którym sterują. Znajdują się wszędzie
– w telefonach, samochodach, kartach kredytowych, laptopach,
sprzęcie medycznym, a nawet w infrastrukturze krytycznej. Oznacza to,
że zrozumienie ich działania ma kluczowe znaczenie dla bezpieczeństwa.
Książka
Podręcznik hardware hackera zabierze Cię w głąb różnych
typów systemów wbudowanych, pokazując projekty,
komponenty, ograniczenia bezpieczeństwa i wyzwania związane z
inżynierią wsteczną, które musisz znać, aby przeprowadzać
skuteczne ataki sprzętowe.
Publikacja została napisana z dowcipem i jest przepełniona praktycznymi
eksperymentami laboratoryjnymi. Podczas lektury wczujesz się w rolę
napastnika zainteresowanego złamaniem zabezpieczeń w celu czynienia
dobra. Rozpoczniesz od szybkiego kursu na temat architektury urządzeń
wbudowanych, modelowania zagrożeń i drzew ataków, po czym
przejdziesz do odkrywania interfejsów sprzętowych,
portów i protokołów komunikacyjnych, sygnalizacji
elektrycznej, a na koniec otrzymasz wskazówki dotyczące
analizowania obrazów oprogramowania układowego.
Dzięki książce dowiesz się:
- jak modelować
zagrożenia bezpieczeństwa, korzystając z profili, zasobów,
celów i środków zaradczych atakujących,
- jakie są
podstawy elektryczne, które pomogą Ci zrozumieć interfejsy
komunikacyjne, sygnalizację i pomiary,
- jak
zidentyfikować punkty wstrzykiwania do wykonywania ataków na
błędy zegara, napięcia, elektromagnetyczne, laserowe i odchylenia
ciała, a także otrzymasz praktyczne wskazówki dotyczące
wstrzykiwania,
- jak używać
ataków analizy czasu i mocy w celu wyodrębnienia haseł i
kluczy kryptograficznych,
- jakie są
techniki wyrównywania zarówno prostej, jak i
różnicowej analizy mocy.
- Niezależnie
od tego, czy jesteś specjalistą, którego zadaniem jest
zrozumienie tych ataków, studentem rozpoczynającym naukę,
czy też hobbystą elektronikiem, ta książka będzie niezbędnym
źródłem informacji – takim, które
zawsze będziesz chciał mieć pod ręką.
W
Podręczniku hardware hackera Jasper i Colin łączą swoje doświadczenia z
łamaniem rzeczywistych produktów, aby elegancko przekazać
współczesny proces hakowania sprzętu. Dostarczają oni
szczegółów dotyczących rzeczywistych
ataków, pozwalając śledzić postępy, uczyć się niezbędnych
technik i doświadczyć poczucia magii, które towarzyszy
udanemu włamaniu. Nie ma znaczenia, czy jesteś nowy w tym obszarze, czy
przybywasz z innego miejsca w społeczności hakerskiej, czy też chcesz
„podnieść poziom” swoich aktualnych umiejętności
związanych z bezpieczeństwem — każdy znajdzie tu coś dla
siebie.
PRZEDMOWA
xix
PODZIĘKOWANIA
. xxi
WPROWADZENIE
. xxiii
Jak wyglądają urządzenia
wbudowane
.xxv
Sposoby hakowania urządzeń
wbudowanych xxv
Co oznacza atak
sprzętowy?
xxvi
Kto powinien przeczytać tę
książkę?
xxvii
O
książce
xxvii
1
HIGIENA JAMY USTNEJ.
WPROWADZENIE DO ZABEZPIECZEŃ WBUDOWANYCH
. 1
Komponenty
sprzętu
2
Komponenty
oprogramowania
5
Początkowy kod
rozruchu
5
Program
rozruchowy
6
Środowisko zaufanego uruchamiania systemu operacyjnego (TEE)
i zaufane
aplikacje
7
Obrazy oprogramowania
układowego
7
Główne jądro systemu operacyjnego i
aplikacje
. 8
Modelowanie zagrożeń
sprzętowych
8
Czym jest
bezpieczeństwo?
. 9
Drzewo
ataków
. 12
Profi lowanie
atakujących
. 12
Typy
ataków
14
Ataki programowe na
sprzęt
15
Ataki na poziomie
PCB
17
Ataki
logiczne
19
Ataki
nieinwazyjne
. 21
Ataki inwazyjne na
chipy
21
Zasoby i cele
bezpieczeństwa
. 26
Poufność i integralność kodu
binarnego
. 27
Poufność i integralność
kluczy
. 27
Zdalna atestacja
rozruchu
. 28
Poufność i integralność danych
osobowych
. 29
Integralność i poufność danych z
sensorów
. 30
Ochrona poufności
treści
30
Odpowiedzialność i
odporność
31
Środki
zapobiegawcze
. 31
Chronienie
. 31
Wykrywanie
. 32
Odpowiadanie
32
Przykładowe drzewo
ataku
32
Identyfi kacja vs.
eksploatacja
36
Skalowalność
36
Analizowanie drzewa
ataku
. 36
Ocenianie ścieżek ataków
sprzętowych
37
Ujawnianie kwestii związanych z
bezpieczeństwem
39
Podsumowanie
41
2
NAWIĄZYWANIE KONTAKTU,
POŁĄCZ SIĘ ZE MNĄ, POŁĄCZĘ SIĘ Z TOBĄ. SPRZĘTOWE INTERFEJSY
PERYFERYJNE
. 43
Podstawy
elektryki
44
Napięcie
. 44
Natężenie
45
Rezystancja
45
Prawo
Ohma
. 45
AC/DC
. 45
Rozbieranie
rezystancji
46
Moc
47
Interfejs z użyciem
elektryczności
. 48
Poziomy
logiczne
48
Wysoka impedancja, podciąganie i
ściąganie
. 50
Push-pull vs. tristate vs. otwarty kolektor albo otwarty
dren . 51
Komunikacja asynchroniczna vs. synchroniczna vs. taktowanie
wbudowane
. 53
Sygnały
różnicowe
. 54
Interfejsy szeregowe o niskiej
prędkości
55
Uniwersalna, asynchroniczna komunikacja
szeregowa . 56
Szeregowy interfejs urządzeń
peryferyjnych
. 58
Interfejs
IIC
60
Secure Digital Input/Output oraz Embedded Multimedia
Cards 64
Magistrala
CAN
. 66
JTAG i inne interfejsy
debugowania
. 67
Interfejsy
równoległe
71
Interfejsy
pamięci
72
Szybkie interfejsy
szeregowe
73
Uniwersalna Magistrala
Szeregowa
. 74
PCI
Express
75
Ethernet
. 76
Miernictwo
. 76
Multimetr:
napięcie
. 76
Multimetr:
ciągłość
. 77
Oscyloskop
cyfrowy
. 78
Analizator stanów
logicznych
. 82
Podsumowanie
83
3
OBSERWOWANIE.
IDENTYFIKACJA KOMPONENTÓW I ZBIERANIE
INFORMACJI
. 85
Zbieranie
informacji
86
Zgłoszenia w Federalnej Komisji
Łączności
. 86
Patenty
89
Karty katalogowe i
schematy
. 92
Przykład wyszukiwania informacji: urządzenie USB
Armory . 94
Otwieranie
obudowy
. 102
Identyfi kowanie układów scalonych na
płytce
. 102
Małe obudowy z wystającymi wyprowadzeniami: SOIC,
SOP i
QFP
105
Obudowy bez wystających wyprowadzeń: SO i
QFN 107
Ball grid
array
108
Chip scale
packaging
. 111
DIP, przewlekane i
inne
111
Przykładowe obudowy układów scalonych na
PCB
112
Identyfi kowanie innych komponentów na
płycie
115
Mapowanie
PCB
. 120
Użycie do mapowania skanowania ścieżką krawędziową
JTAG 125
Odtwarzanie informacji z oprogramowania
układowego
. 127
Uzyskiwanie obrazu oprogramowania
układowego
. 128
Analizowanie obrazu oprogramowania
układowego
130
Podsumowanie
138
4
SŁOŃ W SKLEPIE Z
PORCELANĄ. WPROWADZENIE DO WSTRZYKIWANIA
BŁĘDÓW
. 139
Wprowadzanie błędów do mechanizmów
bezpieczeństwa
140
Obchodzenie weryfi kacji podpisu oprogramowania układowego .
141
Uzyskiwanie dostępu do zablokowanej
funkcjonalności 142
Odtwarzanie kluczy kryptografi
cznych
. 142
Ćwiczenie z wstrzykiwaniem błędów do
OpenSSH
143
Wstrzykiwanie błędów do kodu w
C
143
Wstrzykiwanie błędów do kodu
maszynowego
. 144
Słoń wstrzykiwania
błędów
. 146
Urządzenie cel oraz rezultat
błędu
. 147
Narzędzia do wstrzykiwania
błędów
147
Przygotowanie i kontrola
celu
. 149
Metody wyszukiwania
błędów
. 154
Odkrywanie prymitywów
błędów
. 154
Poszukiwanie skutecznych
błędów
158
Strategie
poszukiwań
. 166
Analizowanie
rezultatów
. 169
Podsumowanie
171
5
NIE LIŻ
PRÓBNIKA. JAK WSTRZYKIWAĆ
BŁĘDY
. 173
Wstrzykiwanie błędu
zegara
174
Metastabilność
178
Analiza wrażliwości na
błędy
. 181
Ograniczenia
. 181
Wymagany
sprzęt
182
Parametry wstrzykiwania błędu
zegara
184
Wstrzykiwanie błędu
napięcia
. 185
Generowanie zakłóceń
napięcia
. 186
Budowanie wstrzykiwacza wykorzystującego
przełączanie . 186
Wstrzykiwanie błędów typu
crowbar
191
Atakowanie błędami Raspberry Pi z użyciem
crowbara 193
Poszukiwanie parametrów wstrzykiwania błędu
napięcia . 200
Wstrzykiwanie błędów
elektromagnetycznych
200
Generowanie błędów
elektromagnetycznych
202
Architektury do wstrzykiwania błędów
elektromagnetycznych 204
Kształty i szerokości impulsów
EMFI
206
Poszukiwanie parametrów wstrzykiwania błędu
elektromagnetycznego
. 207
Wstrzykiwanie błędów
optycznych
208
Przygotowywanie
chipa
208
Ataki z przodu i z
tyłu
210
Źrodła
światła
212
Konfi guracja wstrzykiwania błędów
optycznych
213
Konfi gurowalne parametry wstrzykiwania błędów
optycznych 213
Wstrzykiwanie body
biasing
214
Parametry dla wstrzykiwania body
biasing
216
Wyzwalanie błędów w
sprzęcie
217
Postępowanie z nieprzewidywalnymi czasami
celu
218
Podsumowanie
219
6
CZAS NA BADANIA.
LABORATORIUM WSTRZYKIWANIA
BŁĘDÓW
221
Akt 1: prosta
pętla
. 222
Grillowa zapalniczka
bólu
. 225
Akt 2: wstawianie przydatnych
zakłóceń
. 227
Zakłócenie crowbar powodujące błąd w danych
konfi
guracyjnych
. 228
Wstrzykiwanie błędów
multipleksacją
. 244
Akt 3: różnicowa analiza
błędów
250
Nieco matematyki dotyczącej
RSA
250
Zdobywanie prawidłowego podpisu z
celu
. 254
Podsumowanie
258
7
TO JEST TO MIEJSCE.
ZRZUT PAMIĘCI PORTFELA TREZOR ONE 259
Wprowadzenie do
ataku
. 260
Wewnętrzne elementy portfela Trezor
One
. 261
Wprowadzanie błędu do żądania odczytu
USB
262
Deasemblacja
kodu
264
Budowanie oprogramowania układowego i walidowanie
zakłócenia 266
Wyzwalanie i określanie odpowiedniego
momentu
. 270
Zakłócanie przez
obudowę
. 274
Konfi
gurowanie
. 274
Przegląd kodu do wstrzykiwania
błędów
. 275
Uruchomienie
kodu
278
Potwierdzanie
zrzutu
280
Dostrajanie impulsu
EM
. 280
Dostrajanie momentu błędu na podstawie komunikatów
USB . 281
Podsumowanie
282
8
MAM MOC. WPROWADZENIE
DO ANALIZY MOCY
285
Ataki
czasowe
287
Atak czasowy na dysk
twardy
. 290
Pomiary mocy dla ataków
czasowych
. 293
Prosta analiza
mocy
294
Zastosowanie SPA od
RSA
295
Zastosowanie SPA do RSA,
ponownie
. 297
SPA na
ECDSA
300
Podsumowanie
306
9
CZAS NA BADANIA. PROSTA
ANALIZA MOCY
307
Domowe
laboratorium
308
Budowanie podstawowego środowiska
sprzętowego
308
Kupowanie
narzędzi
312
Przygotowywanie kodu
celu
313
Budowanie konfi
guracji
. 315
Zbieranie wszystkiego razem: atak
SPA
317
Przygotowanie
celu
. 318
Przygotowanie
oscyloskopu
. 320
Analiza
sygnału
. 321
Oskryptowanie komunikacji i
analizy
. 322
Oskryptowanie
ataku
. 325
Przykład z
ChipWhisperer-Nano
. 328
Budowanie i ładowanie oprogramowania
układowego 328
Pierwsze spojrzenie na
komunikację
329
Przechwytywanie
śladu
330
Od śladu do
ataku
. 331
Podsumowanie
335
10
DZIELENIE
RÓŻNIC. RÓŻNICOWA ANALIZA MOCY
. 337
Wewnątrz
mikrokontrolera
. 338
Zmiana napięcia na
kondensatorze
339
Od mocy do danych i na
odwrót
341
Przykład seksownych
XOR-ów
. 343
Atak z użyciem różnicowej analizy
mocy
. 345
Przewidywanie poboru mocy na podstawie założenia
dotyczącego
wycieków
. 346
Atak DPA w
Pythonie
. 349
Poznaj swojego wroga: standardowy kurs łamania
zaawansowanego
szyfrowania
353
Atakowanie AES-128 z użyciem
DPA
355
Korelacja w ataku z analizą
mocy
357
Współczynnik
korelacji
358
Atakowanie AES-128 z użyciem
CPA
362
Komunikacja z urządzeniem
celem
. 368
Szybkość przechwytywania
oscyloskopu
368
Podsumowanie
369
11
SKUP SIĘ NA TYM.
ZAAWANSOWANA ANALIZA MOCY .
371
Główne
przeszkody
372
Potężniejsze
ataki
374
Mierzenie
powodzenia
375
Metryki oparte na wskaźniku
powodzenia
375
Metryki oparte na
entropii
. 376
Progresja pików
korelacji
378
Wysokość pików
korelacji
379
Pomiary na rzeczywistych
urządzeniach
380
Działanie
urządzenia
. 380
Sonda
pomiarowa
. 383
Określanie wrażliwych sieci
zasilania
. 387
Automatyczne skanowanie z użyciem
sondy
388
Konfi guracja
oscyloskopu
389
Analiza i przetwarzanie zbiorów
śladów
. 392
Techniki
analizy
. 393
Techniki
przetwarzania
404
Głębokie uczenie z wykorzystaniem splotowych sieci
neuronowych . 407
Podsumowanie
410
12
CZAS NA BADANIA.
RÓŻNICOWA ANALIZA MOCY
. 413
Środowisko programu
rozruchowego
. 414
Protokół komunikacyjny programu
rozruchowego
414
Szczegóły AES-256
CBC
. 416
Atakowanie
AES-256
. 417
Pozyskanie i budowa kodu programu
rozruchowego
418
Uruchamianie celu i przechwytywanie
śladów
. 419
Obliczanie
CRC
. 419
Komunikacja z programem
rozruchowym
420
Przechwytywanie ogólnych
śladów
421
Przechwytywanie szczegółowych
śladów
422
Analiza
. 423
Klucz rundy
14
423
Klucz rundy
13
424
Odtwarzanie
IV
. 427
Co należy
przechwycić
428
Generowanie pierwszego
śladu
. 428
Generowanie reszty
śladów
430
Analiza
. 430
Atakowanie
podpisu
434
Teoria
ataku
434
Ślady
mocy
435
Analiza
. 435
Wszystkie cztery
bajty
. 437
Podglądanie kodu źródłowego programu
rozruchowego
. 437
Moment sprawdzania
podpisu
439
Podsumowanie
440
13
BEZ
ŻARTÓW. PRZYKŁADY Z ŻYCIA
443
Ataki z wstrzykiwaniem
błędów
443
Nadzorca w PlayStation
3
444
Xbox
360
448
Hakowanie z analizą
mocy
. 451
Hakowanie żarówek Philips
Hue
. 451
Podsumowanie
456
14
POMYŚL O DZIECIACH.
ŚRODKI ZAPOBIEGAWCZE, CERTYFIKATY I DALSZE KROKI
. 461
Środki
zapobiegawcze
462
Wdrażanie środków
zapobiegawczych
. 463
Weryfi kacja środków
zapobiegawczych
481
Certyfi katy
branżowe
. 485
Zwiększanie
umiejętności
488
Podsumowanie
489
A
CZAS
ZAKUPÓW. WYPOSAŻENIE LABORATORIUM TESTOWEGO
491
Sprawdzanie połączeń i napięcia: od $50 do
$500
. 492
Lutowanie precyzyjne: od 50$ do
1500$
. 494
Odlutowywanie: od 30$ do
500$
496
Lutowanie i odlutowywanie elementów montowanych
powierzchniowo:
od 100$ do
500$
. 498
Modyfi kowanie PCB: od $5 do
$700
502
Mikroskopy optyczne: od $200 do
$2,000
503
Fotografowanie płyt: od $50 do
$2,000
. 504
Zasilanie: od $10 do $1
000
. 505
Podgląd przebiegów analogowych (oscyloskopy): od $300 do $25
000 505
Głębokość
pamięci
. 507
Częstotliwość
próbkowania
. 508
Szerokość
pasma
. 510
Inne
parametry
512
Podgląd przebiegów logicznych: od $300 do
$8000
512
Wyzwalanie w magistralach szeregowych: od $300 do
$8000 . 514
Dekodowanie protokołów szeregowych: od $50 do
$8000
515
Podsłuchiwanie i wyzwalanie magistrali CAN: od $50 do
$5000 . 516
Podsłuchiwanie Ethernetu:
$50
. 517
Interakcja przez JTAG: od $20 do
$10,000
. 517
Ogólny JTAG i skanowanie
granic
517
Debugowanie
JTAG
. 518
Komunikacja PCIe: od $100 do
$1,000
. 519
Podsłuchiwanie USB: od $100 do
$6,000
520
Wyzwalanie USB: od $250 do
$6,000
. 522
Emulacja USB:
$100
523
Połączenia Flash SPI: od $25 do
$1000
523
Pomiary w analizie mocy: od $300 do
$50000
524
Wyzwalanie na podstawie przebiegów analogowych: powyżej
$3800 528
Mierzenie pól magnetycznych: od $25 do
$10,000
. 528
Wstrzykiwanie błędów zegara: od $100 do
$30000
. 531
Wstrzykiwanie błędów napięcia: od $25 do
$30000
532
Wstrzykiwanie błędów elektromagnetycznych: od $100 do
$50000 . 533
Wstrzykiwanie błędów optycznych: od $1000 do
$250000
534
Pozycjonowanie sond: od $100 do
$50000
. 535
Urządzenia docelowe: od $10 do
$10000
535
B
CAŁA TWOJA BAZA NALEŻY
DO NAS. POPULARNE UKŁADY PINÓW
. 539
SPI
Flash
539
Konektory 0,1
cala
. 540
Arm JTAG z 20
pinami
540
PowerPC JTAG z 14
pinami
. 541
Konektory 0,05
cala
542
Arm Cortex
JTAG/SWD
542
Konektor Ember Packet Trace
Port
542
574 strony, Format:
16.5x23.5cm, oprawa miękka