OWASP Top 10

Publikowana przez fundację OWASP lista dziesięciu najpoważniejszych rodzajów zagrożeń aplikacji webowych, używana jako punkt odniesienia w bezpiecznym programowaniu i testach.

OWASP Top 10 to lista dziesięciu najpoważniejszych rodzajów zagrożeń bezpieczeństwa aplikacji webowych. Publikuje ją fundacja OWASP (Open Worldwide Application Security Project). Lista zbiera pokrewne słabości w dziesięć kategorii i układa je według tego, jak często występują i jak groźne są skutki. Każda kategoria jest powiązana z identyfikatorami CWE — czyli ze słownikiem typów błędów w oprogramowaniu. Dla programistów, pentesterów i audytorów to wspólny punkt odniesienia: od czego zacząć, żeby aplikacja była bezpieczna. Najnowsze wydania to OWASP Top 10:2021 oraz nowsza edycja OWASP Top 10:2025, ale to wersja z 2021 roku jest nadal najczęściej cytowana.

Czym jest OWASP?

OWASP to organizacja non-profit, działająca od 2001 roku i zajmująca się bezpieczeństwem oprogramowania. Prowadzi otwarte, darmowe projekty — między innymi samą listę Top 10, standard testów ASVS, zbiór praktycznych poradników OWASP Cheat Sheet Series oraz skaner OWASP ZAP. Tworzy je międzynarodowa społeczność badaczy, programistów i specjalistów od bezpieczeństwa aplikacji.

Warto zaznaczyć, czym Top 10 nie jest. To nie jest norma zgodności (compliance), którą trzeba spełnić, ani pełna lista wszystkich możliwych podatności. To dokument uświadamiający: pokazuje najczęstsze i najgroźniejsze typy błędów. Traktuj go jako minimum, od którego się zaczyna, a nie jako komplet testów do odhaczenia.

Jak powstaje lista OWASP Top 10?

Lista nie jest układana z głowy. Powstaje na podstawie realnych danych z testów oraz ankiety wśród specjalistów. W edycji 2021 wyglądało to tak:

  • Osiem z dziesięciu kategorii wybrano na podstawie zebranych danych, a dwie — na podstawie ankiety społeczności. Ankieta jest potrzebna, bo wyłapuje zagrożenia, których automatyczne skanery jeszcze nie wykrywają na dużą skalę.
  • Dane pochodziły z ponad 500 000 aplikacji przekazanych przez kilkanaście firm. Analiza objęła około 400 typów błędów (CWE) — dla porównania w 2017 roku było ich 30.
  • Do ułożenia kolejności użyto współczynnika występowania (incidence rate), czyli odsetka aplikacji, w których dana słabość pojawiła się choć raz. Liczy się więc, w ilu aplikacjach problem w ogóle wystąpił, a nie ile razy łącznie go zgłoszono. Dzięki temu masowo raportowane błędy (jak XSS) nie zaburzają obrazu.
  • Ocenę tego, jak łatwo wykorzystać błąd (exploitability) i jak groźne są jego skutki (impact), wyliczono ze znormalizowanych punktacji CVSS — standardowej skali oceny podatności.

OWASP odświeża listę co kilka lat (zwykle co 2-3 lata), żeby nadążać za nowymi technologiami i sposobami ataku.

Lista OWASP Top 10:2021 (A01-A10)

  1. A01:2021 – Broken Access Control (Złamana kontrola dostępu) — aplikacja źle pilnuje uprawnień, więc użytkownik może zrobić więcej, niż powinien. Przykładem jest sięgnięcie do cudzych danych przez podmianę identyfikatora w adresie (tzw. IDOR). Ta kategoria awansowała z piątego miejsca w 2017 r. na pierwsze.
  2. A02:2021 – Cryptographic Failures (Błędy kryptograficzne) — wcześniej nazywane „ujawnieniem danych wrażliwych”. Chodzi o brak szyfrowania albo jego błędne użycie, przez co wrażliwe dane wyciekają: słabe algorytmy, przesyłanie danych otwartym tekstem, źle przechowywane klucze.
  3. A03:2021 – Injection (Wstrzyknięcia) — aplikacja bierze dane od użytkownika i przez nieuwagę traktuje je jak własną komendę. Tak działają SQL/NoSQL injection czy wstrzyknięcie poleceń systemu. Do tej kategorii trafił też Cross-Site Scripting (XSS). Spadła z pierwszego na trzecie miejsce.
  4. A04:2021 – Insecure Design (Niebezpieczny projekt) — nowa kategoria. Dotyczy błędów w samym pomyśle na aplikację, jeszcze przed napisaniem kodu. Takich wad nie da się „załatać” poprawką — trzeba przemyśleć projekt od nowa (np. modelowanie zagrożeń).
  5. A05:2021 – Security Misconfiguration (Błędna konfiguracja zabezpieczeń) — domyślne hasła, włączone zbędne usługi, nadmiarowe uprawnienia, brak utwardzenia systemu. Wchłonęła dawną kategorię XXE (XML External Entities).
  6. A06:2021 – Vulnerable and Outdated Components (Podatne i nieaktualne komponenty) — używanie bibliotek i zależności ze znanymi dziurami. Wiąże się z badaniem składu oprogramowania (SCA) i pilnowaniem łańcucha dostaw.
  7. A07:2021 – Identification and Authentication Failures (Błędy uwierzytelniania) — wcześniej „Broken Authentication”. Słabe hasła, podatność na automatyczne podstawianie wykradzionych haseł (credential stuffing), błędy w obsłudze sesji, brak logowania dwuskładnikowego (MFA).
  8. A08:2021 – Software and Data Integrity Failures (Błędy integralności oprogramowania i danych) — nowa kategoria o łańcuchu dostaw i automatycznych potokach budowania (CI/CD). Chodzi o brak sprawdzania, czy aktualizacja lub zależność nie została po drodze podmieniona.
  9. A09:2021 – Security Logging and Monitoring Failures (Błędy rejestrowania i monitorowania) — aplikacja nie zapisuje zdarzeń albo nie alarmuje, więc atak przechodzi niezauważony, a po fakcie nie da się go zbadać.
  10. A10:2021 – Server-Side Request Forgery (SSRF) — nowa kategoria, najwyżej oceniona w ankiecie. Atakujący nakłania serwer, żeby ten sam pobrał zasób z podstawionego adresu. W ten sposób można sięgnąć do usług wewnętrznych albo do danych chmury, do których z zewnątrz nie ma dostępu.

Co zmieniło się względem OWASP Top 10:2017?

  • Trzy nowe kategorie: A04 Insecure Design, A08 Software and Data Integrity Failures oraz A10 Server-Side Request Forgery (SSRF).
  • Zmiany nazw i zakresu: A02 (dawne Sensitive Data Exposure → Cryptographic Failures) i A07 (dawne Broken Authentication → Identification and Authentication Failures).
  • Połączenie kategorii: XSS trafił do Injection (A03), a XXE do Security Misconfiguration (A05).
  • Nowa kolejność: Broken Access Control awansowało na A01, a Injection spadło na A03.

Czym OWASP Top 10 różni się od OWASP API Security Top 10?

OWASP Top 10 dotyczy aplikacji webowych w ogóle. Obok niej istnieje osobna lista OWASP API Security Top 10 (najnowsza edycja z 2023 roku), która skupia się wyłącznie na interfejsach API — czyli na tym, jak aplikacje rozmawiają ze sobą w tle. Listy częściowo się pokrywają (kontrola dostępu, błędna konfiguracja, SSRF), ale lista API kładzie nacisk na błędy w logice uprawnień i nadużycia procesów biznesowych, których zwykłe skanery słabo wychwytują. Kategorie z edycji 2023:

  • API1:2023 Broken Object Level Authorization (BOLA)
  • API2:2023 Broken Authentication
  • API3:2023 Broken Object Property Level Authorization
  • API4:2023 Unrestricted Resource Consumption
  • API5:2023 Broken Function Level Authorization
  • API6:2023 Unrestricted Access to Sensitive Business Flows
  • API7:2023 Server Side Request Forgery
  • API8:2023 Security Misconfiguration
  • API9:2023 Improper Inventory Management
  • API10:2023 Unsafe Consumption of APIs

Oprócz tych dwóch OWASP prowadzi też pokrewne listy — m.in. dla aplikacji mobilnych oraz dla aplikacji opartych na dużych modelach językowych (LLM).

Dlaczego OWASP Top 10 jest istotny dla monitorowania i wykrywania?

OWASP Top 10 opisuje błędy na poziomie kodu i konfiguracji. Ale wiele z nich zostawia ślady widoczne w ruchu sieciowym i logach. To sprawia, że lista jest przydatna nie tylko dla programistów, lecz także dla zespołów zajmujących się obroną sieci — SOC (centrum monitorowania bezpieczeństwa) czy NDR (wykrywanie zagrożeń w ruchu sieciowym):

  • A01/A07 (kontrola dostępu i uwierzytelnianie): nietypowe wzorce żądań, podstawianie kolejnych identyfikatorów (IDOR) czy nagłe serie nieudanych logowań są widoczne w logach aplikacji i w ruchu HTTP.
  • A03 (Injection): charakterystyczne dane w zapytaniach wychwytują zapory aplikacyjne (WAF) i analiza warstwy aplikacji. Bez logów (czyli bez A09) takie ataki bywają po fakcie niewidoczne.
  • A09 (rejestrowanie i monitorowanie): kategoria wprost o telemetrii. Słabe logowanie i brak alertów wydłużają czas, przez jaki atakujący pozostaje niezauważony, i utrudniają późniejsze śledztwo.
  • A10 (SSRF): objawia się dziwnym ruchem wychodzącym z serwera — do adresów wewnętrznych, do usługi metadanych chmury (np. 169.254.169.254) albo do nieoczekiwanych domen. To sygnał, który widać w monitoringu przepływów i zapytań DNS.
  • A06 (podatne komponenty): próby wykorzystania znanych dziur (CVE) zostawiają rozpoznawalne ślady skanowania. Zestawienie ich ze spisem używanych bibliotek przyspiesza reakcję.

Lista nie zastępuje pełnego programu bezpieczeństwa, ale daje programistom i obrońcom wspólny język: te same kategorie pomagają ustawić priorytety zarówno przy naprawie kodu, jak i przy regułach wykrywania w sieci.

Dowiedz się więcej