Co to jest OWASP Top 10?
Definicja OWASP Top 10
OWASP Top 10 to regularnie aktualizowany raport publikowany przez międzynarodową organizację non-profit OWASP (Open Web Application Security Project), która zajmuje się poprawą bezpieczeństwa oprogramowania. Raport ten stanowi listę dziesięciu najkrytyczniejszych i najbardziej rozpowszechnionych zagrożeń bezpieczeństwa dla aplikacji webowych, opartą na szerokim konsensusie ekspertów ds. bezpieczeństwa z całego świata oraz analizie danych dotyczących rzeczywistych ataków i podatności.
OWASP Top 10 jest de facto standardem branżowym w dziedzinie bezpieczeństwa aplikacji webowych, uznawanym przez regulatorów, audytorów i organizacje na całym świecie. Jest cytowany w standardach takich jak PCI DSS, NIST, ISO 27001 i wielu regulacjach branżowych.
Cel i znaczenie listy
Głównym celem publikacji OWASP Top 10 jest podnoszenie świadomości na temat najpoważniejszych ryzyk związanych z bezpieczeństwem aplikacji webowych wśród deweloperów, architektów, menedżerów i specjalistów ds. bezpieczeństwa. Lista ta pełni kilka kluczowych funkcji:
- Punkt odniesienia — stanowi uznany standard wskazujący, na których zagrożeniach organizacje powinny się koncentrować
- Narzędzie edukacyjne — podstawa do szkoleń z bezpiecznego programowania
- Fundament standardów — baza do tworzenia standardów bezpiecznego kodowania i programów testowania bezpieczeństwa
- Kryterium audytowe — wykorzystywana przez audytorów i regulatorów do oceny dojrzałości bezpieczeństwa organizacji
- Wspólny język — zapewnia jednolite nazewnictwo zagrożeń, ułatwiając komunikację między zespołami
Regularne aktualizacje
Lista OWASP Top 10 nie jest statyczna — jest aktualizowana co kilka lat, aby odzwierciedlać zmieniający się krajobraz zagrożeń. Historia aktualizacji:
| Rok | Kluczowe zmiany |
|---|---|
| 2004 | Pierwsza oficjalna publikacja |
| 2007 | Cross-Site Forgery (CSRF) dodane |
| 2010 | Reorganizacja kategorii |
| 2013 | Uwzględnienie API |
| 2017 | XXE, Insecure Deserialization jako nowe kategorie |
| 2021 | Insecure Design, SSRF jako nowe; reorganizacja istniejących |
Proces aktualizacji opiera się na analizie danych z setek tysięcy aplikacji, ankietach ekspertów i konsultacjach ze społecznością bezpieczeństwa.
Kategorie zagrożeń OWASP Top 10 (wersja 2021)
A01:2021 — Broken Access Control (Błędna kontrola dostępu)
Pozycja: awansowała z #5 na #1, co odzwierciedla rosnącą skalę problemu.
Błędna kontrola dostępu oznacza, że aplikacja nie wymusza prawidłowo ograniczeń dotyczących tego, co uwierzytelnieni użytkownicy mogą robić. Atakujący mogą:
- Uzyskać dostęp do zasobów innych użytkowników (IDOR — Insecure Direct Object Reference)
- Eskalować uprawnienia (np. z użytkownika na administratora)
- Obejść mechanizmy autoryzacji przez manipulację URL, parametrów lub tokenów
Obrona: zasada najmniejszych uprawnień, mechanizmy RBAC/ABAC, weryfikacja autoryzacji na serwerze, automatyczne testy kontroli dostępu.
A02:2021 — Cryptographic Failures (Błędy kryptograficzne)
Wcześniej znane jako „Sensitive Data Exposure”. Obejmuje słabości w stosowaniu kryptografii:
- Przesyłanie danych bez szyfrowania (HTTP zamiast HTTPS)
- Używanie słabych algorytmów (MD5, SHA-1, DES)
- Nieprawidłowe zarządzanie kluczami kryptograficznymi
- Przechowywanie haseł w postaci jawnej lub ze słabym hashowaniem
Obrona: TLS 1.3 dla danych w tranzycie, AES-256 dla danych w spoczynku, bcrypt/Argon2 dla haseł, regularna rotacja kluczy.
A03:2021 — Injection (Wstrzykiwanie kodu)
Jedna z najstarszych i wciąż groźnych kategorii zagrożeń:
- SQL Injection — wstrzykiwanie złośliwych zapytań SQL
- NoSQL Injection — analogiczny atak na bazy NoSQL
- Command Injection — wykonywanie poleceń systemowych
- LDAP Injection — manipulacja zapytaniami katalogowymi
- XSS (Cross-Site Scripting) — przeniesione do tej kategorii w 2021
Obrona: parametryzowane zapytania (prepared statements), walidacja i sanityzacja danych wejściowych, ORM, Content Security Policy (CSP).
A04:2021 — Insecure Design (Niebezpieczny projekt)
Nowa kategoria w 2021. Dotyczy fundamentalnych wad w architekturze i projektowaniu aplikacji, które nie mogą być naprawione przez doskonałą implementację:
- Brak modelowania zagrożeń (threat modeling)
- Niewystarczające kontrole bezpieczeństwa na etapie projektowania
- Brak zasady „defense in depth”
- Niedostateczna walidacja logiki biznesowej
Obrona: threat modeling (STRIDE, DREAD), Secure SDLC, design patterns bezpieczeństwa, przeglądy architektoniczne.
A05:2021 — Security Misconfiguration (Błędna konfiguracja bezpieczeństwa)
Jedna z najczęstszych przyczyn włamań — niewłaściwa konfiguracja komponentów:
- Domyślne hasła i konfiguracje
- Otwarte usługi chmurowe (publiczne S3 buckety)
- Zbyt szczegółowe komunikaty błędów
- Niepotrzebne funkcje i usługi włączone
- Brakujące nagłówki bezpieczeństwa
Obrona: hardening, automatyczna walidacja konfiguracji (IaC scanning), minimalna instalacja, regularne przeglądy.
A06:2021 — Vulnerable and Outdated Components (Podatne i przestarzałe komponenty)
Dotyczy używania bibliotek, frameworków i innych komponentów z znanymi podatnościami:
- Średnia aplikacja webowa zawiera 70–80% kodu z bibliotek zewnętrznych
- Wiele organizacji nie śledzi wersji używanych komponentów
- Log4Shell (CVE-2021-44228) to głośny przykład — podatność w Log4j dotknęła miliony aplikacji
Obrona: SCA (Software Composition Analysis), SBOM (Software Bill of Materials), automatyczne aktualizacje zależności, monitoring CVE.
A07:2021 — Identification and Authentication Failures (Błędy identyfikacji i uwierzytelniania)
Wcześniej „Broken Authentication”:
- Słabe mechanizmy uwierzytelniania (brak MFA)
- Akceptowanie słabych haseł
- Podatności w mechanizmach odzyskiwania hasła
- Niewłaściwe zarządzanie sesjami (Session Fixation, Session Hijacking)
Obrona: MFA (Multi-Factor Authentication), silne polityki haseł, bezpieczne zarządzanie sesjami, rate limiting.
A08:2021 — Software and Data Integrity Failures (Błędy integralności oprogramowania i danych)
Nowa kategoria w 2021. Obejmuje:
- Insecure Deserialization (przeniesione z osobnej kategorii w 2017)
- Ataki na łańcuch dostaw oprogramowania (supply chain attacks, np. SolarWinds)
- Brak weryfikacji integralności aktualizacji i danych
Obrona: podpisy cyfrowe, weryfikacja hash sum, bezpieczne pipelines CI/CD, SRI (Subresource Integrity).
A09:2021 — Security Logging and Monitoring Failures (Błędy logowania i monitorowania bezpieczeństwa)
Bez odpowiedniego logowania i monitorowania organizacja nie jest w stanie wykryć ataku:
- Brak logowania zdarzeń bezpieczeństwa (logowania, błędy autoryzacji, anomalie)
- Logi niecentralizowane i niemonitorowane
- Brak alertów na podejrzane aktywności
- Niewystarczające testy incident response
Obrona: centralizowane logowanie (ELK, Splunk), SIEM, alerty na anomalie, regularne testy IR, retencja logów zgodna z regulacjami.
A10:2021 — Server-Side Request Forgery (SSRF)
Nowa kategoria w 2021. SSRF pozwala atakującemu wymusić na serwerze wykonanie żądań HTTP do dowolnych celów:
- Dostęp do wewnętrznych usług (metadata AWS: 169.254.169.254)
- Skanowanie sieci wewnętrznej
- Odczytywanie plików lokalnych
- Ataki na inne wewnętrzne systemy
Obrona: walidacja i whitelist URL-i, segmentacja sieci, blokowanie dostępu do metadata, Web Application Firewall (WAF).
Narzędzia do wykrywania zagrożeń OWASP Top 10
SAST (Static Application Security Testing)
Analiza kodu źródłowego bez uruchamiania aplikacji:
- SonarQube — open-source, szeroki zakres języków
- Checkmarx — enterprise SAST z AI
- Semgrep — lekki, open-source, konfigurowalny
- Snyk Code — real-time analiza w IDE
DAST (Dynamic Application Security Testing)
Testowanie działającej aplikacji:
- OWASP ZAP — darmowe, open-source narzędzie OWASP
- Burp Suite — standard branżowy dla pentesterów
- Nuclei — open-source skaner z szablonami community
- Acunetix — komercyjny skaner webowy
SCA (Software Composition Analysis)
Analiza zależności i bibliotek:
- Snyk — lider rynku, integracja z CI/CD
- Dependabot (GitHub) — automatyczne PR-y z aktualizacjami
- OWASP Dependency-Check — darmowe narzędzie OWASP
- Trivy — skaner kontenerów i zależności
Jak wykorzystać OWASP Top 10 w praktyce
Szkolenia deweloperów
- Zapoznawanie zespołów z zagrożeniami z listy i bezpiecznymi praktykami kodowania
- Warsztaty hands-on z wykorzystaniem OWASP WebGoat (celowo podatna aplikacja do nauki)
- Certyfikacje: CSSLP (ISC²), Secure Coding (SANS)
- Regularne aktualizacje wiedzy przy każdej nowej wersji listy
Włączenie do SDLC (Secure Development Lifecycle)
- Faza projektowania — threat modeling uwzględniający zagrożenia z listy
- Faza kodowania — standardy bezpiecznego kodowania oparte na OWASP
- Code review — checklist bezpieczeństwa bazujący na Top 10
- Testowanie — scenariusze testów bezpieczeństwa dla każdej kategorii
- Deploy — automatyczne skanowanie SAST/DAST w pipeline CI/CD
Program bezpieczeństwa aplikacji
OWASP Top 10 powinno być punktem wyjścia, nie celem samym w sobie. Dojrzały program bezpieczeństwa obejmuje:
- OWASP Top 10 — jako minimum i punkt startowy
- OWASP ASVS (Application Security Verification Standard) — kompletny standard weryfikacji (286 kontroli)
- OWASP SAMM (Software Assurance Maturity Model) — model dojrzałości bezpieczeństwa
- Threat Modeling — systematyczna identyfikacja zagrożeń specyficznych dla aplikacji
- Bug Bounty — programy nagród za znalezione podatności
OWASP Top 10 w kontekście IT staff augmentation
Bezpieczeństwo aplikacji generuje rosnące zapotrzebowanie na specjalistów:
- Security Engineers — implementacja kontroli bezpieczeństwa w kodzie
- Pentesterzy — testowanie aplikacji pod kątem podatności
- Security Architects — projektowanie bezpiecznych architektur
- DevSecOps Engineers — integracja bezpieczeństwa z pipeline CI/CD
- Security Champions — deweloperzy z dodatkową wiedzą bezpieczeństwa, działający jako ambasadorzy w zespołach
W modelu staff augmentation organizacje mogą szybko pozyskać specjalistów bezpieczeństwa do audytów, pentestów, wdrożenia Secure SDLC czy budowy zespołu DevSecOps.
Podsumowanie
OWASP Top 10 jest niezwykle cennym i powszechnie uznanym zasobem w dziedzinie bezpieczeństwa aplikacji webowych. Stanowi zwięzłe podsumowanie najkrytyczniejszych zagrożeń, podnosi świadomość i dostarcza praktycznych wskazówek dotyczących budowania bezpieczniejszych aplikacji. Każda organizacja tworząca lub wykorzystująca aplikacje webowe powinna znać aktualną listę, szkolić swoje zespoły w zakresie zawartych w niej zagrożeń i systematycznie weryfikować swoje aplikacje pod kątem podatności. OWASP Top 10 to nie cel sam w sobie, lecz fundament, na którym buduje się dojrzały program bezpieczeństwa aplikacji.
Najczęściej zadawane pytania
Czym jest OWASP Top 10?
OWASP Top 10 to regularnie aktualizowany raport publikowany przez międzynarodową organizację non-profit OWASP (Open Web Application Security Project), która zajmuje się poprawą bezpieczeństwa oprogramowania.
Dlaczego lista OWASP Top 10 jest ważna w IT?
Głównym celem publikacji OWASP Top 10 jest podnoszenie świadomości na temat najpoważniejszych ryzyk związanych z bezpieczeństwem aplikacji webowych wśród deweloperów, architektów, menedżerów i specjalistów ds. bezpieczeństwa.
Jakie kategorie zagrożeń obejmuje OWASP Top 10?
Pozycja: awansowała z #5 na #1, co odzwierciedla rosnącą skalę problemu. Błędna kontrola dostępu oznacza, że aplikacja nie wymusza prawidłowo ograniczeń dotyczących tego, co uwierzytelnieni użytkownicy mogą robić.
Jakie są korzyści ze stosowania OWASP Top 10?
OWASP Top 10 stanowi podstawę edukacji zespołów: zapoznawania ich z zagrożeniami z listy i bezpiecznymi praktykami kodowania, warsztatów hands-on z wykorzystaniem OWASP WebGoat (celowo podatnej aplikacji do nauki), certyfikacji takich jak CSSLP (ISC²) czy Secure Coding (SANS) oraz regularnego aktualizowania wiedzy przy każdej nowej wersji listy.
Inżyniera bezpieczeństwa albo pentestera, który zna kategorie ryzyk z listy OWASP, dołączysz do swojego zespołu deweloperskiego w modelu Body Leasing.
Umow darmowa konsultacje →