Black Hat GraphQL. Bezpieczeństwo API dla hakerów i pentesterów Lublin

GraphQL powstał jako alternatywa dla REST API. Charakteryzuje się większą elastycznością, wydajnością i prostotą użytkowania. Technologia ta skupiła na sobie uwagę wielu firm, gdyż umożliwia optymalizację wydajności działania, skalowanie i ułatwia wdrażanie nowych rozwiązań. Rosnąca popularność …

od 45,82 Najbliżej: 0,5 km

Liczba ofert: 5

Oferta sklepu

Opis

GraphQL powstał jako alternatywa dla REST API. Charakteryzuje się większą elastycznością, wydajnością i prostotą użytkowania. Technologia ta skupiła na sobie uwagę wielu firm, gdyż umożliwia optymalizację wydajności działania, skalowanie i ułatwia wdrażanie nowych rozwiązań. Rosnąca popularność GraphQL nie idzie jednak w parze z wiedzą o lukach w zabezpieczeniach i exploitach zagrażających API GraphQL. Dzięki tej książce dowiesz się, jak testować zabezpieczenia API GraphQL technikami ofensywnymi, takimi jak testy penetracyjne. Zdobędziesz i ugruntujesz wiedzę o GraphQL, niezbędną dla analityka bezpieczeństwa czy inżyniera oprogramowania. Nauczysz się skutecznie atakować API GraphQL, co pozwoli Ci wzmocnić procedury, stosować zautomatyzowane testy bezpieczeństwa w potoku ciągłej integracji i wdrażania, a ponadto efektywnie weryfikować mechanizmy zabezpieczeń. Zapoznasz się również z raportami o znalezionych lukach w zabezpieczeniach i przejrzysz kod exploitów, a także przekonasz się, jak wielki wpływ wywierają na działalność przedsiębiorstw. W książce między innymi: zbieranie dokładnych informacji o celu ataku zabezpieczanie API przez atakami typu DoS i niebezpiecznymi konfiguracjami serwera GraphQL podszywanie się pod użytkownika z uprawnieniami administratora wykrywanie luk w zabezpieczeniach w celu atakowania techniką wstrzykiwania kodu ataki typu XSS i SSRF, przechwytywanie sesji WebSocket pozyskiwanie informacji wrażliwych Autorzy są wybitnymi inżynierami bezpieczeństwa i współzałożycielami grupy DEFCON Toronto. Nick Aleks specjalizuje się w bezpieczeństwie ofensywnym i od ponad dekady hakuje wszystko, nawet inteligentne budynki. Dolev Farhi prowadzi zespoły inżynierów bezpieczeństwa w branży technologii finansowych. Hobbystycznie analizuje luki w zabezpieczeniach urządzeń IoT, uczestniczy w wyzwaniach CFT i dodaje exploity do bazy danych Exploit Database. Lektura obowiązkowa dla każdego, kto zajmuje się bezpieczeństwem API! Corey Ball, autor książki Hakowanie interfejsów API. Łamanie interfejsów programowania aplikacji internetowych Spis treści: O autorach O redaktorze technicznym Podziękowania Wstęp Wprowadzenie 1. Wprowadzenie do GraphQL Podstawy Korzenie Przykłady zastosowania Specyfikacja W jaki sposób jest prowadzona komunikacja? Schemat Zapytania Analizator składni zapytania i funkcje resolverów Jakie problemy rozwiązuje GraphQL? API GraphQL kontra API REST Przykład oparty na API REST Przykład oparty na GraphQL Inne różnice Pierwsze zapytanie Podsumowanie 2. Przygotowanie laboratorium do pracy z GraphQL Środki bezpieczeństwa Instalowanie dystrybucji Kali Instalowanie klientów internetowych Wykonywanie zapytań z poziomu powłoki Wykonywanie zapytań za pomocą narzędzia graficznego Przygotowanie serwera GraphQL, w którym istnieją luki w zabezpieczeniach Instalowanie Dockera Wdrożenie aplikacji Damn Vulnerable GraphQL Application Testowanie DVGA Instalowanie narzędzi przeznaczonych do hakowania GraphQL Burp Suite Clairvoyance InQL Graphw00f BatchQL Nmap Commix graphql-path-enum EyeWitness GraphQL Cop CrackQL Podsumowanie 3. Płaszczyzna ataku na GraphQL Czym jest płaszczyzna ataku? Język Zapytanie, mutacja i subskrypcja Nazwa operacji Pole Argument Alias Fragment Zmienna Dyrektywa Typy danych Obiekt Skalar Wyliczenie Unia Interfejs Dane wejściowe Introspekcja Weryfikacja i wykonywanie zapytania Najczęściej spotykane słabe strony Reguła specyfikacji i słaba strona implementacji Odmowa usług Ujawnienie informacji Błędy w mechanizmach uwierzytelnienia i autoryzacji Wstrzykiwanie kodu Podsumowanie 4. Rekonesans Wykrywanie GraphQL Najczęściej stosowane punkty końcowe Najczęściej udzielane odpowiedzi na zapytania Skanowanie za pomocą narzędzia Nmap Pole __typename Graphw00f Wykrywanie narzędzi GraphiQL Explorer i GraphQL Playground Używanie EyeWitness do skanowania pod kątem interfejsów graficznych Próba wykonania zapytania za pomocą klienta graficznego Sprawdzanie GraphQL za pomocą introspekcji Wizualizacja introspekcji za pomocą GraphQL Voyager Generowanie za pomocą SpectaQL dokumentacji introspekcji Wyszukiwanie informacji w przypadku, gdy introspekcja jest wyłączona Sprawdzanie implementacji GraphQL Wykrywanie serwera za pomocą Graphw00f Analiza wyników Podsumowanie 5. Atak typu DoS Kierunki ataków typu DoS w GraphQL Zapytania cykliczne Relacje cykliczne w schemacie GraphQL Jak wykrywać relacje cykliczne? Luki w zabezpieczeniach związane z zapytaniami cyklicznymi Luki w zabezpieczeniach związane z introspekcją cykliczną Luki w zabezpieczeniach związane z fragmentami cyklicznymi Powielanie pola Sposób działania luki związanej z powielaniem pola Testowanie pod kątem luk w zabezpieczeniach związanych z powielaniem pola Przeciążenie aliasu Nadużywanie aliasów na potrzeby ataków typu DoS Łączenie aliasów i zapytań cyklicznych Przeciążanie dyrektywy Nadużywanie dyrektyw w atakach typu DoS Testowanie pod kątem luk w zabezpieczeniach związanych z przeciążaniem dyrektywy Przeciążanie limitu obiektu Grupowanie zapytań za pomocą tablicy Zrozumienie sposobu działania grupowania zapytań za pomocą tablicy Testowanie pod kątem luk w zabezpieczeniach związanych z grupowaniem zapytań za pomocą tablicy Łączenie zapytań cyklicznych i grupowania zapytań za pomocą tablicy Używanie BatchQL do wykrycia dostępności grupowania zapytań za pomocą tablicy Przeprowadzanie za pomocą narzędzia GraphQL Cop audytu podatności na ataki typu DoS Zabezpieczenia GraphQL przed atakami typu DoS Analiza kosztu zapytania Ograniczenia głębokości zapytania Ograniczenia oparte na aliasach i tablicach Ograniczenia związane z powielaniem pól Ograniczanie liczby zwracanych rekordów Lista zapytań dozwolonych Automatycznie trwale przechowywane zapytania Przekroczenie czasu oczekiwania Zapora sieciowa aplikacji internetowej Brama działająca jako proxy Podsumowanie 6. Ujawnianie informacji Identyfikowanie sposobów ujawniania informacji w GraphQL Zautomatyzowane wyodrębnianie schematu za pomocą narzędzia InQL Jak sobie radzić z wyłączoną introspekcją Wykrywanie wyłączonej introspekcji Wykorzystanie środowiska innego niż produkcyjne Wykorzystanie pola meta __type Używanie funkcjonalności sugerowania nazwy pola Poznajemy algorytm Edit-Distance Optymalizacja używania funkcjonalności sugerowania nazwy pola Uwzględnienie kwestii bezpieczeństwa Wstawianie listy nazw pól Wstawianie listy nazw typów w polu meta __type Automatyzacja za pomocą narzędzia Clairvoyance funkcji sugerowania nazwy pola i wstawiania listy nazw Nadużywanie komunikatów o błędzie Analiza szczegółowego komunikatu o błędzie Włączenie debugowania Wyodrębnianie informacji ze stosu wywołań Ujawnianie informacji za pomocą metody GET Podsumowanie 7. Ominięcie uwierzytelnienia i autoryzacji Stan uwierzytelnienia i autoryzacji w GraphQL Modele wdrożenia in-band i out-of-band Najczęściej stosowane podejścia Testowanie uwierzytelnienia Wykrywanie warstwy uwierzytelnienia Ataki typu brute force przeprowadzane na hasła z użyciem funkcjonalności wstawiania listy nazw Atak typu brute force na hasło z użyciem narzędzia CrackQL Używanie listy nazw dozwolonych operacji Podrabianie i wyciekanie danych uwierzytelniających JWT Testowanie autoryzacji Wykrywanie warstwy autoryzacji Sprawdzanie ścieżek za pomocą graphql-path-enum Przeprowadzanie za pomocą narzędzia CrackQL ataków typu brute force na argumenty i pola Podsumowanie 8. Wstrzykiwanie kodu Związane ze wstrzykiwaniem kodu luki w zabezpieczeniach GraphQL Pole rażenia danych wejściowych o złośliwym działaniu OWASP Top 10 Płaszczyzna ataku polegającego na wstrzykiwaniu kodu Argumenty zapytania Argumenty pola Argumenty dyrektywy zapytania Nazwy operacji Punkty dostarczania danych wejściowych Wstrzykiwanie kodu SQL Poznajemy typy ataków związanych z SQLi Testowanie pod kątem luki SQLi Testowanie aplikacji DVGA pod kątem luki związanej z SQLi z użyciem oprogramowania Burp Suite Automatyzacja ataku polegającego na wstrzykiwaniu kodu SQL Wstrzykiwanie polecenia systemu operacyjnego Przykład Ręczne testowanie aplikacji DVGA Zautomatyzowane testowanie z użyciem frameworka Commix Analiza kodu funkcji resolvera Cross-Site Scripting Luka XSS typu odbijana Luka XSS typu przechowywana Luka XSS oparta na modelu DOM Testowanie aplikacji DVGA pod kątem luk XSS Podsumowanie 9. Fałszowanie i przechwytywanie żądań Atak typu CSRF Wyszukiwanie działań, które mogą prowadzić do zmiany stanu Sprawdzanie pod kątem luk w zabezpieczeniach związanych z metodami POST Automatyczne wysyłanie formularza w trakcie ataku typu CSRF Sprawdzanie pod kątem luk w zabezpieczeniach związanych z metodami GET Atak polegający na wstrzykiwaniu kodu HTML Testowanie automatyczne za pomocą narzędzi BatchQL i GraphQL Cop Unikanie ataków typu CSRF Atak typu SSRF Poznajemy typy ataków SSRF Wyszukiwanie podatnych na ataki operacji, pól i argumentów Testowanie pod kątem luki SSRF Zapobieganie atakom typu SSRF Przechwytywanie WebSocket Wyszukiwanie operacji subskrypcji Przechwytywanie zapytania subskrypcji Ochrona przed atakami typu CSWSH Podsumowanie 10. Exploity i ujawnione luki w zabezpieczeniach Odmowa usług Ogromne dane używane podczas ataku Wyrażenia regularne (CS Money) Zapytanie cykliczne introspekcji (GitLab) Aliasy dla powielania pola (Magento) Grupowanie zapytań za pomocą tablicy na potrzeby powielania pola (WPGraphQL) Fragmenty cykliczne (Agoo) Nieprawidłowa autoryzacja Umożliwienie dostępu do danych dezaktywowanym użytkownikom (GitLab) Pozwolenie nieuprzywilejowanemu pracownikowi firmy na modyfikowanie adresu e-mail użytkownika (Shopify) Ujawnienie liczby dozwolonych hakerów za pomocą obiektuteam (HackerOne) Odczytywanie notatek prywatnych (GitLab) Ujawnienie informacji na temat transakcji płatności (HackerOne) Ujawnienie informacji Lista użytkowników GraphQL (GitLab) Uzyskanie dostępu do zapytania introspekcji za pomocą WebSocket (Nuri) Wstrzykiwanie kodu Wstrzykiwanie kodu SQL za pomocą parametru zapytania GET (HackerOne) Wstrzykiwanie kodu SQL w argumencie Object (Apache SkyWalking) Cross-Site Scripting (GraphQL Playground) Cross-Site Request Forgery (GitLab) Podsumowanie A. Lista rzeczy do sprawdzenia podczas testowania GraphQL Rekonesans Odmowa usług Ujawnianie informacji Uwierzytelnienie i autoryzacja Wstrzykiwanie kodu Fałszowanie żądań Przechwytywanie żądań B. Zasoby dotyczące bezpieczeństwa GraphQL Wskazówki i podpowiedzi dotyczące testów penetracyjnych Laboratoria hakerskie do samodzielnego wypróbowania Klipy wideo związane z zapewnieniem bezpieczeństwa

Specyfikacja

Podstawowe informacje

Autor
  • Dolev Farhi|Nick Aleks
Wydawnictwo
  • Helion
Okładka
  • Miękka
Rok wydania
  • 2024
Ilość stron
  • 328
Tematyka
  • Hacking
ISBN
  • 9788328911246