EA - OWASP ASVS - Weryfikacja zgodności z OWASP API Security Top 10

 Interfejsy API stanowią jeden z najważniejszych elementów współczesnych aplikacji. Ich zabezpieczenie ma kluczowe znaczenie, ponieważ niekontrolowane podatności mogą prowadzić do wycieków danych, eskalacji uprawnień oraz ataków DDoS.

W ramach standardu OWASP Application Security Verification Standard (ASVS) znajdziemy konkretne wymagania dotyczące bezpieczeństwa API, które uzupełniają się z listą OWASP API Security Top 10. W tym artykule omówię najczęstsze zagrożenia, jak ich unikać oraz jak testować API pod kątem zgodności z OWASP ASVS.



OWASP API Security Top 10 – Najczęstsze zagrożenia dla API

Organizacja OWASP stworzyła API Security Top 10, czyli listę najczęściej występujących błędów związanych z bezpieczeństwem API. Poniżej przedstawiam kluczowe zagrożenia oraz sposoby ich eliminacji.

1. API1:2023 – Broken Object Level Authorization (BOLA)

🔴 Problem: Brak odpowiedniej kontroli dostępu do obiektów pozwala użytkownikom na odczytanie lub modyfikację zasobów innych użytkowników.
Jak się zabezpieczyć?

  • Weryfikuj autoryzację użytkownika dla każdego żądania.
  • Nie polegaj tylko na identyfikatorach przekazywanych w URL, ale sprawdzaj uprawnienia na poziomie serwera.

2. API2:2023 – Broken Authentication

🔴 Problem: Nieprawidłowe mechanizmy uwierzytelniania mogą prowadzić do przejęcia kont użytkowników.
Jak się zabezpieczyć?

  • Stosuj OAuth 2.0, OpenID Connect lub JWT z krótkim czasem życia tokena.
  • Zabezpieczaj hasła funkcją PBKDF2, bcrypt lub Argon2.
  • Wymuszaj wielopoziomową autoryzację (MFA).

3. API3:2023 – Broken Object Property Level Authorization

🔴 Problem: Aplikacja zwraca więcej danych niż powinna (np. dane poufne użytkownika).
Jak się zabezpieczyć?

  • W API zwracaj tylko te pola, które są niezbędne (technika whitelisting).
  • Filtruj odpowiedzi przed ich wysłaniem, aby ukryć wrażliwe dane.

4. API4:2023 – Unrestricted Resource Consumption

🔴 Problem: Brak ograniczeń na liczbę żądań API prowadzi do ataków DDoS i nadmiernego zużycia zasobów.
Jak się zabezpieczyć?

  • Wprowadź rate limiting i ograniczenia liczby jednoczesnych połączeń.
  • Stosuj mechanizmy cachingu i kompresji odpowiedzi.

5. API5:2023 – Broken Function Level Authorization

🔴 Problem: Brak weryfikacji uprawnień przy operacjach administracyjnych.
Jak się zabezpieczyć?

  • Wymagaj autoryzacji dla wszystkich endpointów administracyjnych.
  • Oddzielaj uprawnienia użytkowników (np. użytkownik vs. administrator).

6. API6:2023 – Unrestricted Access to Sensitive Business Flows

🔴 Problem: Brak zabezpieczeń w krytycznych procesach, np. resetowanie hasła.
Jak się zabezpieczyć?

  • Wprowadź dodatkowe potwierdzenie operacji (np. email lub SMS).
  • Loguj wszystkie operacje związane ze zmianami danych wrażliwych.

7. API7:2023 – Server Side Request Forgery (SSRF)

🔴 Problem: Aplikacja pozwala na wysyłanie żądań HTTP do wewnętrznych serwisów, co może prowadzić do wycieku danych.
Jak się zabezpieczyć?

  • Blokuj nieautoryzowane żądania wychodzące do zasobów wewnętrznych.
  • Używaj listy dozwolonych adresów IP (whitelist).

8. API8:2023 – Security Misconfiguration

🔴 Problem: Nieprawidłowe konfiguracje API mogą ujawniać wrażliwe dane i umożliwiać ataki.
Jak się zabezpieczyć?

  • Wyłączaj debugowanie w środowisku produkcyjnym.
  • Ukrywaj nagłówki serwera i wersję API.

9. API9:2023 – Improper Inventory Management

🔴 Problem: Brak kontroli nad wersjami API prowadzi do ataków na stare, nieaktualizowane endpointy.
Jak się zabezpieczyć?

  • Regularnie usuwaj nieużywane API.
  • Oznaczaj wersje API i wymuszaj migrację na najnowszą wersję.

10. API10:2023 – Unsafe Consumption of APIs

🔴 Problem: Brak walidacji odpowiedzi z zewnętrznych API może prowadzić do ataków (np. ataki XML Injection).
Jak się zabezpieczyć?

  • Waliduj odpowiedzi z API zewnętrznych.
  • Stosuj mechanizmy sanitizacji danych wejściowych.

Jak testować bezpieczeństwo API?

Testowanie API pod kątem zgodności z OWASP ASVS można zrealizować za pomocą różnych narzędzi:

OWASP ZAP – Dynamiczne testowanie API (DAST)

  • Można skanować API pod kątem podatności XSS, SQLi i innych ataków.
  • Wspiera testy REST i GraphQL.

zap-cli quick-scan -r -d -u https://api.mojaserwis.pl

Postman – Testowanie autoryzacji i odpowiedzi API

  • Możliwość ręcznego testowania nagłówków, tokenów JWT oraz metod HTTP.
  • Można pisać testy automatyczne w JavaScript.

pm.test("Sprawdź status odpowiedzi", function () { pm.response.to.have.status(200); });

Burp Suite – Ręczna analiza i ataki na API

  • Umożliwia przechwytywanie i modyfikację żądań API.
  • Może wykrywać błędy autoryzacji i podatności XSS.

Podsumowanie

🔹 Bezpieczeństwo API to jeden z najważniejszych aspektów współczesnych systemów – OWASP ASVS definiuje kluczowe wymagania dotyczące API.
🔹 Lista OWASP API Security Top 10 pomaga zrozumieć najczęstsze zagrożenia i sposoby ich eliminacji.
🔹 Testowanie API można zautomatyzować przy użyciu narzędzi takich jak OWASP ZAP, Postman i Burp Suite.
🔹 Regularne audyty bezpieczeństwa i monitoring API pozwalają unikać ataków i zwiększają odporność systemu.

Komentarze