O recenzentach
Shalom Onyibe to wizjoner specjalista z doświadczeniem z zakresu realizowania strategii oraz innowacji procesów. Jako doświadczony lider zespołów przez pierwsze cztery lata zajmował się bezpieczeństwem ofensywnym, a później przez ponad cztery lata koncentrował się na zagadnieniu cyberodporności. Współpracował z ekspertami branżowymi, przygotowując raporty dotyczące cyberbezpieczeństwa w Afryce, a także pełnił rolę mentora dla przyszłych specjalistów. Shalom pracuje na stanowisku dyrektora ds. bezpieczeństwa informacji w instytucji finansowej działającej w dwudziestu czterech krajach. Jest także uznanym prelegentem zabierającym głos na temat trendów w cyberbezpieczeństwie oraz strategii zwiększania odporności.
Shalom dąży do tego, aby w branży technologicznej doświadczać czystej radości z pracy w różnorodnych zespołach, uczestniczyć w tworzeniu przełomowych koncepcji, urzeczywistniać je, a także dbać o ich rozwój oraz wywieranie wpływu przez społeczność.
Chciałbym w tym miejscu podziękować moim mentorom, którzy poświęcają swój czas, aby tworzyć pozytywne efekty, które przetrwają pokolenia. To dla mnie wielki zaszczyt być częścią społeczności tej książki. Szczególne podziękowania kieruję do następujących osób: Max Musau, Confidence Staveley, Chrispus Kamau, Gabriel Mathenge, Ruth Efrain, Jade Thuo, dr Paula Musuva, prof. Patrick Wamuyu, Dalton Ndirangu, CYBER1, Kennedy Kariuki, Frans De Waal i Tom Mboya. Dziękuję także społeczności AfricaHackon oraz rodzinie Azuki Onyibe.
Gbolabo Awelewa to doświadczony lider w obszarze informatycznych systemów biznesowych oraz bezpieczeństwa w przedsiębiorstwach, osoba z niemal dwudziestoletnim doświadczeniem z zakresu projektowania i budowy bezpiecznych systemów i infrastruktury oraz zarządzania nimi. Jako strateg technologiczny i członek kadry zarządzającej wykorzystuje swoją wiedzę, aby tworzyć bardzo wydajne rozwiązania na potrzeby złożonych wyzwań biznesowych.
Obecnie pełni funkcję dyrektora ds. rozwiązań w innowacyjnej firmie technologicznej Cybervergent (wcześniej Infoprive), która zapewnia zautomatyzowane rozwiązania z zakresu cyberbezpieczeństwa i aktywnie tworzy atmosferę cyfrowego zaufania. Pracując dla start-upów z sektora technologii finansowych, międzynarodowych korporacji oraz instytucji finansowych, Gbolabo ma na swoim koncie sukcesy na różnych stanowiskach kierowniczych, w tym na stanowisku dyrektora ds. technologii, dyrektora ds. bezpieczeństwa informacji oraz architekta zabezpieczeń w przedsiębiorstwie. Z powodzeniem kierował efektywnymi programami bezpieczeństwa i zwiększał rentowność dzięki strategicznemu zarządzaniu technologią.
Gbolabo pasjonuje się też generatywną sztuczną inteligencją oraz infrastrukturą łańcuchów bloków, zwłaszcza w kontekście zastosowania ich do optymalizacji rozwiązań z zakresu bezpieczeństwa, co czyni go poważnym ekspertem w tych nowoczesnych dziedzinach. Posiada liczne certyfikaty branżowe, w tym C|CISO, CISM, CHFI, COBIT 5 oraz ISO 27001, ISO 22301 i ISO 20000 Lead Implementer. Ponadto może pochwalić się wykształceniem akademickim obejmującym tytuł licencjata w dziedzinie elektroniki i inżynierii komputerowej, tytuł MBA oraz ukończenie programu Harvard Executive Education z zakresu cyberbezpieczeństwa.
Chciałbym podziękować mojej rodzinie, a zwłaszcza mojej żonie Funmilayo, która rozumie, ile czasu i zaangażowania wymaga badanie i analizowanie ciągle ewoluującego świata cyberbezpieczeństwa. Szczególne podziękowania kieruję do zespołu Cybervergent (zwłaszcza Threat Intelligence & Reporting) za niesamowitą pracę nad budowaniem przyszłości cyfrowego zaufania. Dziękuję wszystkim za to, że sprawiacie, iż moja praca jest ekscytująca i pozwala mi dawać z siebie to, co najlepsze.
Deepanshu Khanna to uznany indyjski specjalista ds. obrony przed cyberatakami, którego osiągnięcia zostały docenione przez rząd Indii, Ministerstwo Spraw Wewnętrznych, departamenty policji oraz wiele innych instytucji, w tym uniwersytety, znane na całym świecie firmy z branży informatycznej, a także czasopisma i gazety. Swoją karierę rozpoczął od prezentacji podczas konferencji HATCon popularnego ataku na program rozruchowy GRUB. Wśród jego bardziej znanych badań w dziedzinie systemów wykrywania włamań i zaawansowanych środowisk wykrywania intruzów znalazły się praktyczne demonstracje kolizji w algorytmie MD5, przepełnienia bufora i wiele innych podatności. Wyniki jego badań zostały opublikowane w takich magazynach jak Pentestmag, Hackin9, eForensics, SD Journal oraz hacker5. Jako gość był zapraszany w roli prelegenta na liczne konferencje, w tym DEFCON, TOORCon, OWASP, HATCon i H1hackz, a także przez wiele uniwersytetów i instytuty. Niedawno Deepanshu został autorem książki Network Protocols for Security Professionals opublikowanej przez wydawnictwo Packt.
Słowo wstępne
Interfejs API (ang. Application Programming Interface) to szkielet nowoczesnej aplikacji. Bez względu na to, czy korzystasz z przeglądarki internetowej, z aplikacji mobilnej, czy być może z interaktywnej usługi opartej na sztucznej inteligencji, codziennie używasz interfejsów API. Odbywa się to na taką skalę, że cyberprzestępcy coraz częściej za cel swoich ataków obierają interfejsy, dostrzegając ich kluczową rolę w przepływie danych aplikacji oraz ich funkcjonalności. Poza tym interfejsy API stały się bramą do skarbu w postaci danych organizacji. Niezależnie od tego, czy jesteś projektantem, specjalistą ds. bezpieczeństwa, czy etycznym hakerem, książka ta powstała po to, by pomóc Ci zabezpieczyć Twoje interfejsy API i chronić dane Twojej organizacji.
Confidence Staveley to najwłaściwsza osoba do przekazania tej wiedzy światu. Każdy musi poznać jej punkt widzenia na oddziaływanie interfejsów API, a także na to, jak potencjalnie negatywny wpływ mogą one mieć na bezpieczeństwo i prywatność wszystkich naszych danych. Jeśli pomyślisz o dowolnym znacznym naruszenia zabezpieczeń z kilku ostatnich lat, to dojdziesz do wniosku, że w jakiś sposób było one powiązane z interfejsem API. Mam zaszczyt napisać niniejsze słowo wstępne dla tak błyskotliwej osoby, jaką jest Confidence. Jej głos w branży cyberbezpieczeństwa jest niezwykle donośny i reprezentuje ona następną generację specjalistów w tej dziedzinie.
Bezpieczeństwo API w praktyce to więcej niż tylko tytuł. Książka ta stanowi dogłębne spojrzenie na kwestię bezpieczeństwa interfejsów API. Zaprezentowano w niej praktyczne podejście do procesu nauki, stawiając na ćwiczenia, które prowadzą czytelników przez testowanie interfejsów API, identyfikowanie podatności oraz stosowanie poprawek. Dzięki skupieniu uwagi na rzeczywistych scenariuszach czytelnicy zdobywają bezcenne doświadczenie w obchodzeniu elementów kontroli uwierzytelniania, omijaniu elementów kontroli autoryzacji oraz identyfikowaniu typowych podatności za pomocą narzędzi open source i komercyjnych.
Naprawdę doceniam staranność, z jaką Confidence pokazuje, jak możesz naruszyć zabezpieczenia swoich interfejsów API. Ponadto książka ta zawiera wytyczne, jak od początku właściwie projektować bezpieczne interfejsy API i modelować dla nich zagrożenia. Dzięki zdobyciu wiedzy na temat bezpieczeństwa interfejsów API, którą dysponują osoby dokonujące włamań oraz członkowie zespołów naśladujących działania atakujących, przygotujesz się lepiej do implementowania elementów kontroli zabezpieczeń chroniących Twoje interfejsy API, a ostatecznie dane Twoich klientów.
Moja rada na koniec jest taka, żeby dokładnie przestudiować tę książkę, pozyskać jak najwięcej wiedzy i doświadczenia z przykładów, a następnie wykorzystać to do zabezpieczenia swoich interfejsów API, zarówno tych nowo projektowanych, jak i starszych, które wymagają pewnych poprawek. Wykorzystuj praktycznie zdobytą wiedzę i chroń wszystkie swoje interfejsy API!
Christopher Romeo
Prezes firmy Devici oraz partner generalny w firmie Kerr Ventures
Przedmowa
Interfejsy API (ang. Application Programming Interface) są siłą napędową innowacji w dziedzinie oprogramowania. Umożliwiają bezproblemową komunikację i wymianę danych między różnymi aplikacjami, usługami i systemami. Taka wzajemna łączność sprawia też jednak, że interfejsy API stają się atrakcyjnym celem dla hakerów, którzy chcą wykorzystać ich słabe punkty oraz wyrządzić szkody zarówno systemom, jak i użytkownikom.
Niedawne globalne badanie liderów przedsiębiorstw przeprowadzone przez firmę RapidAPI (https://rapidapi.com/report/state-of-enterprise-apis/) wykazało ważną rolę interfejsów API w nowoczesnych strategiach biznesowych. Zdecydowana większość respondentów (97%) potwierdziła, że dobrze zdefiniowana strategia w zakresie interfejsów API jest niezbędna do zapewnienia wzrostu i rentowności. To rosnące uznanie doprowadziło do gwałtownego wzrostu zastosowania interfejsów, tak że obecnie wiele organizacji polega na setkach lub nawet tysiącach interfejsów API, wykorzystując je do zasilania swoich technologii, ulepszania produktów i wykorzystywania danych z różnych źródeł.
Mając to na uwadze, autorka niniejszej książki stworzyła kompleksowy przewodnik po zagadnieniach związanych z rozumieniem, oceną i procesem zwiększania bezpieczeństwa interfejsów API w tym obszarze cechującym się tak wysoką stawką. Książka jest przeznaczona dla specjalistów ds. bezpieczeństwa, osób wykonujących testy penetracyjne, projektantów oraz wszystkich tych, którzy chcą chronić interfejsy API przed polimorficzną naturą zagrożeń. Poznając sposób myślenia atakujących i stosując omówione w książce techniki, możesz proaktywnie znajdować i eliminować podatności, zanim zostaną one wykorzystane.
Aby osiągnąć cele przedstawione w książce, będę opierać się na syntezie następujących źródeł informacji:
Najnowsze badania i publikacje dotyczące bezpieczeństwa interfejsów API. Moje osobiste doświadczenie z pracy z interfejsami API w różnych sytuacjach. Analiza różnych
taktyk,
technik i
procedur stosowanych przez atakujących. Powiązane standardy i struktury branżowe, takie jak zestawienie
API Security Top 10 organizacji
OWASP (ang.
Open Web Application Security Project). Wnioski i doświadczenia innych wiodących ekspertów i specjalistów ds. bezpieczeństwa interfejsów API.
Dla kogo przeznaczona jest ta książka?
Książka jest przeznaczona dla zróżnicowanego grona osób i zespołów zaangażowanych w bezpieczeństwo interfejsów API lub zainteresowanych tym obszarem. Należą do nich:
Specjaliści ds. bezpieczeństwa i osoby wykonujące testy penetracyjne. Doświadczeni profesjonaliści znajdą w tej książce nieocenione źródło wiedzy, które pomoże im poszerzyć zestaw swoich umiejętności i być na bieżąco z zagrożeniami dotyczącymi interfejsów API. Książka oferuje zaawansowane techniki i strategie pozwalające skutecznie identyfikować oraz minimalizować podatności interfejsów API.
Etyczni hakerzy i osoby zajmujące się wykrywaniem błędów. Osoby, które lubią wyszukiwać i odpowiedzialnie ujawniać luki w zabezpieczeniach, znajdą w książce różne techniki identyfikowania i wykorzystywania podatności interfejsów API. Dzięki temu będą mogły przyczynić się do zwiększenia stopnia ich bezpieczeństwa, rozwijając jednocześnie swoją karierę.
Projektanci interfejsów API i inżynierowie oprogramowania. Zrozumienie zagrożeń związanych z projektowaniem i implementowaniem interfejsów API pozwala projektantom tworzyć je bardziej bezpieczne w aktywny sposób. Książka zawiera praktyczne wskazówki dotyczące stosowania najlepszych praktyk bezpieczeństwa na każdym etapie cyklu projektowego interfejsu API.
Entuzjaści zabezpieczeń i studenci. Każdy, kto pasjonuje się cyberbezpieczeństwem i chce dowiedzieć się więcej na temat zabezpieczeń interfejsów API, znajdzie tutaj informacje przedstawione w przystępny sposób. Książka zawiera solidne fundamenty w postaci zagadnień z zakresu bezpieczeństwa interfejsów API, a także zapewnia zdobycie praktycznych umiejętności, które można wykorzystać w rzeczywistych scenariuszach.
Zespoły ds. bezpieczeństwa i menedżerowie. Książka jest kompleksowym źródłem informacji, które pomoże zespołom ds. bezpieczeństwa ocenić i wzmocnić poziom bezpieczeństwa interfejsów API w organizacji. W książce zamieszczono wytyczne dotyczące implementowania skutecznych środków bezpieczeństwa, przeprowadzania dokładnych testów oraz zarządzania ryzykiem związanym z interfejsami API.
Zawartość książki
Rozdział 1. "Wprowadzenie do architektury i zabezpieczeń interfejsów API". Rozdział zapewnia solidne podstawy, przedstawiając podstawową architekturę interfejsów API, ich główne komponenty oraz wspierające je kluczowe zasady bezpieczeństwa.
Rozdział 2. "Ewolucja krajobrazu zagrożeń dotyczących interfejsów API i kwestie bezpieczeństwa". W rozdziale zaprezentowano historię interfejsów API, obecne oraz przyszłe zagrożenia związane z ich bezpieczeństwem, a także przybliżono, co może mieć miejsce w przyszłości. Dowiesz się z niego, jak badając rzeczywiste przypadki, analizować i identyfikować typowe podatności interfejsów API.
Rozdział 3. "Objaśnienie 10 największych zagrożeń dotyczących bezpieczeństwa interfejsów API (według organizacji OWASP)". W rozdziale omówiono kluczowe podatności zidentyfikowane przez organizację OWASP, wyjaśniono, w jaki sposób są one wykorzystywane do ataku, oraz przedstawiono skuteczne metody ich minimalizowania.
Rozdział 4. "Strategie i taktyki ataków dotyczących interfejsów API". W rozdziale dokonano przeglądu umiejętności i narzędzi wykorzystywanych w testach interfejsów API oraz atakach na nie. Nauczysz się przygotowywać wirtualne laboratorium, które pozwoli zdobywać i poszerzać wiedzę z zakresu bezpieczeństwa interfejsów API. Rozdział zawiera także przewodnik przeprowadzający krok po kroku po procesie instalacji kluczowych narzędzi do sprawdzania zabezpieczeń interfejsów API.
Rozdział 5. "Wykorzystanie luk w interfejsach API". W rozdziale dokonano dogłębnej analizy sposobów wykorzystania podatności interfejsów API. Dowiesz się, jak przeprowadzać ataki z wstrzykiwaniem kodu oraz wykorzystywać różne luki związane z uwierzytelnianiem i autoryzacją. Dodatkowo omówiono dokładniej wektory ataków dotyczących interfejsów API.
Rozdział 6., "Omijanie elementów kontroli uwierzytelniania i autoryzacji interfejsów API". Rozdział wprowadza do zagadnienia elementów kontroli uwierzytelniania i autoryzacji API. Zawiera też szczegółowy opis różnych technik umożliwiających ominięcie tych elementów wraz z praktycznym przewodnikiem z kolejnymi krokami, który ma ułatwić opanowanie każdej metody.
Rozdział 7. "Ataki oparte na technikach weryfikacji danych wejściowych oraz szyfrowania w interfejsach API". W rozdziale dokonano przeglądu elementów kontrolnych weryfikacji danych wejściowych interfejsów API, a także mechanizmów szyfrowania i odszyfrowywania. Dowiesz się, dlaczego ważne są te środki bezpieczeństwa, a także poznasz praktyczne wytyczne opisujące krok po kroku ich obchodzenie.
Rozdział 8. "Testy penetracyjne i ocena podatności interfejsów API". Rozdział zawiera obszerne wprowadzenie do ocen podatności interfejsów API oraz przeprowadzania testów penetracyjnych. Zamieszczono w nim praktyczny przewodnik omawiający krok po kroku różne etapy i techniki związane z oceną podatności interfejsów oraz wykonywaniem testów penetracyjnych. Dodatkowo zaznajomisz się z tym, co wolno, a czego nie wolno robić podczas sporządzania raportów, a także poznasz skuteczne strategie minimalizowania różnych podatności.
Rozdział 9. "Zaawansowane testowanie interfejsów API: metody, narzędzia i środowiska". Rozdział pomaga w zaznajomieniu się z nowoczesnymi podejściami, narzędziami oraz środowiskami wykorzystywanymi do dogłębnej analizy interfejsów API, co pozwala zapewnić najwyższy możliwy poziom bezpieczeństwa.
Rozdział 10. "Wykorzystanie technik obchodzenia". Rozdział ułatwia zrozumienie metod stosowanych przez atakujących w celu ominięcia elementów kontroli bezpieczeństwa i mechanizmów wykrywania, a także pozwala dowiedzieć się, jak przeciwdziałać tym metodom.
Rozdział 11. "Najlepsze praktyki dotyczące projektowania i implementacji bezpiecznych interfejsów API". W rozdziale wyjaśniono, jak tworzyć architekturę bezpiecznych interfejsów API, stosując podejście zaawansowanej obrony. Przedstawiono też sposoby integracji silnych środków bezpieczeństwa na każdym etapie cyklu użytkowania interfejsów API, począwszy od projektu i tworzenia, a skończywszy na wdrażaniu i utrzymaniu.
Rozdział 12. "Wyzwania i rozważania dotyczące zabezpieczeń interfejsów API w dużych przedsiębiorstwach". W rozdziale przeanalizowano problemy związane z bezpieczeństwem interfejsów API pojawiające się w złożonych środowiskach korporacyjnych o dużej skali, w których interfejsy odgrywają kluczową rolę w operacjach biznesowych.
Rozdział 13. "Wprowadzanie inicjatyw związanych ze skutecznym nadzorem nad interfejsami API oraz z zarządzaniem ryzykiem". W rozdziale omówiono proaktywne strategie implementowania efektywnego nadzoru nad interfejsami API oraz inicjatyw związanych z zarządzaniem ryzykiem, co zapewnia stałe bezpieczeństwo i integralność ekosystemu interfejsów API organizacji.
Jak najlepiej korzystać z książki?
Aby w pełni skorzystać z treści książki, warto posiadać podstawową wiedzę z zakresu określonych zagadnień technicznych, a także być zaznajomionym z różnymi technologiami. Obejmuje to protokoły HTTP i HTTPS, interfejsy API REST i SOAP, formaty danych JSON i XML, protokół OAuth i klucze interfejsów API, fundamenty bezpieczeństwa sieciowego, typowe luki w zabezpieczeniach, podstawy programowania (zwłaszcza z użyciem takich języków jak Python, JavaScript lub Java), a także systemy kontroli wersji (na przykład Git). Ponadto doświadczenie związane z określonymi narzędziami znacząco zwiększy możliwości przyswojenia materiału i skutecznego zastosowania omówionych technik. W poniższej tabeli zebrano kluczowe narzędzia, które należy znać. Wiele z nich jest domyślnie instalowanych w systemie Kali Linux.
Oprogramowanie/sprzęt omówiony w książce
Wymagany system operacyjny
Postman
Windows, macOS lub Linux
Burp Suite
Windows, macOS lub Linux
Applitools
Windows, macOS lub Linux
Przeglądarka internetowa (Chrome/Firefox)
Windows, macOS lub Linux
Gatling
Windows, macOS lub Linux
American Fuzzy Lop
Windows, macOS lub Linux
Arjun
Linux
Amass
Linux
Metasploit
Windows, macOS lub Linux
Kiterunner
Linux
Faster You Fool
Linux
FoxyProxy
Linux
Steghide
Linux
Elasticsearch
Windows, macOS lub Linux
Kibana
Windows, macOS lub Linux
Elastic SIEM
Windows, macOS lub Linux
OWASP ZAP
Windows, macOS lub Linux
Nessus
Windows, macOS lub Linux
ModSecurity
Linux
Splunk
Windows, macOS lub Linux
Konkretne wymagania oraz narzędzia wyszczególniono w podrozdziale "Wymagania techniczne" większości rozdziałów. Dzięki temu zawsze będziesz dysponował niezbędnymi narzędziami oraz wiedzą, aby spełnić oczekiwania określone w danym rozdziale.
Pobieranie plików z przykładowym kodem
Pliki z przykładowym kodem dołączone do książki są dostępne do pobrania pod następującym adresem: https://github.com/PacktPublishing/API-Security-for-White-Hat-Hackers/blob/main/BreachMe-API.
Zastrzeżenie
Informacje zawarte w tej książce są przeznaczone wyłącznie do wykorzystania w etyczny sposób. Nie używaj żadnych informacji z książki, jeśli nie posiadasz pisemnej zgody właściciela sprzętu. Jeśli podejmiesz nielegalne działania, możesz zostać aresztowany i postawiony przed sądem z pełnymi konsekwencjami prawnymi. Wydawnictwo nie ponosi żadnej odpowiedzialności za niewłaściwe wykorzystanie jakichkolwiek informacji znajdujących się w książce. Zawarte w niej informacje mogą zostać użyte wyłącznie w środowiskach testowych po uzyskaniu pisemnej zgody odpowiednich osób z zakresem odpowiedzialności.
Konwencje
W książce użyto kilku konwencji dotyczących tekstu.
Kod podany w tekście, nazwy tabel bazy danych, dane wprowadzane przez użytkownika, ścieżki, fikcyjne adresy URL oraz odnośniki do serwisu Twitter są wyróżniane jak w następującym zdaniu: "Po wykonaniu instrukcji konfiguracyjnych dostępnych w repozytorium książki w serwisie GitHub oraz uruchomieniu interfejsu API można uzyskać dostęp do interfejsu interaktywnej specyfikacji narzędzia Swagger zlokalizowanej pod adresem http://localhost:8888/docs". Nazwy folderów oraz nazwy i rozszerzenia plików są prezentowane jak w następującym zdaniu: "Specyfikacja OpenAPI jest dostępna w katalogu demo_server jako plik swagger.json".
Blok kodu ma następującą postać:
{
"userId": 123,
"username": "jan_doe",
"email": "jan.doe@przyklad.com"
}
Aby zwrócić uwagę na konkretną część bloku kodu, odpowiednie wiersze lub elementy są pogrubione:
{
"error": "Nie znaleziono zasobu.",
"message": "Zasób 'api/v1/products/123' nie istnieje."
}
Dowolne dane wejściowe lub wyjściowe podane w wierszu poleceń są prezentowane w następujący sposób:
sudo apt-get install git
sudo apt-get install python3
sudo apt-get install golang
Nowe terminy lub ważne słowa widoczne na ekranie pogrubiono. Oto przykładowe zdanie: "Atakujący mogą też posłużyć się atakami MITM w celu sprawdzenia istnienia luk w interfejsach API, takich jak naruszona autoryzacja na poziomie obiektu".
Wskazówki lub istotne uwagi
Mają taką postać.