Bezpieczeństwo API: OWASP API Top 10 w praktyce
API to dziś najczęstszy cel ataków na aplikacje. Omawiamy najważniejsze klasy podatności z OWASP API Top 10 — z BOLA na czele — i jak ich unikać.
Aplikacje webowe i mobilne komunikują się dziś głównie przez API. To przesunęło środek ciężkości ataków: coraz rzadziej łamie się „stronę”, coraz częściej — interfejs, który ją zasila. Organizacja OWASP prowadzi osobne zestawienie API Security Top 10, bo API mają własną, specyficzną klasę błędów. Oto te, które w testach spotykamy najczęściej.
BOLA — najgroźniejsza i najczęstsza
Na szczycie listy stoi Broken Object Level Authorization (BOLA), znane też jako IDOR. Rzecz w tym, że API poprawnie uwierzytelnia użytkownika, ale nie sprawdza, czy dany obiekt należy do niego. Klasyczny przykład: żądanie GET /api/invoices/1043 zwraca fakturę, a zmiana numeru na 1044 zwraca cudzą — bo backend ufa identyfikatorowi z żądania.
Obrona: autoryzacja na poziomie każdego obiektu, po stronie serwera, dla każdego żądania. Nigdy nie zakładaj, że skoro użytkownik jest zalogowany, ma prawo do zasobu o podanym ID.
Broken authentication i nadmiar danych
- Błędne uwierzytelnianie — słabe mechanizmy tokenów, brak limitów prób, źle zwalidowane JWT. API bywa „tylnymi drzwiami” pomijającymi kontrole obecne w interfejsie webowym.
- Nadmierne ujawnianie danych — endpoint zwraca cały obiekt, a front pokazuje tylko część. Atakujący czyta surową odpowiedź i dostaje pola, których nie powinien widzieć (hasła, role, dane wewnętrzne). Filtruj dane po stronie serwera, nie w kliencie.
Brak limitów i błędna autoryzacja funkcji
- Brak rate limitingu (Unrestricted Resource Consumption) — API bez limitów zaproszeń umożliwia enumerację, brute force i kosztowne nadużycia. Ogranicz tempo i wielkość żądań.
- Broken Function Level Authorization — użytkownik zwykły wywołuje endpoint administracyjny, bo autoryzacja funkcji jest niespójna. Uprawnienia egzekwuj centralnie i domyślnie odmawiaj.
Jak podchodzić do bezpieczeństwa API
- Autoryzacja przy każdym żądaniu i każdym obiekcie — to fundament, nie dodatek.
- Pełna inwentaryzacja endpointów, w tym starych wersji i „shadow API” — nie ochronisz tego, o czym nie wiesz.
- Walidacja wejścia i ścisłe schematy odpowiedzi (zwracaj tylko to, co potrzebne).
- Logowanie i monitoring anomalii — nietypowa enumeracja identyfikatorów to sygnał ataku.
API to często najkrótsza droga do danych — dlatego testujemy je tak samo skrupulatnie jak resztę aplikacji. To również miejsce, gdzie łączą się wątki z priorytetyzacji podatności: liczy się kontekst i ekspozycja. Jeśli chcesz sprawdzić bezpieczeństwo swojego API, umów test.
Źródła i dalsza lektura: OWASP API Security Top 10.