Bezpieczeństwo nowoczesnych aplikacji internetowych. Przewodnik po zabezpieczeniach

34,72

Opis

Wydawałoby się, że ze względu na szeroki dostęp do materiałów poświęconych bezpieczeństwu systemów informatycznych, temat ten powinien być świetnie znany każdemu inżynierowi. Mimo to media regularnie donoszą o spektakularnych naruszeniach zabezpieczeń. Następstwem udanych ataków mogą być nie tylko straty finansowe i uszczerbek na wizerunku, ale również zagrożenie bezpieczeństwa narodowego. Zapewnienie wysokiego stopnia bezpieczeństwa systemu informatycznego wymaga ciągłego uczenia się, aktualizowania i systematyzowania swojej wiedzy. Tylko w ten sposób mamy szansę pokonać hakerów w tym niekończącym się wyścigu zbrojeń.Książka systematyzuje wiedzę dotyczącą ataków hakerskich i technik zabezpieczania przed nimi aplikacji internetowych. Autor dogłębnie opisuje metody ataków na poziomie kodu i architektury systemu. Sporo uwagi poświęca eksperckim technikom prowadzenia rekonesansów, dzięki którym nawet bez wiedzy o strukturze i kodzie aplikacji można samodzielnie zrozumieć sposób jej działania i zidentyfikować wrażliwe punkty systemu. Następnie omawia różne techniki ataków, począwszy od łamania zwykłych zabezpieczeń, a skończywszy na metodach obchodzenia zaawansowanych mechanizmów obronnych. Kolejne rozdziały dotyczą zapobiegania włamaniom do systemu. Jednym z ciekawszych zagadnień jest ocena kompromisu pomiędzy zapewnieniem akceptowalnego poziomu bezpieczeństwa a kosztami i wydajnością użytkowania aplikacji. Poszczególne zagadnienia zostały ujęte w ciekawy sposób i przedstawione z kilku różnych punktów widzenia.W książce między innymi:typowe luki bezpieczeństwapodstawowe techniki atakowania aplikacjiniestandardowe metody omijania typowych zabezpieczeńwdrażanie zabezpieczeń aplikacjinajlepsze praktyki bezpiecznego kodowania w cyklu programistycznympoprawa poziomu bezpieczeństwa aplikacji internetowychMyśl jak haker – twórz niezawodne zabezpieczenia!Spis treści:Wstęp 131. Historia bezpieczeństwa oprogramowania 29Początki hakerstwa 29Enigma – ok. 1930 r. 30Automatyczne łamanie kodu Enigmy – ok. 1940 r. 33Poznaj Bombę 34Phreaking telefonów – ok. 1950 r. 36Technologia antyphreakingowa – ok. 1960 r. 37Początki hakowania komputerów – ok. 1980 r. 38Rozwój sieci WWW – ok. 2000 r. 40Hakerzy w nowoczesnej erze – po ok. 2015 r. 42Podsumowanie 45CZĘŚĆ I. ROZPOZNANIE2. Wstęp do rekonesansu aplikacji internetowych 49Zbieranie informacji 49Mapowanie aplikacji internetowej 51Podsumowanie 533. Struktura nowoczesnej aplikacji internetowej 55Nowoczesne aplikacje kontra aplikacje starszego typu 55API typu REST 57JavaScript Object Notation 59JavaScript 61Zmienne i zakres 62Funkcje 64Kontekst 64Dziedziczenie prototypowe 65Asynchroniczność 67Hierarchia DOM przeglądarki 70Platformy SPA 72Systemy uwierzytelniania i autoryzacji 73Uwierzytelnianie 73Autoryzacja 74Serwery WWW 74Bazy danych po stronie serwera 75Magazyny danych po stronie klienta 76Podsumowanie 774. Znajdowanie subdomen 79Wiele aplikacji na domenę 79Wbudowane w przeglądarkę narzędzia do analizy sieci 80Wykorzystanie rekordów publicznych 82Archiwa silnika wyszukiwania 83Przypadkowe archiwa 85Migawki z serwisów społecznościowych 86Ataki transferu stref 89Szukanie subdomen metodą brute force 91Ataki słownikowe 965. Analiza API 99Wykrywanie punktu końcowego 99Mechanizmy uwierzytelniania 102Struktury punktów końcowych 104Popularne struktury 104Struktura specyficzna dla aplikacji 105Podsumowanie 1066. Znajdowanie zewnętrznych zależności 107Wykrywanie platform po stronie klienta 107Wykrywanie platform SPA 107Wykrywanie bibliotek JavaScriptu 109Wykrywanie bibliotek CSS 111Wykrywanie platform po stronie serwera 111Wykrywanie nagłówków 112Domyślne komunikaty błędów i strony 404 112Wykrywanie baz danych 114Podsumowanie 1167. Identyfikowanie słabych punktów w architekturze aplikacji 117Sygnały świadczące o bezpiecznej lub niezabezpieczonej architekturze 118Wiele warstw bezpieczeństwa 121Zapożyczenia i ponowne odkrywanie 122Podsumowanie 1248. Podsumowanie części I 125CZĘŚĆ II. OFENSYWA9. Wstęp do hakowania aplikacji internetowych 129Sposób myślenia hakera 129Rozpoznanie stosowane 13010. Ataki Cross-Site Scripting (XSS) 133Wykrywanie i eksploatacja XSS 133Zapisane ataki XSS 137Odbite ataki XSS 138Ataki XSS oparte na hierarchii DOM 140Ataki XSS oparte na mutacji 143Podsumowanie 14411. Cross-Site Request Forgery (CSRF) 147Manipulowanie parametrami zapytania 147Inne dane wysyłane żądaniami GET 151Ataki CSRF na punkty końcowe POST 152Podsumowanie 15412. XML External Entity (XXE) 155Bezpośrednie ataki XXE 155Pośrednie ataki XXE 158Podsumowanie 16013. Wstrzykiwanie 161Wstrzykiwanie SQL-a 161Wstrzykiwanie kodu 164Wstrzykiwanie polecenia 168Podsumowanie 17114. Denial of Service (DoS) 173Ataki DoS wykorzystujące wyrażenia regularne (ReDoS) 173Logiczne ataki DoS 176Rozproszone ataki DoS 179Podsumowanie 18015. Ataki z wykorzystaniem zewnętrznych zależności 181Metody integracji 183Gałęzie i rozwidlenia 183Integracje z własnym hostingiem 184Integracja z kodem źródłowym 185Menedżery pakietów 185JavaScript 186Java 188Inne języki 188Baza danych Common Vulnerabilities and Exposures 189Podsumowanie 19016. Podsumowanie części II 191CZĘŚĆ III. OBRONA17. Zabezpieczanie nowoczesnych aplikacji internetowych 195Defensywna architektura oprogramowania 196Wyczerpujące inspekcje kodu 196Wykrywanie luk 197Analiza luk 198Zarządzanie lukami 198Testy regresyjne 199Strategie łagodzenia ryzyka 199Rekonesans stosowany i techniki ofensywne 19918. Architektura bezpiecznej aplikacji 201Analizowanie wymagań dotyczących funkcji 201Uwierzytelnianie i autoryzacja 202Protokoły Secure Sockets Layer i Transport Layer Security 203Bezpieczne dane dostępowe 203Haszowanie danych dostępowych 205Uwierzytelnianie dwuskładnikowe 207Dane osobowe i finansowe 208Wyszukiwanie 209Podsumowanie 20919. Przegląd kodu pod kątem bezpieczeństwa 211Jak zacząć inspekcję kodu 212Archetypowe luki kontra błędy we własnej logice 213Od czego zacząć inspekcję pod kątem bezpieczeństwa 214Antywzorce bezpiecznego kodowania 216Czarne listy 216Szablonowy kod 217Antywzorzec domyślnego zaufania 218Separacja klienta i serwera 218Podsumowanie 21920. Wykrywanie luk 221Automatyzacja bezpieczeństwa 221Analiza statyczna 222Analiza dynamiczna 223Testowanie regresji dotyczącej luk 224Programy odpowiedzialnego ujawniania luk 227Programy dla łowców błędów 227Zewnętrzne testy penetracyjne 228Podsumowanie 22921. Zarządzanie lukami 231Odtwarzanie luk 231Ocena dotkliwości luki 232Common Vulnerability Scoring System 232CVSS: Base Scoring 233CVSS: Temporal Scoring 235CVSS: Environmental Scoring 236Zaawansowana punktacja luk 237Poza selekcją i oceną punktową 238Podsumowanie 23822. Obrona przed atakami XSS 239Najlepsze praktyki tworzenia kodu odpornego na ataki XSS 239Czyszczenie danych wpisanych przez użytkownika 241DOMParser 242SVG 242Blob 243Czyszczenie hiperłączy 243Kodowanie encji znakowych HTML-a 244CSS 245Zasady Content Security Policy stosowane w celu zapobiegania atakom XSS 246Źródło skryptu 246Flagi unsafe-eval i unsafe-inline 247Implementowanie CSP 247Podsumowanie 24823. Obrona przed atakami CSRF 249Weryfikacja nagłówka 249Tokeny CSRF 250Bezstanowe tokeny CSRF 251Najlepsze praktyki zapobiegające atakom CSRF 252Bezstanowe żądania GET 252Łagodzenie ryzyka atakami CSRF na poziomie aplikacji 253Podsumowanie 25524. Obrona przed atakami XXE 257Weryfikacja innych formatów danych 257Zaawansowane ryzyka XXE 259Podsumowanie 25925. Ochrona przed wstrzykiwaniem 261Ochrona przed wstrzykiwaniem SQL-a 261Wykrywanie wstrzykiwania SQL-a 261Zapytania parametryzowane 263Metody obrony specyficzne dla baz danych 264Ogólne metody ochrony przed wstrzykiwaniem 265Potencjalne cele wstrzykiwania 265Zasada najmniejszych uprawnień 266Tworzenie białej listy poleceń 266Podsumowanie 26826. Ochrona przed atakami DoS 269Ochrona przed atakami DoS na funkcje parsujące wyrażenia regularne 269Ochrona przed atakami DoS wymierzonymi w logikę 270Ochrona przed atakami DDoS 271Łagodzenie skutków ataków DDoS 271Podsumowanie 27227. Zabezpieczanie zewnętrznych zależności 273Ocena drzewa zależności 273Modelowanie drzewa zależności 274Drzewa zależności w rzeczywistym świecie 274Analiza automatyczna 275Techniki bezpiecznej integracji 275Podział odpowiedzialności 275Bezpieczne zarządzanie pakietami 276Podsumowanie 27728. Podsumowanie części III 279Historia bezpieczeństwa oprogramowania 279Rekonesans aplikacji internetowych 280Ofensywa 282Obrona 28329. Podsumowanie 287O autorze: Andrew Hoffman jest starszym inżynierem do spraw bezpieczeństwa w Salesforce.com. Specjalizuje się w zabezpieczeniach drzewa DOM i JavaScriptu. Pracował z dostawcami wszystkich najważniejszych przeglądarek oraz z organizacjami TC39 i WHATWG. Bada również zagadnienia „bezstanowych (bezpiecznych/czystych) modułów”, umożliwiających wykonywanie kodu JavaScript przy znacznie zmniejszonym ryzyku.

geograf kraków, smacznego po niemiecku, kryminologia ug, nauka boksu, droga kariery, metalka nowy targ, z matematyki, pomogłabym, kursy crypto

yyyyy