Každá firma, která provozuje webovou aplikaci — eshop, zákaznický portál, podnikový informační systém dostupný přes browser, API backend — vystavuje část svého prostředí internetu. A internet je prostředí, kde operují útočníci ze celého světa, 24 hodin denně, 365 dnů v roce.
Penetrační test webové aplikace (web application pentest nebo web app pentest) je řízený, legální útok na vaši aplikaci provedený bezpečnostními specialisty. Cílem je nalézt bezpečnostní slabiny dříve, než je najdou skuteční útočníci — a poskytnout organizaci konkrétní a prioritizované doporučení k nápravě.
OWASP Top 10: Na co se testeři zaměřují primárně
OWASP (Open Web Application Security Project) publikuje seznam 10 nejčastějších a nejzávažnějších zranitelností webových aplikací — OWASP Top 10. Tento seznam je průmyslovým standardem a tvoří základ každého web app pentestů.
Injection útoky
SQL injection je klasická, ale stále příliš často přítomná zranitelnost. Útočník vloží do vstupního pole (formulář, URL parametr, API) SQL příkaz, který aplikace nekriticky předá databázi. Výsledkem může být výpis celé databáze, mazání záznamů nebo obejití přihlášení. Moderní ORM frameworky SQL injection do značné míry eliminují — ale starší kód, legacy systémy a nesprávné použití prepared statements ji stále drží na předních místech žebříčku.
Vedle SQL injection testeři prověřují NoSQL injection, Command injection (vkládání systémových příkazů), LDAP injection a Template injection.
Broken Authentication a Session Management
Slabé nebo chybně implementované ověřování identity umožňuje útočníkovi převzít cizí účet. Testeři prověřují: sílu mechanismu hesel, brute-force ochranu, bezpečnost session tokenů (délka, entropie, expiraci), správnou implementaci „zapamatovat mě," bezpečné odhlášení a multi-factor authentication.
Cross-Site Scripting (XSS)
XSS umožňuje útočníkovi vložit škodlivý JavaScript do webové stránky, který se spustí v prohlížeči oběti. Důsledky zahrnují krádež session cookies, přesměrování na phishingový web, keylogging nebo defacement stránky. XSS existuje ve třech variantách: reflected, stored a DOM-based — každá vyžaduje jiný přístup k detekci i k opravě.
Insecure Direct Object Reference (IDOR)
IDOR nastává, když aplikace neověřuje, zda přihlášený uživatel smí přistupovat k requestovanému objektu. Příklad: URL /objednavky/12345 zobrazí objednávku — stačí změnit číslo na 12346 a vidíte cizí objednávku. IDOR zůstává jednou z nejčastěji nalézaných zranitelností přes svou konceptuální jednoduchost.
Security Misconfiguration
Chybná konfigurace — výchozí hesla ponechaná beze změny, aktivní debugovací rozhraní v produkci, veřejně přístupné S3 buckety, zbytečně povolené HTTP metody, chybějící bezpečnostní hlavičky (CSP, HSTS, X-Frame-Options) — je zodpovědná za velké množství úspěšných průniků. Testeři systematicky prověřují konfiguraci serveru, aplikačního rámce, cloudu a třetích stran.
Další kategorie OWASP Top 10
- Vulnerable and Outdated Components — použití knihoven se známými CVE
- Identification and Authentication Failures — slabé mechanismy ověřování
- Software and Data Integrity Failures — nedůvěryhodné deserializace, supply chain útoky
- Security Logging and Monitoring Failures — absence logování bezpečnostních událostí
- Server-Side Request Forgery (SSRF) — server vykonává requesty na základě uživatelského vstupu
Metodika web app pentestů: fáze a postupy
Profesionální web app pentest není chaotické klikání po aplikaci — je to strukturovaný proces s jasně definovanými fázemi.
Fáze 1: Scoping a příprava
Před zahájením testu se musí smluvně definovat: rozsah (které aplikace, URL, API endpointy), hloubka testu (black-box bez přihlášení, grey-box s běžným uživatelem, white-box s přístupem ke zdrojovému kódu), časový rámec, kontaktní osoby a eskalační postup pro případ nálezu kritické zranitelnosti. Pentest bez jasně definovaného rozsahu je právně rizikovým a technicky nekontrolovaným procesem.
Fáze 2: Reconnaissance a mapping
Tester mapuje aplikaci: identifikuje technologie (framework, databáze, server), enumeruje endpointy a funkce, analyzuje vstupní body (formuláře, URL parametry, API, soubory), prověřuje HTTP hlavičky a cookies, hledá veřejně dostupné informace o aplikaci (GitHub leaky, subdomény, staré verze). V této fázi vzniká mapa útočné plochy.
Fáze 3: Vulnerability scanning a manuální testování
Automatizované skenery (Burp Suite Pro, OWASP ZAP, Nikto) identifikují potenciální zranitelnosti rychle, ale s falešnými poplachy a omezenou hloubkou. Klíčová je manuální práce zkušeného testera: ruční ověření každého nálezu, testování business logic chyb (které automaty nenajdou), špatné implementace autentizace a autorizace, řetězení více nízkých zranitelností do závažného útoku.
Fáze 4: Exploitation
Nalezené zranitelnosti jsou exploitovány — bezpečně a kontrolovaně — aby se prokázal jejich skutečný dopad. Cílem není maximální destrukce, ale demonstrace: „touto zranitelností lze získat přístup k databázi zákazníků" je přesvědčivější než teoretické varování. Dokumentuje se každý krok, screenshot, request a response.
Fáze 5: Reporting
Výstupní zpráva je finálním produktem pentestů. Kvalitní zpráva obsahuje dvě části: executive summary pro vedení (celkové hodnocení bezpečnostní úrovně, seznam kritických nálezů v obchodním kontextu, doporučené priority) a technický detail pro vývojáře a IT (každá zranitelnost s popisem, důkazem exploitace, CVSS skóre a konkrétním doporučením k nápravě).
Dobrá zpráva z pentestů je akční dokument, ne jen seznam problémů. Každý nález musí mít jasný postup nápravy a odhadovanou náročnost implementace. Po implementaci oprav by měl proběhnout retest potvrzující, že zranitelnosti byly skutečně odstraněny.
Co firma ze web app pentestů skutečně získá
Pentest není jen „papír pro compliance." Firmy, které ho absolvují, typicky zjistí:
- Konkrétní zranitelnosti v jejich aplikaci — ne obecné hrozby, ale reálné díry v jejich kódu
- Prioritizaci: co opravit dnes, co příští sprint, co při příštím refactoringu
- Pochopení bezpečnostních rizik vývojovým týmem — pentest je skvělé vzdělávání
- Podklad pro vedení k rozhodnutí o bezpečnostních investicích
- Doklad pro obchodní partnery, zákazníky nebo regulátory o proaktivním přístupu k bezpečnosti
Web app pentest by měl probíhat minimálně jednou ročně a vždy po větší změně aplikace. Pokud vaše firma webovou aplikaci provozuje a nikdy ji netestovala, je velice pravděpodobné, že obsahuje zranitelnosti. Tým SecureOn.cz provádí web app pentesty metodikou OWASP Testing Guide pro firmy všech velikostí — od startupů po regulované subjekty.