Hakowanie interfejsów API. Łamanie interfejsów programowania aplikacji internetowych - ebook
Hakowanie interfejsów API. Łamanie interfejsów programowania aplikacji internetowych - ebook
Jeśli najcenniejszym zasobem świata są dane, to interfejsy API można porównać do cyfrowych rurociągów przesyłających cenny towar pomiędzy kontrahentami. Ta technologia, dzięki temu, że umożliwia wymianę danych między różnymi aplikacjami, zmieniła sposób projektowania oprogramowania. API mają jednak bardzo poważną wadę: podatność na ataki. Bardzo często hakerzy traktują je jako otwarte drzwi do cennych danych. A to najkrótsza droga do katastrofy.
Ta książka stanowi przyspieszony kurs testowania bezpieczeństwa interfejsów API aplikacji internetowych. Dzięki niej przygotujesz się do testowania interfejsów, wyszukiwania błędów i zwiększania bezpieczeństwa własnoręcznie napisanych interfejsów. Dowiesz się, jak interfejsy REST API działają w środowisku produkcyjnym i jakie problemy wiążą się z ich bezpieczeństwem. Zbudujesz nowoczesne środowisko testowe złożone z programów: Burp Suite, Postman, Kiterunner i OWASP Amass, przydatnych do rekonesansu, analizy punktów końcowych i zakłócania interfejsów. Następnie nauczysz się przeprowadzać ataki na procesy uwierzytelniania, luki w procedurach biznesowych czy typowe słabe punkty interfejsów. Dowiesz się też, jak tworzyć skrypty międzyinterfejsowe, a także jak prowadzić masowe przypisania i wstrzykiwanie danych.
Ta książka to żyła złota dla hakerów interfejsów API!
Chris Roberts, vCISO
Dzięki książce nauczysz się:
- identyfikować użytkowników i punkty końcowe API
- wykrywać nadmierną ekspozycję danych
- atakować proces uwierzytelniania
- wstrzykiwać zapytania NoSQL
- przeprowadzać inżynierię wsteczną interfejsu API
- wykrywać błędy w procedurach biznesowych
Czy już wiesz, jak atakuje prawdziwy wróg?
Spis treści
O autorze
O korektorze merytorycznym
Przedmowa
Podziękowania
Wprowadzenie
I. CZYM JEST BEZPIECZEŃSTWO INTERFEJSÓW API?
- 0. PRZYGOTOWANIE TESTÓW BEZPIECZEŃSTWA
- Uzyskanie upoważnienia
- Modelowanie zagrożeń przed testem interfejsu API
- Jakie cechy interfejsu API należy testować?
- Testy mechanizmów uwierzytelniania
- Zapory WAF
- Testy aplikacji mobilnych
- Audyt dokumentacji interfejsu API
- Testy limitu zapytań
- Ograniczenia i wykluczenia
- Testy chmurowych interfejsów API
- Testy odporności na ataki DoS
- Raportowanie i testowanie środków zaradczych
- Uwaga dotycząca programów dla łowców nagród
- Podsumowanie
- 1. JAK DZIAŁAJĄ APLIKACJE INTERNETOWE?
- Podstawy aplikacji internetowych
- Adres URL
- Zapytania HTTP
- Odpowiedzi HTTP
- Kody stanu HTTP
- Metody HTTP
- Połączenia stanowe i bezstanowe
- Bazy danych w aplikacjach internetowych
- Relacyjne bazy danych
- Nierelacyjne bazy danych
- Miejsce interfejsów API
- Podsumowanie
- Podstawy aplikacji internetowych
- 2. ANATOMIA INTERFEJSU API
- Jak działają internetowe interfejsy API?
- Typy internetowych interfejsów API
- REST
- GraphQL
- Specyfikacje REST API
- Formaty wymiany danych
- JSON
- XML
- YAML
- Uwierzytelnianie
- Podstawowe uwierzytelnienie
- Klucze API
- Tokeny JWT
- HMAC
- OAuth 2.0
- Brak uwierzytelnienia
- Praktyczne ćwiczenie: badanie interfejsu API Twittera
- Podsumowanie
- 3. TYPOWE PODATNOŚCI INTERFEJSÓW API
- Wycieki informacji
- Wadliwa autoryzacja na poziomie obiektu
- Wadliwa autoryzacja użytkownika
- Nadmierna ekspozycja danych
- Brak zasobów i limitu zapytań
- Wadliwa autoryzacja na poziomie funkcji
- Przypisanie masowe
- Błędna konfiguracja zabezpieczeń
- Wstrzykiwanie danych
- Niewłaściwe zarządzanie zasobami
- Błędy w procedurach biznesowych
- Podsumowanie
II. BUDOWANIE LABORATORIUM TESTOWANIA INTERFEJSÓW API
- 4. TWÓJ SYSTEM HAKERSKI
- Kali Linux
- Analiza aplikacji internetowych za pomocą DevTools
- Przechwytywanie i modyfikowanie zapytań za pomocą Burp Suite
- Konfiguracja FoxyProxy
- Instalacja certyfikatu Burp Suite
- Korzystanie z programu Burp Suite
- Przechwytywanie komunikacji
- Modyfikowanie zapytań za pomocą modułu Intruder
- Wysyłanie zapytań za pomocą programu Postman
- Edytor zapytań
- Środowisko
- Kolekcja
- Wysyłanie kolekcji zapytań
- Generowanie kodu
- Testy
- Integracja programów Postman i Burp Suite
- Dodatkowe narzędzia
- Przeprowadzanie rekonesansu za pomocą narzędzia OWASP Amass
- Wykrywanie punktów końcowych za pomocą programu Kiterunner
- Wykrywanie podatności za pomocą Nikto
- Wykrywanie podatności za pomocą OWASP ZAP
- Zakłócanie za pomocą Wfuzz
- Wykrywanie parametrów zapytań za pomocą Arjun
- Podsumowanie
- Ćwiczenie 1. Zliczenie kont użytkowników interfejsu API
- 5. PRZYGOTOWANIE PODATNYCH INTERFEJSÓW API
- Utworzenie hosta z systemem Linux
- Instalacja środowisk Docker i Docker Compose
- Instalacja podatnych aplikacji
- crAPI
- Pixi
- Juice Shop
- DVGA
- Inne podatne aplikacje
- Hakowanie interfejsów API w serwisach TryHackMe i HackTheBox
- Podsumowanie
- Ćwiczenie 2. Wyszukanie podatnych na ataki interfejsów API
III. ATAKOWANIE INTERFEJSÓW API
- 6. ODKRYWANIE INTERFEJSÓW API
- Rekonesans pasywny
- Proces rekonesansu pasywnego
- Hakowanie za pomocą Google
- Katalog interfejsów API - ProgrammableWeb
- Shodan
- OWASP Amass
- Informacje eksponowane w serwisie GitHub
- Rekonesans aktywny
- Proces rekonesansu aktywnego
- Ogólne skanowanie za pomocą Nmap
- Wyszukiwanie ukrytych ścieżek w pliku robots.txt
- Wyszukiwanie poufnych informacji za pomocą Chrome DevTools
- Weryfikacja interfejsu API za pomocą Burp Suite
- Skanowanie identyfikatorów URI za pomocą OWASP ZAP
- Wyszukiwanie identyfikatorów URI metodą brutalnej siły za pomocą programu Gobuster
- Wykrywanie zasobów interfejsów API za pomocą narzędzia Kiterunner
- Podsumowanie
- Ćwiczenie 3. Rekonesans aktywny w teście czarnej skrzynki
- Rekonesans pasywny
- 7. ANALIZA PUNKTÓW KOŃCOWYCH
- Pozyskiwanie informacji o zapytaniach
- Wyszukiwanie informacji w dokumentacji
- Import specyfikacji interfejsu API
- Inżynieria odwrotna interfejsu API
- Konfiguracja uwierzytelnienia w programie Postman
- Analiza funkcjonalności interfejsu
- Testowanie interfejsu zgodnie z przeznaczeniem
- Wykonywanie operacji jako uwierzytelniony użytkownik
- Analiza odpowiedzi
- Wyszukiwanie wycieków informacji
- Wyszukiwanie błędów w konfiguracji zabezpieczeń
- Szczegółowe komunikaty o błędach
- Słabe algorytmy szyfrowania
- Problematyczna konfiguracja
- Wyszukiwanie nadmiernej ekspozycji danych
- Wyszukiwanie błędów w procedurach biznesowych
- Podsumowanie
- Ćwiczenie 4. Utworzenie kolekcji crAPI i identyfikacja nadmiernej ekspozycji danych
- Pozyskiwanie informacji o zapytaniach
- 8. ATAKOWANIE PROCESU UWIERZYTELNIANIA UŻYTKOWNIKÓW
- Typowe ataki na procesy uwierzytelniania użytkowników
- Łamanie poświadczeń metodą brutalnej siły
- Reset hasła i atakowanie procesu uwierzytelnienia wieloskładnikowego metodą brutalnej siły
- Rozpylanie haseł
- Kodowanie Base64 w atakach metodą brutalnej siły
- Fałszowanie tokenów
- Analiza ręcznie załadowanej listy tokenów
- Analiza przechwytywanych tokenów
- Generowanie prawdopodobnych tokenów
- Łamanie tokenów JWT
- Identyfikacja i analiza tokenów JWT
- Eliminacja algorytmu kodowania
- Podmiana algorytmu
- Łamanie tokenu JWT
- Podsumowanie
- Ćwiczenie 5. Łamanie podpisu tokenu JWT w aplikacji crAPI
- Typowe ataki na procesy uwierzytelniania użytkowników
- 9. ZAKŁÓCANIE INTERFEJSU API
- Skuteczne zakłócanie interfejsów API
- Dobór ładunków zakłócających
- Wykrywanie anomalii
- Zakłócanie interfejsu wszerz i w głąb
- Zakłócanie interfejsu wszerz za pomocą programu Postman
- Zakłócanie interfejsu w głąb za pomocą programu Burp Suite
- Zakłócanie interfejsu w głąb za pomocą programu Wfuzz
- Zakłócanie interfejsu wszerz i identyfikowanie niewłaściwego zarządzania zasobami
- Testowanie metod HTTP za pomocą programu Wfuzz
- Głębsze zakłócanie interfejsu i omijanie weryfikacji danych wejściowych
- Zakłócanie interfejsu i przełączanie katalogów
- Podsumowanie
- Ćwiczenie 6. Zakłócanie interfejsu wszerz i niewłaściwe zarządzanie zasobami
- Skuteczne zakłócanie interfejsów API
- 10. EKSPLORACJA PROCESU AUTORYZACJI UŻYTKOWNIKÓW
- Identyfikacja podatności BOLA
- Określenie identyfikatora zasobu
- Test A-B podatności BOLA
- Test podatności BOLA z użyciem kanału bocznego
- Identyfikacja podatności BFLA
- Test A-B-A podatności BFLA
- Testowanie podatności BFLA za pomocą programu Postman
- Wskazówki dotyczące hakowania procesu autoryzacji
- Zmienne kolekcji w programie Postman
- Wyszukiwanie i zmienianie zapytań w programie Burp Suite
- Podsumowanie
- Ćwiczenie 7. Lokalizacja pojazdu innego użytkownika
- Identyfikacja podatności BOLA
- 11. PRZYPISANIE MASOWE
- Identyfikowanie przypisania masowego
- Rejestrowanie konta
- Nieautoryzowany dostęp do zasobów innej organizacji
- Identyfikacja kluczy
- Wyszukiwanie kluczy w dokumentacji
- Zakłócanie niezrozumiałych kluczy
- Losowe testowanie podatności na przypisanie masowe
- Testowanie podatności na przypisanie masowe za pomocą programów Arjun i Burp Suite Intruder
- Test podatności BFLA i przypisania masowego
- Podsumowanie
- Ćwiczenie 8. Modyfikacja ceny produktu w sklepie internetowym
- Identyfikowanie przypisania masowego
- 12. WSTRZYKIWANIE DANYCH
- Identyfikacja podatności na wstrzykiwanie danych
- Skrypty międzydomenowe (XSS)
- Skrypty międzyinterfejsowe (XAS)
- Wstrzykiwanie zapytań SQL
- Specjalne ciągi znaków w zapytaniach SQL
- SQLmap
- Wstrzykiwanie zapytań NoSQL
- Wstrzykiwanie poleceń systemu operacyjnego
- Podsumowanie
- Ćwiczenie 9. Wyłudzanie kuponów poprzez wstrzykiwanie zapytań NoSQL
IV. HAKOWANIE INTERFEJSÓW API W PRAKTYCE
- 13. OMIJANIE ZABEZPIECZEŃ I TESTOWANIE LIMITU ZAPYTAŃ
- Omijanie mechanizmów ochrony
- Jak funkcjonuje mechanizm ochrony?
- Wykrywanie mechanizmów ochrony
- Fikcyjne konta
- Techniki uników
- Omijanie zabezpieczeń za pomocą programu Burp Suite
- Omijanie zabezpieczeń za pomocą programu Wfuzz
- Testowanie limitu zapytań
- Przestrzeganie łagodnych limitów
- Modyfikacja ścieżki URL
- Fałszowanie nagłówka pochodzenia
- Rotacja adresów IP w Burp Suite
- Podsumowanie
- Omijanie mechanizmów ochrony
- 14. ATAKOWANIE INTERFEJSU GRAPHQL API
- Zapytania GraphQL i środowisko IDE
- Aktywny rekonesans aplikacji DVGA
- Skanowanie
- Badanie za pomocą przeglądarki
- Badanie za pomocą narzędzi DevTools
- Inżynieria odwrotna interfejsu GraphQL API
- Identyfikacja punktu końcowego metodą brutalnej siły
- Modyfikacja nagłówka w celu uzyskania dostępu do środowiska GraphiQL
- Inżynieria odwrotna interfejsu GraphQL API
- Inżynieria odwrotna interfejsu przy użyciu zapytania introspekcyjnego
- Analiza interfejsu GraphQL API
- Tworzenie zapytań za pomocą eksploratora dokumentacji
- Rozszerzenie InQL programu Burp Suite
- Zakłócanie i wstrzykiwanie poleceń
- Podsumowanie
- 15. WŁAMANIA DO INTERFEJSÓW API I POLOWANIA NA NAGRODYWłamania do interfejsów API i polowania na nagrody
- Włamania
- Peloton
- Poczta Stanów Zjednoczonych
- T-Mobile
- Polowania na nagrody
- Cena dobrego klucza API
- Błąd w procesie autoryzacji w prywatnym interfejsie API
- Starbucks - włamanie, którego nie było
- Podatność BOLA interfejsu GraphQL API w serwisie Instagram
- Podsumowanie
- Włamania
Zakończenie
A. Lista kontrolna hakera
B. Dodatkowe materiały
Skorowidz
Kategoria: | Informatyka |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-8322-409-1 |
Rozmiar pliku: | 14 MB |