Jestli jste někdy přemýšleli, co vlastně takový penetrační test obnáší, jste na správném místě. V tomto článku vás provedeme celým procesem penetračního testování – od prvotní přípravy až po závěrečnou zprávu. Dozvíte se, proč jsou tyto testy důležité, jaké metodiky se používají a hlavně, co během nich vlastně „etický hacker“ dělá.

Shrnutí pro ty, kteří nemají čas číst celý článek

  • Penetrační test simuluje reálný hackerský útok v kontrolovaném prostředí, aby odhalil bezpečnostní slabiny systémů a aplikací.
  • Celý proces zahrnuje 5 hlavních fází: příprava a plánování, sběr informací, skenování zranitelností, exploitace slabých míst a reporting.
  • Používají se různé metodiky jako OWASP, NIST SP 800-115 nebo OSSTMM, které zajišťují systematický přístup.
  • Testy mohou být blackbox (tester nemá žádné informace), whitebox (tester má plný přístup k dokumentaci) nebo graybox (něco mezi).
  • Pravidelné penetrační testy jsou důležitou součástí komplexní bezpečnostní strategie každé organizace.

jak se dělá penetrační test

Co je penetrační test a proč ho potřebujete

Penetrační test (zkráceně pentest) je předem schválený simulovaný kybernetický útok na počítačový systém. Jeho cílem je najít bezpečnostní slabiny dříve, než je objeví a zneužijí skuteční útočníci. Jednoduše řečeno, jde o to, že si najmete profesionálního „hodného hackera“, aby se pokusil nabourat do vašich systémů a ukázal vám, kde máte díry v zabezpečení.

Kybernetické hrozby se neustále vyvíjejí, a proto je pravidelné testování nezbytné pro ochranu vaší firmy a citlivých dat. Každý den se objevují nové typy útoků a techniky pronikání do systémů. Bez důkladného testování nemůžete vědět, zda jsou vaše bezpečnostní opatření dostatečná.

Metodiky penetračního testování

Aby bylo testování skutečně efektivní, řídí se penetrační testeři osvědčenými metodikami, které zajišťují systematický a důkladný přístup. Mezi nejpoužívanější patří:

OWASP (Open Web Application Security Project)

OWASP je nezisková organizace, která se zaměřuje na zlepšování bezpečnosti softwaru. Její metodika je obzvlášť užitečná pro testování webových aplikací. OWASP je známý svým žebříčkem Top 10 nejkritičtějších bezpečnostních rizik webových aplikací, který pravidelně aktualizují.

Tato metodika se soustředí na důležité oblasti jako jsou injekce (SQL, NoSQL, OS), chybná autentizace, citlivá data, XML Externí entity, špatná kontrola přístupu nebo chybné konfigurace. Pokud vyvíjíte webové aplikace, znalost OWASP Top 10 by měla být naprostým základem.

NIST SP 800-115

Americká agentura spadající pod Ministerstvo obchodu USA NIST (National Institute of Standards and Technology) vydala metodiku SP 800-115 – Technical Guide to Information Security Testing and Assessment. Tento standard poskytuje podrobný rámec pro plánování a provádění bezpečnostních testů a hodnocení. Často se využívá v prostředí, kde je potřeba soulad s federálními regulacemi a standardizovaným postupem.

OSSTMM (Open Source Security Testing Methodology Manual)

OSSTMM je metodika neziskové organizace ISECOM zaměřená na testování pomocí open source nástrojů. Je komplexní a zahrnuje mnoho aspektů bezpečnostního testování včetně fyzické bezpečnosti, bezpečnosti lidských zdrojů a komunikací.

Mohlo by vás zajímat: TOP 10 slabin, které odhalují penetrační testy

Typy penetračních testů

Ne všechny penetrační testy jsou stejné. Podle toho, kolik informací má tester k dispozici, rozlišujeme několik typů:

Black box

Při black box testování nemá tester žádné předchozí znalosti o testovaném systému. Musí začít od nuly, stejně jako by to dělal skutečný útočník. To poskytuje nejrealističtější pohled na to, jak by mohl vypadat skutečný útok.

Představte si, že byste poslali bezpečnostního experta do města, kde nikdy nebyl, a požádali ho, aby našel všechna místa, kde hrozí úrazy a jiná nebezpečí pro obyvatele. Je to náročné, ale pokud uspěje, můžete si být jisti, že odhalil skutečné problémy.

White box

Přesný opak black box testování. Tester má plný přístup k dokumentaci, zdrojovým kódům, síťovým diagramům a všem ostatním informacím o systému. To umožňuje velmi důkladné testování, ale méně odráží reálnou situaci útoku.

Je to, jako byste tomu bezpečnostnímu expertovi dali kompletní plány města včetně všech bezpečnostních systémů. Najde určitě více potenciálních problémů, ale reálný útočník by takové informace většinou neměl.

Grey box

Kompromis mezi předchozími dvěma přístupy. Tester má částečné znalosti o systému, což lépe simuluje útok ze strany někoho, kdo má určité interní informace (například bývalý zaměstnanec).

jak se dělá penetrační test

Fáze penetračního testu

Nyní se dostáváme k jádru věci – jak vlastně takový penetrační test probíhá krok za krokem? Celý proces lze rozdělit do pěti hlavních fází.

1. Příprava a plánování

Tato fáze je základem úspěšného testu. Zahrnuje definování rozsahu, cílů a pravidel testu. Pokud ji podceníte, může dojít k nedorozuměním nebo dokonce k nechtěnému poškození systémů.

Co se děje během přípravy:

  • Definice rozsahu: Určí se, které systémy, servery, aplikace a sítě se budou testovat a které ne.
  • Stanovení cílů: Definuje se, co přesně chceme testem zjistit (například odolnost proti konkrétnímu typu útoku).
  • Domluva podmínek: Dohodne se čas testování, povolené techniky a postupy, kontaktní osoby atd.
  • Podpis dokumentů: Připraví se a podepíše smlouva včetně NDA (dohoda o mlčenlivosti) a povolení k testování.

Tato fáze, která je často opomíjena, pomáhá firmě vytvořit společný základ s testerem. Definuje se rozsah práce, pravidla zapojení, časový harmonogram a konkrétní logistiku, včetně stanovení jasných cílů a záměrů.

Je důležité mít na paměti, že penetrační test bez správného povolení může být považován za nelegální činnost. Proto je dokumentace v této fázi nezbytná.

2. Sběr informací (reconnaissance)

Jakmile se vyřeší všechny formality, začíná tester shromažďovat informace o cíli. Tato fáze je někdy označována jako průzkum nebo reconnaissance a je nesmírně důležitá.

Techniky sběru informací:

  • Pasivní sběr: Nezahrnuje přímou interakci s cílovým systémem. Tester využívá veřejně dostupné informace (OSINT – Open Source Intelligence), jako jsou vyhledávače, sociální sítě, whois záznamy, DNS záznamy atd.
  • Aktivní sběr: Zahrnuje přímou interakci s cílovým systémem, jako je skenování portů, identifikace operačních systémů, mapování sítě atd.

Představte si, že plánujete vloupání (samozřejmě jen v rámci této analogie). Nejprve byste si dům dobře prohlédli zvenčí – kolik má oken, dveří, kde jsou kamery, kdy lidé odcházejí a přicházejí. To je pasivní sběr. Aktivní sběr by byl, kdybyste šli a zkusili, jestli jsou některá okna otevřená nebo zamčená.

Nástroje používané v této fázi:

  • Maltego – Vizualizuje vztahy mezi informacemi
  • Shodan – Vyhledávač zařízení připojených k internetu
  • theHarvester – Sbírá e-mailové adresy, subdomény, hostitele a jiné informace
  • Recon-ng – Komplexní framework pro sběr informací
  • Google Dorks – Speciální vyhledávací dotazy odhalující citlivé informace

Výstupem této fáze je detailní mapa cíle zahrnující jeho systémy, služby, uživatele, používané technologie a potenciální vstupní body.

3. Skenování a analýza zranitelností

S informacemi získanými v předchozí fázi může tester nyní začít hledat konkrétní zranitelnosti. Tato fáze zahrnuje skenování systémů pro identifikaci potenciálních slabých míst.

Co se děje během skenování:

  • Skenování portů – identifikace otevřených portů a služeb běžících na těchto portech
  • Skenování zranitelností – hledání známých bezpečnostních problémů v běžících službách
  • Analýza aplikací – testování webových aplikací, API a jiných aplikačních rozhraní
  • Enumerace uživatelů – pokus o identifikaci uživatelských účtů

Skenování je volitelná součást penetračního testování a může být prováděno i samostatně jako tzv. skenování zranitelnosti.

Nástroje používané v této fázi:

  • Nmap – skenování portů a identifikace služeb
  • Nessus – komplexní skener zranitelností
  • OpenVAS – open source alternativa k Nessus
  • Burp Suite – nástroj pro testování zabezpečení webových aplikací
  • OWASP ZAP – alternativní nástroj pro testování webových aplikací

Výstupem této fáze je seznam potenciálních zranitelností, které by mohli hackeři zneužít. Některé nástroje přiřazují těmto zranitelnostem skóre podle jejich závažnosti, což pomáhá prioritizovat další kroky.

4. Exploitace (zneužití zranitelností)

Nyní přichází ta „nejzábavnější“ část pro testery – pokus o skutečné zneužití nalezených zranitelností. Cílem je dokázat, že nalezené slabiny představují skutečné riziko, nikoli jen teoretickou hrozbu.

Mohlo by vás zajímat: Čínští hackeři pronikli k poskytovatelům telekomunikačních služeb v USA

Typy exploitace:

  • Získání přístupu – například prolomení hesla nebo zneužití chyby v aplikaci
  • Eskalace oprávnění – zvýšení úrovně přístupu z běžného uživatele na administrátora
  • Boční pohyb – přesun mezi různými systémy v síti
  • Persistence – zajištění trvalého přístupu (v reálném útoku by to útočníkovi umožnilo vrátit se později)
  • Sběr dat – získání citlivých informací

Důležité je poznamenat, že na rozdíl od skutečných útočníků, penetrační testeři vždy pracují v rámci dohodnutých pravidel a s maximální opatrností, aby nepoškodili testované systémy.

Nástroje používané v této fázi:

  • Metasploit – framework obsahující tisíce známých exploitů
  • SQLmap – nástroj pro testování SQL injection zranitelností
  • John the Ripper – nástroj pro prolomení hesel
  • Hydra – nástroj pro útok hrubou silou na různé služby
  • BeEF – framework pro exploitaci zranitelností v prohlížečích

Během této fáze tester pečlivě dokumentuje každý krok a sbírá důkazy o úspěšném proniknutí (například snímky obrazovky, exporty databází nebo vytvořené účty).

Mohlo by vás zajímat: Apple vydává aktualizace opravující aktivně zneužívané Zero-Day zranitelnosti

5. Reportování a náprava

Poslední, ale neméně důležitou fází je vytvoření závěrečné zprávy a pomoc s nápravou nalezených problémů.

Co obsahuje kvalitní report:

  • Manažerské shrnutí – přehled nejdůležitějších zjištění pro vedení společnosti
  • Detailní popis metodiky – vysvětlení, jak byl test proveden
  • Seznam nalezených zranitelností – seřazeno podle závažnosti
  • Detaily jednotlivých zranitelností – popis, jak byly objeveny a zneužity
  • Důkazy – snímky obrazovky a jiné důkazy proniknutí
  • Doporučení k nápravě – konkrétní kroky k odstranění zranitelností

V reportu také naleznete shrnutí určené pro management firmy. Toto shrnutí srozumitelně vysvětluje nalezené zranitelnosti a bezpečnostní mezery, hodnotí jejich závažnost a navrhuje způsoby, jak veškeré problémy odstranit.

Po předložení zprávy následuje často diskuse s klientem o nalezených problémech a možnostech jejich řešení. V některých případech je součástí služby i retestování po implementaci nápravných opatření.

jak se dělá penetrační test

Hodnocení závažnosti zranitelností

Jak vlastně určit, které zranitelnosti jsou nejzávažnější a vyžadují okamžitou pozornost? Existuje několik standardizovaných metodik:

CVSS (Common Vulnerability Scoring System)

CVSS je otevřený standard pro hodnocení závažnosti zranitelností. Poskytuje skóre od 0 do 10, kde 10 představuje nejvyšší závažnost. Skóre se vypočítává na základě několika faktorů:

  • Základní metriky – jak snadné je zranitelnost zneužít a jaký je potenciální dopad
  • Časové metriky – dostupnost oprav, exploitů atd.
  • Environmentální metriky – specifický dopad na konkrétní organizaci

OWASP Risk Rating Methodology

OWASP nabízí vlastní metodiku hodnocení rizik, která bere v úvahu:

  • Pravděpodobnost – jak pravděpodobné je, že zranitelnost bude zneužita
  • Dopad – jaké škody by zneužití mohlo způsobit
  • Riziko = Pravděpodobnost × Dopad

Tato metodika kategorizuje zranitelnosti do čtyř úrovní závažnosti: Nízká, Střední, Vysoká a Kritická.

Mohlo by vás zajímat: Aktivně zneužívané Zero-Day zranitelnosti ve Firefoxu a Windows

jak se dělá penetrační test

Nejčastější typy zranitelností

Jaké typy zranitelností penetrační testeři nejčastěji nacházejí? Podle OWASP Top 10 (verze 2021) to jsou:

  1. Broken Access Control – chybějící nebo nedostatečná kontrola přístupu k funkcím a datům
  2. Cryptographic Failures – chyby v implementaci kryptografie nebo její absence
  3. Injection – vkládání škodlivého kódu prostřednictvím neošetřených vstupů (SQL, NoSQL, OS command injection)
  4. Insecure Design – chyby v návrhu aplikace, které vedou k bezpečnostním problémům
  5. Security Misconfiguration – špatná konfigurace bezpečnostních nastavení
  6. Vulnerable and Outdated Components – Používání zastaralých nebo zranitelných komponent
  7. Identification and Authentication Failures – chyby v identifikaci a autentizaci uživatelů
  8. Software and Data Integrity Failures – problémy s integritou softwaru a dat
  9. Security Logging and Monitoring Failures – nedostatečné logování a monitorování bezpečnostních událostí
  10. Server-Side Request Forgery – možnost manipulace se serverovými požadavky

Penetrační testování v rámci DevSecOps

V moderním přístupu k vývoji software se bezpečnost stává integrální součástí celého vývojového cyklu – hovoříme o tzv. DevSecOps. Penetrační testování hraje v tomto přístupu důležitou roli.

Průběžné testování

Místo jednorázových velkých testů se provádí menší, ale častější testy v průběhu celého vývoje. To umožňuje odhalit a opravit zranitelnosti dříve, což je mnohem efektivnější než jejich řešení až po dokončení vývoje.

Automatizované testování

Část penetračního testování lze automatizovat pomocí nástrojů, které se integrují přímo do CI/CD (Continuous Integration/Continuous Deployment) pipeline. To neznamená, že manuální testování není potřeba – obě metody se doplňují.

Vzdělávání vývojářů

Výsledky penetračních testů slouží také jako vzdělávací materiál pro vývojáře. Pomáhají jim porozumět typům zranitelností, které se v jejich kódu vyskytují, a předcházet jim v budoucnu.

Praktické tipy pro efektivní penetrační testování

Pokud uvažujete o provedení penetračního testu ve vaší organizaci, zde je několik praktických tipů:

Vyberte správného dodavatele

Ne všichni poskytovatelé penetračních testů jsou stejní. Hledejte dodavatele s:

  • Relevantními certifikacemi
  • Prokazatelnými zkušenostmi v vašem odvětví
  • Dobrou pověstí a referencemi
  • Transparentním přístupem k metodice a reportování

Správně definujte rozsah

Příliš úzký rozsah může minout důležité zranitelnosti, příliš široký může být neefektivní nebo příliš nákladný. Zaměřte se na:

  • Kritické systémy a aplikace
  • Systémy obsahující citlivá data
  • Nově implementované systémy
  • Systémy vystavené internetu

Připravte se na test

Před samotným testem:

  • Informujte relevantní týmy (IT, bezpečnost, vývoj)
  • Připravte testovací prostředí, je-li potřeba
  • Zajistěte dostupnost kontaktních osob během testu
  • Mějte připravený plán pro případ, že test způsobí nějaké problémy

Efektivně využijte výsledky

Po obdržení zprávy:

  • Prioritizujte nálezy podle závažnosti
  • Vytvořte plán nápravy s jasnými termíny
  • Zapojte do řešení relevantní týmy
  • Zajistěte retestování po implementaci oprav
  • Použijte získané poznatky pro zlepšení bezpečnostních procesů

Závěr

Penetrační testování je klíčovou součástí bezpečnostní strategie každé firmy. Může odhalit slabiny, které by jinak zůstaly skryté, a ochránit tak vaše data i pověst. Pamatujte ale, že penetrační testy by měli provádět certifikovaní odborníci s potřebnými znalostmi a zkušenostmi. Pokud chcete mít jistotu, že je vaše firma skutečně chráněná, obraťte se na profesionály a nechte si test připravit na míru.

FAQ: Často kladené otázky

Co je penetrační test?

Penetrační test je autorizovaný a řízený simulovaný kybernetický útok, jehož cílem je odhalit bezpečnostní slabiny systémů, aplikací nebo sítí. Provádí ho odborníci (tzv. etičtí hackeři), kteří testují odolnost vůči reálným hrozbám a navrhují opatření k nápravě.

Co je pentesting?

Pentesting je zkrácený název pro penetrační testování (z anglického penetration testing). Jde o proces, při kterém bezpečnostní specialisté záměrně hledají a zkouší zneužít slabiny v IT prostředí, aby ukázali, jak by je mohli využít skuteční útočníci.

Jak často dělat penetrační testy?

Minimálně jednou ročně, ideálně však častěji, zejména po významných změnách v infrastruktuře nebo aplikacích. Některé regulační standardy (např. PCI DSS) mohou vyžadovat pravidelné testy jako součást compliance.

Může penetrační test poškodit systémy? 

Existuje určité riziko, že penetrační test může způsobit problémy (např. přetížení serveru nebo pád aplikace). Proto je důležité mít jasně definovaná pravidla testu a zajistit, aby ho prováděli kvalifikovaní profesionálové. Riziko lze také minimalizovat testováním v neprodukčním prostředí.