Bezpečnost11 min čtení

OWASP Top 10:2025

Deset nejkritičtějších bezpečnostních rizik webových aplikací v aktuální verzi OWASP Top 10:2025. Co se změnilo proti verzi 2021 a jak se jednotlivým rizikům bránit.

Co je OWASP Top 10?

OWASP Top 10 je osvětový dokument komunity OWASP (Open Worldwide Application Security Project), který shrnuje deset nejkritičtějších bezpečnostních rizik webových aplikací. Aktuální je osmé vydání, OWASP Top 10:2025. V listopadu 2025 bylo představeno jako release candidate na konferenci OWASP Global AppSec ve Washingtonu a dnes je vydané jako finální. Verzi 2021 OWASP označuje za nahrazenou.

Jak vzniká a k čemu slouží

Seznam kombinuje data z testování aplikací s názorem praxe. Sám OWASP ho popisuje jako „data-informed, but not blindly data-driven“: data rozhodují, ale ne slepě.

  • Data z více než 2,8 milionu aplikací od přispěvatelů jako Veracode, Sonar, Semgrep, Contrast Security, Bugcrowd nebo Accenture.
  • Měří se výskyt, ne četnost. Rozhoduje, kolik procent testovaných aplikací má danou slabinu aspoň jednou. Čtyři nálezy a čtyři tisíce nálezů v jedné aplikaci se počítají stejně.
  • 589 analyzovaných CWE (v roce 2021 necelých 400). Do deseti kategorií je jich zařazeno 248, nejvýše 40 na kategorii.
  • Osm kategorií vychází z dat, dvě z komunitního průzkumu. Průzkum zachycuje rizika, která automatické testy špatně měří. Letos takto do seznamu prošly dodavatelský řetězec (A03) a logování a alerting (A09).
  • Kategorie jsou řazené podle rizika, tedy podle výskytu a průměrného skóre zneužitelnosti a dopadu z CVSS u CVE, které pod kategorii spadají.

Top 10 není kontrolní seznam

OWASP Top 10 je osvětový dokument a vhodný start pro priority a školení. Pro ověřování a testování aplikace OWASP doporučuje ASVS (Application Security Verification Standard). Rizika aplikací nad LLM, třeba prompt injection, pokrývá samostatný OWASP Top 10 for LLM Applications.

Co se změnilo proti verzi 2021

  • Nová kategorie A03 Software Supply Chain Failures. Rozšiřuje dřívější „Vulnerable and Outdated Components“ ze zranitelných knihoven na celý řetězec: závislosti, build systémy, CI/CD a distribuci. V komunitním průzkumu ji na první místo dala přesně polovina respondentů.
  • Nová kategorie A10 Mishandling of Exceptional Conditions. Chybné ošetření chyb a neočekávaných stavů. Patří sem i CWE, které dřív spadaly pod „špatnou kvalitu kódu“.
  • SSRF už není samostatná kategorie. Server-Side Request Forgery je nově součástí A01 Broken Access Control.
  • Security Misconfiguration stoupla z 5. na 2. místo. Chování softwaru se stále víc určuje konfigurací, a tedy i chybami v ní.
  • Přejmenování: „Identification and Authentication Failures“ jsou nyní „Authentication Failures“, „Logging and Monitoring“ se mění na „Logging and Alerting“ a „Software and Data Integrity“ na „Software or Data Integrity“.
2025Kategorie2021
A01Broken Access Control (nově včetně SSRF)A01 (SSRF byla A10)
A02Security MisconfigurationA05 ↑
A03Software Supply Chain Failuresnová, rozšiřuje A06
A04Cryptographic FailuresA02 ↓
A05InjectionA03 ↓
A06Insecure DesignA04 ↓
A07Authentication FailuresA07
A08Software or Data Integrity FailuresA08
A09Security Logging and Alerting FailuresA09
A10Mishandling of Exceptional Conditionsnová

OWASP Top 10:2025: kompletní seznam

Kategorie jsou seřazené podle rizika. Čísla pod popisem pocházejí z oficiálních stránek jednotlivých kategorií: max. incidence je podíl aplikací se slabinou u přispěvatele s nejvyšším výskytem, CVE je počet známých zranitelností namapovaných na CWE dané kategorie.

A01

Broken Access Control

Porušená kontrola přístupu · 2021: A01

Co to je: Uživatel nebo systém se dostane k datům či funkcím, ke kterým nemá mít přístup. Nově sem patří i SSRF, kdy útočník přiměje server poslat požadavek na zvolený cíl, třeba na interní službu nebo metadata cloudu.

Nějakou formu má 100 % testovaných aplikací · max. incidence 20,15 % · 40 CWE · 32 654 CVE

Typické chyby:

  • IDOR: změnou ?acct=123 v URL se zobrazí cizí účet
  • Kontrola oprávnění jen ve frontendu, API se dá zavolat napřímo
  • Chybějící kontrola u POST, PUT a DELETE endpointů
  • Manipulace s JWT nebo cookie, příliš volné CORS
  • SSRF na http://169.254.169.254/ (metadata cloudu)

Jak se bránit:

  • Kontrolovat přístup jen v důvěryhodném kódu na serveru
  • Deny by default pro vše kromě veřejných zdrojů
  • Jeden sdílený autorizační mechanismus místo kontrol rozesetých po kódu
  • Vlastnictví záznamu ověřovat v datovém modelu
  • Krátkodobé JWT, invalidace session po odhlášení
  • Testy autorizace jako součást unit a integračních testů
A02

Security Misconfiguration

Chybná konfigurace · 2021: A05 ↑

Co to je: Systém, aplikace nebo cloudová služba jsou nastavené nebezpečně: chybí hardening, běží zbytečné služby, zůstala výchozí hesla nebo se ven dostávají podrobné chyby.

Nějakou formu má 100 % testovaných aplikací · max. incidence 27,70 % (nejvyšší ze všech) · 719 084 výskytů

Typické chyby:

  • Výchozí účty a ukázkové aplikace na produkci
  • Veřejně dostupné S3 buckety nebo storage účty
  • Stack trace v odpovědi uživateli, zapnutý debug režim
  • Chybějící bezpečnostní hlavičky, cookie bez HttpOnly
  • XXE kvůli výchozímu nastavení XML parseru

Jak se bránit:

  • Opakovatelný, automatizovaný hardening přes Infrastructure as Code
  • Dev, test a produkce nastavené stejně, liší se jen přihlašovací údaje
  • Minimální platforma bez nepotřebných funkcí
  • Automatická kontrola konfigurace ve všech prostředích (Checkov, Trivy, CSPM)
  • Federace identit a krátkodobé přihlašovací údaje místo statických tajemství v kódu a pipeline
A03

Software Supply Chain Failures Nová

Selhání dodavatelského řetězce softwaru · rozšiřuje A06:2021

Co to je: Kompromitace nebo selhání při sestavení, distribuci či aktualizaci softwaru. Zranitelné nebo podvržené závislosti, nesledované tranzitivní knihovny, neudržované komponenty a CI/CD pipeline, která je slabší než systémy, které nasazuje.

Nejvyšší průměrná incidence i nejvyšší průměrné skóre zneužitelnosti a dopadu ze všech kategorií · v průzkumu ji na 1. místo dalo 50 % respondentů

Příklady z praxe:

  • SolarWinds (2019): podvržený update, zasaženo zhruba 18 000 organizací
  • Bybit (2025): krádež 1,5 mld. USD přes kompromitovaný software peněženky
  • Shai-Hulud (2025): samošířící se červ v npm, přes 500 verzí balíčků
  • Log4Shell (CVE-2021-44228) v nesledovaných závislostech

Jak se bránit:

  • Centrálně spravovaný SBOM včetně tranzitivních závislostí
  • Průběžné sledování komponent (Dependency-Track) proti CVE, NVD a OSV
  • Balíčky jen z oficiálních zdrojů, ideálně podepsané
  • MFA a least privilege pro repozitáře, CI/CD a registry
  • Podepsané buildy, provenance (SLSA), neměnné artefakty
  • Postupné nasazování (canary), aby se kompromitovaná verze zachytila včas
A04

Cryptographic Failures

Selhání kryptografie · 2021: A02 ↓

Co to je: Chybějící nebo slabá kryptografie, uniklé klíče a chyby v jejím použití. Nejčastějším důsledkem je únik citlivých dat.

Max. incidence 13,77 % · 32 CWE · 1 665 348 výskytů

Typické chyby:

  • Data přenášená bez TLS, možnost downgradu na HTTP
  • MD5 nebo SHA-1, hesla hashovaná bez soli rychlým algoritmem
  • Klíče v repozitáři, výchozí nebo opakovaně použité klíče
  • Slabý generátor náhodných čísel, režim ECB
  • Neověřované certifikáty

Jak se bránit:

  • Klasifikovat data a neukládat citlivá data zbytečně
  • Šifrovat citlivá data v klidu i při přenosu, jen TLS 1.2+ s forward secrecy a HSTS
  • Hesla ukládat přes Argon2, scrypt, yescrypt nebo PBKDF2
  • Nejcitlivější klíče v HSM nebo cloudovém KMS
  • Vždy autentizované šifrování (např. AES-GCM)
  • Připravit se na postkvantovou kryptografii, u vysoce rizikových systémů nejpozději do konce roku 2030
A05

Injection

Injekční útoky · 2021: A03 ↓

Co to je: Nedůvěryhodný vstup se dostane do interpretu (databáze, shell, prohlížeč) a vykoná se jako příkaz. Patří sem SQL, NoSQL, OS command, LDAP i Expression Language injection a také XSS.

Nejvíc CVE ze všech kategorií: 62 445 · XSS přes 30 tisíc CVE, SQL injection přes 14 tisíc

Příklad SQL injection:

// Zranitelný kód: String query = "SELECT * FROM accounts WHERE id = '" + request.getParameter("id") + "'"; // Útočník pošle: ' OR '1'='1 // Výsledný dotaz vrátí všechny účty: SELECT * FROM accounts WHERE id = '' OR '1'='1' // Správně – parametrizovaný dotaz: PreparedStatement ps = conn.prepareStatement("SELECT * FROM accounts WHERE id = ?"); ps.setString(1, request.getParameter("id"));

Jak se bránit:

  • Oddělit data od příkazů: parametrizované dotazy, bezpečné API nebo ORM
  • Pozor na uložené procedury s EXECUTE IMMEDIATE nebo exec()
  • Pozitivní validace vstupu na serveru (jako doplněk, ne jediná obrana)
  • Kontextové escapování výstupu proti XSS
  • SAST, DAST a fuzzing v CI/CD
A06

Insecure Design

Nezabezpečený návrh · 2021: A04 ↓

Co to je: Chyby v návrhu a architektuře, včetně chyb business logiky. OWASP to shrnuje větou: nezabezpečený návrh nespraví ani dokonalá implementace.

Max. incidence 22,18 % · 39 CWE · 7 647 CVE

Příklady:

  • Obnova hesla přes kontrolní otázky (NIST 800-63b ji zakazuje)
  • Skupinová sleva v kině zneužitá k rezervaci 600 míst pár požadavky
  • Boti skupující zboží s omezeným množstvím
  • Neomezené nahrávání souborů nebezpečného typu

Jak se bránit:

  • Threat modeling pro autentizaci, autorizaci, business logiku a klíčové toky
  • Knihovna bezpečných návrhových vzorů a ověřených komponent („paved road“)
  • Bezpečnostní požadavky přímo v user stories
  • Testy na zneužití (misuse cases), ne jen na správné použití
  • Oddělení vrstev a tenantů
A07

Authentication Failures

Selhání autentizace · 2021: A07

Co to je: Útočník přiměje systém, aby ho považoval za legitimního uživatele. Slabá hesla, credential stuffing, chybějící MFA nebo špatná správa session.

Max. incidence 15,80 % · 36 CWE · 7 147 CVE

Typické chyby:

  • Credential stuffing a password spraying (Leto2025 → Leto2026)
  • Výchozí, slabá nebo uniklá hesla
  • Chybějící MFA nebo slabá záložní metoda
  • Session ID v URL, session fixation, chybějící odhlášení napříč SSO
  • Neověřené aud a iss v JWT

Jak se bránit:

  • MFA všude, kde to jde, a podpora správců hesel
  • Kontrola nových hesel proti seznamům uniklých hesel
  • Žádná vynucená pravidelná změna hesla (NIST 800-63b), jen při podezření na únik
  • Stejné chybové hlášky, aby nešlo zjišťovat existenci účtů
  • Omezení a zpomalení neúspěšných pokusů, alerting na útoky
  • Ověřené řešení (OIDC, IdP) místo vlastní implementace
A08

Software or Data Integrity Failures

Selhání integrity softwaru nebo dat · 2021: A08

Co to je: Aplikace nebo infrastruktura nechrání hranice důvěry a neověřuje integritu kódu, artefaktů a dat. Proti A03 jde o konkrétnější, technickou úroveň.

Max. incidence 8,98 % · 14 CWE · 3 331 CVE

Typické chyby:

  • Skripty a knihovny z nedůvěryhodných CDN bez kontroly integrity
  • CI/CD stahuje a nasazuje neověřené artefakty
  • Automatické aktualizace bez ověření podpisu
  • Nebezpečná deserializace dat od klienta

Jak se bránit:

  • Ověřovat digitální podpisy softwaru i dat
  • Subresource Integrity pro skripty z CDN
  • Závislosti jen z důvěryhodných nebo interních repozitářů
  • Review změn kódu i konfigurace, oddělené a řízené CI/CD
  • Nedeserializovat nepodepsaná data od nedůvěryhodných klientů
A09

Security Logging and Alerting Failures

Selhání logování a alertingu · 2021: A09

Co to je: Bezpečnostní události se nelogují, logy nikdo nesleduje nebo na ně nenavazuje alert a reakce. Změna názvu z „monitoring“ na „alerting“ je záměrná: podle OWASP mají skvělé logy bez alertingu jen minimální hodnotu.

Do seznamu se dostala z komunitního průzkumu, už potřetí · jen 723 CVE, protože se špatně testuje

Typické chyby:

  • Neúspěšná přihlášení a odepřené přístupy se nelogují
  • Chybí prahy pro alerty a eskalace, DAST sken nevyvolá žádný alert
  • Citlivá data v logu, log injection
  • Tolik falešných poplachů, že skutečný útok zapadne

Jak se bránit:

  • Logovat selhání přihlášení, autorizace a validace s kontextem uživatele
  • Strojově zpracovatelný formát, centrální sběr (SIEM)
  • Auditní stopa jen pro zápis, chráněná proti úpravám
  • Alerty navázané na playbooky a incident response plán
  • Honeytokens jako levná detekce průniku
A10

Mishandling of Exceptional Conditions Nová

Chybné ošetření výjimečných stavů

Co to je: Program neumí předejít neobvyklé situaci, odhalit ji nebo na ni správně reagovat. Výsledkem jsou pády, logické chyby, race conditions, podvodné transakce a systémy, které při chybě „selžou otevřeně“ (fail open).

Max. incidence 20,67 % · 24 CWE · 3 416 CVE

Typické chyby:

  • Chybová hláška s citlivými informacemi (stack trace, SQL)
  • Výjimka při nahrávání souboru neuvolní prostředky, hrozí DoS
  • Přerušený převod peněz se nevrátí, částka se odečte nebo připíše vícekrát
  • Kontrola oprávnění při chybě propustí požadavek

Jak se bránit:

  • Chyby zachytit tam, kde vznikají, a smysluplně ošetřit
  • Globální handler výjimek jako poslední pojistka
  • Při chybě vrátit celou transakci a selhat bezpečně (fail closed)
  • Limity, kvóty a throttling: nic v IT nemá být neomezené
  • Jednotné ošetření chyb, logování a alerting v celé organizaci

Co udělat jako první

Pokud jste se zatím řídili verzí 2021, tyhle kroky pokryjí většinu toho, co nová verze přinesla:

  1. Zmapujte dodavatelský řetězec (A03). Generujte SBOM v CI/CD, sledujte závislosti průběžně, ne jen při buildu, a zapněte MFA a minimální oprávnění pro repozitáře, pipeline a registry. Podrobněji v článcích o SCA a zabezpečení CI/CD.
  2. Kontrolujte konfiguraci automaticky (A02). Skenujte IaC a běžící cloudové účty, ne jen kód aplikace. Bezpečnost Infrastructure as Code.
  3. Přidejte SSRF do testů autorizace (A01). Omezte odchozí provoz aplikací a v AWS vynuťte IMDSv2.
  4. Projděte ošetření chyb (A10). Hledejte místa, kde výjimka propustí požadavek, nevrátí transakci nebo vrátí uživateli interní detaily.
  5. Navažte logy na alerty (A09). Ověřte, že penetrační test nebo DAST sken spustí alert, a že na alert někdo reaguje. Security monitoring a logování.
  6. Aktualizujte mapování. Pravidla SAST/DAST, bezpečnostní dotazníky, interní standardy a školení často odkazují na čísla kategorií z roku 2021 (A03:2021 Injection je dnes A05:2025).

Jak implementovat ochranu

DevSecOps přístup

Ochrana proti OWASP Top 10 vyžaduje bezpečnost v celém životním cyklu, od návrhu po provoz:

1. Návrh

  • Threat modeling (A06)
  • Bezpečnostní požadavky v user stories
  • Review architektury

2. Vývoj

  • SAST (A05, A10)
  • SCA a SBOM (A03)
  • Detekce tajemství v kódu (A04, A07)

3. Build

  • Podepsané artefakty a provenance (A03, A08)
  • Zabezpečená CI/CD s MFA a least privilege
  • Skenování kontejnerů

4. Testování

  • DAST (A01, A02, A05)
  • Testy autorizace a misuse cases
  • Penetrační testy podle ASVS

5. Nasazení

  • Skenování IaC a konfigurace (A02)
  • Security gates v CI/CD
  • Canary nasazení (A03)

6. Provoz

  • Centrální logování a alerting (A09)
  • Průběžné sledování závislostí (A03)
  • Incident response playbooky

Doporučené nástroje

  • SAST: Semgrep, CodeQL, SonarQube, Checkmarx
  • DAST: ZAP, Burp Suite
  • SCA a SBOM: OWASP Dependency-Track, Syft, Snyk, Dependabot, Renovate
  • Podepisování a provenance: Sigstore (cosign), SLSA, GitHub Artifact Attestations
  • IaC a konfigurace: Checkov, Trivy, KICS
  • Kontejnery: Trivy, Grype
  • Detekce tajemství: Gitleaks, TruffleHog, GitGuardian
  • WAF: AWS WAF, Azure WAF, Cloudflare

Zdroje

  1. OWASP Top 10:2025: oficiální znění a stránky jednotlivých kategorií
  2. OWASP Top 10:2025: Introduction: metodika, data a změny proti roku 2021
  3. OWASP/Top10 na GitHubu: zdrojové texty a stav vydání
  4. OWASP ASVS: standard pro ověřování bezpečnosti aplikací
  5. OWASP Top 10 for LLM Applications: rizika aplikací nad jazykovými modely

Chcete to mít vyřešené bez vlastního DevOps týmu?

Náš čtyřčlenný DevOps tým se o vaši platformu stará za pevnou měsíční cenu.

Nebo napište na info@devsecops.cz. Údaje zpracujeme podle zásad ochrany soukromí.