Nullify

Usługi

Testy penetracyjne Audyty bezpieczeństwa Bezpieczeństwo aplikacji Szkolenia dla firm Bezpłatny skan ekspozycji

Menu

Blog O nas Kontakt
Pentest / API

Testy penetracyjne API

API nie ma interfejsu, który ukryje błędy autoryzacji. Sprawdzamy każdy punkt końcowy tak, jakby atakujący znał go równie dobrze jak Wasi programiści.

ZakresREST, GraphQL, webhooki
Wycena wgliczby punktów końcowych i ról
Odpowiedźbezpłatna wycena w 24 h
Zakres

Co sprawdzamy

BOLA

Autoryzacja na poziomie obiektu

Podmiana identyfikatora w żądaniu i dostęp do cudzych zasobów. Najczęstsza podatność w API i zarazem najprostsza do wykorzystania.

FUNC

Autoryzacja na poziomie funkcji

Wywołanie operacji administracyjnych z konta zwykłego użytkownika. Punkty końcowe ukryte w interfejsie, ale dostępne bezpośrednio.

DATA

Nadmierna ekspozycja danych

Odpowiedzi zawierające więcej pól, niż potrzebuje klient - hasła w postaci skrótów, dane wewnętrzne, identyfikatory innych użytkowników.

MASS

Mass assignment

Przesłanie pola, którego formularz nie wysyła, na przykład roli albo statusu weryfikacji, i sprawdzenie, czy serwer je przyjmie.

RATE

Limitowanie żądań

Brak ograniczeń przy logowaniu, resecie hasła i operacjach kosztownych obliczeniowo. Skutki od przejęcia konta po rachunek za infrastrukturę.

AUTH

Tokeny i sesje

Walidacja podpisu, czas życia, unieważnianie, zakres uprawnień, obsługa tokenów odświeżających.

Kontekst

API nie ma interfejsu, za którym schowa się błąd

W aplikacji z interfejsem część błędów autoryzacji przez lata pozostaje niezauważona, bo nikt nie widzi przycisku prowadzącego do cudzych danych. API takiej osłony nie ma. Punkty końcowe są przewidywalne, a struktura odpowiedzi sama podpowiada, co jeszcze da się poprosić.

Najczęstsza i najgroźniejsza podatność to autoryzacja na poziomie obiektu. Żądanie o zasób numer 1042 działa poprawnie, żądanie o 1041 zwraca cudze dane. Serwer sprawdził, że jesteś zalogowany, ale nie sprawdził, czy ten konkretny zasób należy do Ciebie. Wykrycie tego wymaga dwóch kont i systematycznego przejścia przez wszystkie punkty końcowe.

Druga rodzina błędów bierze się z zaufania do klienta. Mass assignment, czyli przyjęcie pola, którego formularz nie wysyła - na przykład roli użytkownika albo statusu weryfikacji. Oraz nadmierna ekspozycja danych, gdy odpowiedź zawiera komplet pól z bazy, a aplikacja po prostu nie wyświetla części z nich.

Jeśli macie specyfikację OpenAPI albo kolekcję zapytań, prześlijcie ją przy wycenie. Skraca to test i obniża koszt, bo nie musimy odtwarzać listy punktów końcowych metodą prób.

Proces

Jak wygląda test

01

Ustalamy zakres

Definiujemy, co testujemy, w jakim trybie i w jakich godzinach. Doprecyzowujemy, co jest poza zakresem.

02

Podpisujemy NDA

Pełna poufność na każdym etapie. Znalezione podatności zostają między nami.

03

Przeprowadzamy testy

Testy manualne wsparte narzędziami. Krytyczne znaleziska zgłaszamy od razu, nie czekamy z nimi do raportu.

04

Raport i retest

Raport z oceną ryzyka, krokami reprodukcji i rekomendacjami. Po wdrożeniu poprawek sprawdzamy je ponownie.

FAQ

Najczęstsze pytania

Czy potrzebna jest dokumentacja API?

Bardzo pomaga i wpływa na cenę w dół. Specyfikacja OpenAPI albo kolekcja zapytań pozwala od razu przejść do testowania zamiast poświęcać czas na odtwarzanie listy punktów końcowych. Bez dokumentacji też pracujemy, tylko dłużej.

Testujecie GraphQL?

Tak. GraphQL wymaga innego podejścia niż REST - sprawdzamy między innymi introspekcję, zagnieżdżanie zapytań prowadzące do przeciążenia, autoryzację na poziomie pojedynczych pól i możliwość obejścia limitów przez aliasy.

Jak wyceniacie test API?

Głównie według liczby punktów końcowych i liczby ról. Dwadzieścia punktów końcowych z jedną rolą to inny nakład pracy niż osiemdziesiąt z czterema. Wystarczy nam dokumentacja albo przybliżone liczby, żeby podać widełki.

Czy API klienta mobilnego liczy się osobno?

Jeśli to ten sam backend, testujemy go raz. Zaznaczamy natomiast w raporcie, które znaleziska dotyczą ścieżki mobilnej, bo tam kontrola po stronie klienta praktycznie nie istnieje.

Sprawdź swoje API

Prześlij dokumentację albo opisz zakres - odpiszemy w 24 h z wyceną opartą na liczbie punktów końcowych.

Zapytaj o wycenę