Facebook - konwersja
Darmowy fragment

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

Wydawnictwo:
Format:
PDF
Data wydania:
13 sierpnia 2024
79,00
7900 pkt
punktów Virtualo

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

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!, 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
Kategoria: Informatyka
Zabezpieczenie: Watermark
Watermark
Watermarkowanie polega na znakowaniu plików wewnątrz treści, dzięki czemu możliwe jest rozpoznanie unikatowej licencji transakcyjnej Użytkownika. E-książki zabezpieczone watermarkiem można odczytywać na wszystkich urządzeniach odtwarzających wybrany format (czytniki, tablety, smartfony). Nie ma również ograniczeń liczby licencji oraz istnieje możliwość swobodnego przenoszenia plików między urządzeniami. Pliki z watermarkiem są kompatybilne z popularnymi programami do odczytywania ebooków, jak np. Calibre oraz aplikacjami na urządzenia mobilne na takie platformy jak iOS oraz Android.
ISBN: 978-83-289-1125-3
Rozmiar pliku: 8,4 MB

BESTSELLERY

Menu

Zamknij