Exploit! - Code härten, Bugs analysieren, Hacking verstehen. Das Handbuch für sichere Softwareentwicklung. Vom Buffer Overflow zur Code Execution - so funktionieren Exploits wirklich. Mitigations, Kryptologie, Reverse Engineering, gutes Design und sauberer Code.

Gebundene Ausgabe
44,90 €
inkl. MwSt. versandkostenfrei!

Reduzierte Artikel in dieser Kategorie

Als Mängelexemplar1
3,99 € 29,70 €1

Produktdetails  
Verlag Rheinwerk Verlag
Auflage August 2019
Seiten 519
Format 17,8 x 24,4 x 3,4 cm
Gewicht 1078 g
Reihe Rheinwerk Computing
ISBN-10 3836265982
ISBN-13 9783836265980
Bestell-Nr 83626598A

Produktbeschreibung  

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


Inhalt:



  Materialien zum Buch ... 13


  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 rheinwerk-verlag.de ... 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 i.Ftp-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

Autorenporträt  
Mehr Angebote zum Thema