44,90 €*
Versandkostenfrei per Post / DHL
auf Lager, Lieferzeit 2-4 Werktage
Die Suche nach Exploits ist die Königsdisziplin für Entwickler. Neben viel Ausdauer und Spaß an Knobeleien müssen Sie zudem Wissen über Angriffsvektoren und Sicherheitsprobleme mitbringen. Hier lernen Sie die wichtigsten Techniken und Tools kennen und bekommen einen tiefgehenden Einblick in das Aufspüren, Ausnutzen und Verhindern von Exploits.
Aus dem Inhalt:
- Sichere Software-Entwicklung: Prozesslayout, Memory Management und mehr
- Reverse Engineering
- Secure Coding: Encapsulation, Data Validation, Error Handling
- Secure Design: Architectural Risk Analysis
- Kryptografie
- Lücken finden: Fuzzing, Codeanalyse und mehr
- Buffer Overflows ausnutzen
- Mitigations einsetzen: ASLR, SEHOP und mehr
- Schutzmechanismen umgehen
- Real Life Exploits: Heartbleed, Shellshock, Spectre & Meltdown und mehr
Die Suche nach Exploits ist die Königsdisziplin für Entwickler. Neben viel Ausdauer und Spaß an Knobeleien müssen Sie zudem Wissen über Angriffsvektoren und Sicherheitsprobleme mitbringen. Hier lernen Sie die wichtigsten Techniken und Tools kennen und bekommen einen tiefgehenden Einblick in das Aufspüren, Ausnutzen und Verhindern von Exploits.
Aus dem Inhalt:
- Sichere Software-Entwicklung: Prozesslayout, Memory Management und mehr
- Reverse Engineering
- Secure Coding: Encapsulation, Data Validation, Error Handling
- Secure Design: Architectural Risk Analysis
- Kryptografie
- Lücken finden: Fuzzing, Codeanalyse und mehr
- Buffer Overflows ausnutzen
- Mitigations einsetzen: ASLR, SEHOP und mehr
- Schutzmechanismen umgehen
- Real Life Exploits: Heartbleed, Shellshock, Spectre & Meltdown und mehr
Geleitwort ... 15
1. Einleitung ... 17
1.1 ... Über dieses Buch ... 17
1.2 ... Zielgruppe ... 19
1.3 ... Wie Sie mit dem Buch arbeiten ... 20
1.4 ... Die Autoren ... 20
2. Exploit! So schnell führt ein Programmierfehler zum Root-Zugriff ... 21
2.1 ... Das Szenario ... 21
2.2 ... Die Vorbereitungsarbeiten, Informationssammlung ... 22
2.3 ... Analyse und Identifikation von Schwachstellen ... 23
2.4 ... Ausnutzung der XSS-Schwachstelle ... 25
2.5 ... Analyse und Identifikation weiterer Schwachstellen ... 26
2.6 ... Zugriff auf das interne Netzwerk ... 31
2.7 ... Angriff auf das interne Netz ... 35
2.8 ... Privilege Escalation am Entwicklungsserver ... 39
2.9 ... Analyse des Angriffs ... 42
3. Einführung in die sichere Softwareentwicklung ... 43
3.1 ... Ein Prozessmodell für sichere Softwareentwicklung ... 44
3.2 ... Die Praktiken der sicheren Softwareentwicklung ... 46
3.3 ... Fachwissen für sichere Softwareentwicklung ... 51
4. Grundlagenwissen für sicheres Programmieren ... 67
4.1 ... Praktiken der agilen Softwareentwicklung ... 68
4.2 ... Die Programmiersprache C ... 69
4.3 ... Die Programmiersprache Java ... 76
4.4 ... Versionierung von Quellcode ... 82
4.5 ... Debugging und automatisiertes Testen ... 84
4.6 ... Continuous Integration ... 91
4.7 ... Beispiele auf GitHub und auf [...] ... 94
5. Reverse Engineering ... 97
5.1 ... Analyse von C-Applikationen ... 97
5.2 ... Analyse von Java-Applikationen ... 129
5.3 ... Code Obfuscation ... 148
6. Sichere Implementierung ... 151
6.1 ... Reduzieren Sie die Sichtbarkeit von Daten und Code ... 151
6.2 ... Der sichere Umgang mit Daten ... 160
6.3 ... Der richtige Umgang mit Fehlern ... 176
6.4 ... Kryptografische APIs richtig einsetzen ... 182
6.5 ... Statische Codeanalyse ... 211
7. Sicheres Design ... 227
7.1 ... Architekturbasierte Risikoanalyse ... 227
7.2 ... Designprinzipien für sichere Softwaresysteme ... 232
7.3 ... Das HTTP-Protokoll ... 235
7.4 ... Sicheres Design von Webapplikationen ... 244
8. Kryptografie ... 281
8.1 ... Verschlüsselung ... 281
8.2 ... Hash-Funktionen ... 309
8.3 ... Message Authentication Codes und digitale Signaturen ... 321
8.4 ... NIST-Empfehlungen ... 327
9. Sicherheitslücken finden und analysieren ... 329
9.1 ... Installation der Windows-Testinfrastruktur ... 329
9.2 ... Manuelle Analyse der Anwendung ... 335
9.3 ... Automatische Schwachstellensuche mittels Fuzzing ... 340
9.4 ... Analyse des Absturzes im Debugger ... 343
9.5 ... Alternativen zum Fuzzing ... 344
9.6 ... Tools zur Programmanalyse ... 344
10. Buffer Overflows ausnutzen ... 357
10.1 ... Die Crash-Analyse des [...]-Clients ... 357
10.2 ... Offsets ermitteln ... 360
10.3 ... Eigenen Code ausführen ... 363
10.4 ... Umgang mit Bad Characters ... 368
10.5 ... Shellcode generieren ... 372
10.6 ... Exception Handling ausnutzen ... 377
10.7 ... Analyse unterschiedlicher Buffer-Längen ... 379
10.8 ... Buffer Offsets berechnen ... 382
10.9 ... SEH-Exploits ... 382
10.10 ... Heap Spraying ... 386
11. Schutzmaßnahmen einsetzen ... 391
11.1 ... ASLR ... 391
11.2 ... Stack Cookies ... 393
11.3 ... SafeSEH ... 395
11.4 ... SEHOP ... 396
11.5 ... Data Execution Prevention ... 396
11.6 ... Schutz gegen Heap Spraying ... 399
12. Schutzmaßnahmen umgehen ... 401
12.1 ... Was sind Reliable Exploits? ... 401
12.2 ... Bypass von ASLR ... 402
12.3 ... Bypass von Stack Cookies ... 418
12.4 ... Bypass von SafeSEH ... 419
12.5 ... Bypass von SEHOP ... 420
12.6 ... Data Execution Prevention (DEP) -- Bypass mittels Return Oriented Programming ... 423
12.7 ... DEP Bypass mittels Return-to-libc ... 449
13. Format String Exploits ... 451
13.1 ... Formatstrings ... 451
13.2 ... Die fehlerhafte Anwendung ... 454
13.3 ... Aufbau der Analyseumgebung ... 457
13.4 ... Analyse des Stack-Inhalts ... 459
13.5 ... Speicherstellen mit %n überschreiben ... 463
13.6 ... Die Exploit-Struktur ... 466
13.7 ... Die Ermittlung von Adressen und Offsets ... 468
13.8 ... Die Verifikation der Adressen im Debugger ... 471
13.9 ... Die erste lauffähige Version des Exploits ... 473
13.10 ... ASLR Bypass ... 477
14. Real Life Exploitation ... 485
14.1 ... Heartbleed ... 485
14.2 ... SSL OpenFuck ... 488
14.3 ... Shellshock ... 493
14.4 ... Eternal Blue ... 495
14.5 ... Spectre und Meltdown ... 504
14.6 ... Stagefright ... 509
Index ... 511
Erscheinungsjahr: | 2019 |
---|---|
Fachbereich: | Programmiersprachen |
Genre: | Informatik, Mathematik, Medizin, Naturwissenschaften, Technik |
Rubrik: | Naturwissenschaften & Technik |
Medium: | Buch |
Reihe: | Rheinwerk Computing |
Inhalt: | 519 S. |
ISBN-13: | 9783836265980 |
ISBN-10: | 3836265982 |
Sprache: | Deutsch |
Herstellernummer: | 459/06598 |
Einband: | Gebunden |
Autor: |
Gebeshuber, Klaus
Teiniker, Egon Zugaj, Wilhelm |
Hersteller: | Rheinwerk Verlag GmbH |
Verantwortliche Person für die EU: | Rheinwerk Verlag GmbH, Rheinwerkallee 4, D-53227 Bonn, service@rheinwerk-verlag.de |
Maße: | 246 x 180 x 35 mm |
Von/Mit: | Klaus Gebeshuber (u. a.) |
Erscheinungsdatum: | 30.07.2019 |
Gewicht: | 1,078 kg |
Geleitwort ... 15
1. Einleitung ... 17
1.1 ... Über dieses Buch ... 17
1.2 ... Zielgruppe ... 19
1.3 ... Wie Sie mit dem Buch arbeiten ... 20
1.4 ... Die Autoren ... 20
2. Exploit! So schnell führt ein Programmierfehler zum Root-Zugriff ... 21
2.1 ... Das Szenario ... 21
2.2 ... Die Vorbereitungsarbeiten, Informationssammlung ... 22
2.3 ... Analyse und Identifikation von Schwachstellen ... 23
2.4 ... Ausnutzung der XSS-Schwachstelle ... 25
2.5 ... Analyse und Identifikation weiterer Schwachstellen ... 26
2.6 ... Zugriff auf das interne Netzwerk ... 31
2.7 ... Angriff auf das interne Netz ... 35
2.8 ... Privilege Escalation am Entwicklungsserver ... 39
2.9 ... Analyse des Angriffs ... 42
3. Einführung in die sichere Softwareentwicklung ... 43
3.1 ... Ein Prozessmodell für sichere Softwareentwicklung ... 44
3.2 ... Die Praktiken der sicheren Softwareentwicklung ... 46
3.3 ... Fachwissen für sichere Softwareentwicklung ... 51
4. Grundlagenwissen für sicheres Programmieren ... 67
4.1 ... Praktiken der agilen Softwareentwicklung ... 68
4.2 ... Die Programmiersprache C ... 69
4.3 ... Die Programmiersprache Java ... 76
4.4 ... Versionierung von Quellcode ... 82
4.5 ... Debugging und automatisiertes Testen ... 84
4.6 ... Continuous Integration ... 91
4.7 ... Beispiele auf GitHub und auf [...] ... 94
5. Reverse Engineering ... 97
5.1 ... Analyse von C-Applikationen ... 97
5.2 ... Analyse von Java-Applikationen ... 129
5.3 ... Code Obfuscation ... 148
6. Sichere Implementierung ... 151
6.1 ... Reduzieren Sie die Sichtbarkeit von Daten und Code ... 151
6.2 ... Der sichere Umgang mit Daten ... 160
6.3 ... Der richtige Umgang mit Fehlern ... 176
6.4 ... Kryptografische APIs richtig einsetzen ... 182
6.5 ... Statische Codeanalyse ... 211
7. Sicheres Design ... 227
7.1 ... Architekturbasierte Risikoanalyse ... 227
7.2 ... Designprinzipien für sichere Softwaresysteme ... 232
7.3 ... Das HTTP-Protokoll ... 235
7.4 ... Sicheres Design von Webapplikationen ... 244
8. Kryptografie ... 281
8.1 ... Verschlüsselung ... 281
8.2 ... Hash-Funktionen ... 309
8.3 ... Message Authentication Codes und digitale Signaturen ... 321
8.4 ... NIST-Empfehlungen ... 327
9. Sicherheitslücken finden und analysieren ... 329
9.1 ... Installation der Windows-Testinfrastruktur ... 329
9.2 ... Manuelle Analyse der Anwendung ... 335
9.3 ... Automatische Schwachstellensuche mittels Fuzzing ... 340
9.4 ... Analyse des Absturzes im Debugger ... 343
9.5 ... Alternativen zum Fuzzing ... 344
9.6 ... Tools zur Programmanalyse ... 344
10. Buffer Overflows ausnutzen ... 357
10.1 ... Die Crash-Analyse des [...]-Clients ... 357
10.2 ... Offsets ermitteln ... 360
10.3 ... Eigenen Code ausführen ... 363
10.4 ... Umgang mit Bad Characters ... 368
10.5 ... Shellcode generieren ... 372
10.6 ... Exception Handling ausnutzen ... 377
10.7 ... Analyse unterschiedlicher Buffer-Längen ... 379
10.8 ... Buffer Offsets berechnen ... 382
10.9 ... SEH-Exploits ... 382
10.10 ... Heap Spraying ... 386
11. Schutzmaßnahmen einsetzen ... 391
11.1 ... ASLR ... 391
11.2 ... Stack Cookies ... 393
11.3 ... SafeSEH ... 395
11.4 ... SEHOP ... 396
11.5 ... Data Execution Prevention ... 396
11.6 ... Schutz gegen Heap Spraying ... 399
12. Schutzmaßnahmen umgehen ... 401
12.1 ... Was sind Reliable Exploits? ... 401
12.2 ... Bypass von ASLR ... 402
12.3 ... Bypass von Stack Cookies ... 418
12.4 ... Bypass von SafeSEH ... 419
12.5 ... Bypass von SEHOP ... 420
12.6 ... Data Execution Prevention (DEP) -- Bypass mittels Return Oriented Programming ... 423
12.7 ... DEP Bypass mittels Return-to-libc ... 449
13. Format String Exploits ... 451
13.1 ... Formatstrings ... 451
13.2 ... Die fehlerhafte Anwendung ... 454
13.3 ... Aufbau der Analyseumgebung ... 457
13.4 ... Analyse des Stack-Inhalts ... 459
13.5 ... Speicherstellen mit %n überschreiben ... 463
13.6 ... Die Exploit-Struktur ... 466
13.7 ... Die Ermittlung von Adressen und Offsets ... 468
13.8 ... Die Verifikation der Adressen im Debugger ... 471
13.9 ... Die erste lauffähige Version des Exploits ... 473
13.10 ... ASLR Bypass ... 477
14. Real Life Exploitation ... 485
14.1 ... Heartbleed ... 485
14.2 ... SSL OpenFuck ... 488
14.3 ... Shellshock ... 493
14.4 ... Eternal Blue ... 495
14.5 ... Spectre und Meltdown ... 504
14.6 ... Stagefright ... 509
Index ... 511
Erscheinungsjahr: | 2019 |
---|---|
Fachbereich: | Programmiersprachen |
Genre: | Informatik, Mathematik, Medizin, Naturwissenschaften, Technik |
Rubrik: | Naturwissenschaften & Technik |
Medium: | Buch |
Reihe: | Rheinwerk Computing |
Inhalt: | 519 S. |
ISBN-13: | 9783836265980 |
ISBN-10: | 3836265982 |
Sprache: | Deutsch |
Herstellernummer: | 459/06598 |
Einband: | Gebunden |
Autor: |
Gebeshuber, Klaus
Teiniker, Egon Zugaj, Wilhelm |
Hersteller: | Rheinwerk Verlag GmbH |
Verantwortliche Person für die EU: | Rheinwerk Verlag GmbH, Rheinwerkallee 4, D-53227 Bonn, service@rheinwerk-verlag.de |
Maße: | 246 x 180 x 35 mm |
Von/Mit: | Klaus Gebeshuber (u. a.) |
Erscheinungsdatum: | 30.07.2019 |
Gewicht: | 1,078 kg |