- Pobierz link
- X
- Inne aplikacje
- Pobierz link
- X
- Inne aplikacje
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.
- Pobierz link
- X
- Inne aplikacje
Komentarze
Prześlij komentarz