Už jste někdy zkoušeli zamknout dveře, a pak je ještě pro jistotu zkusili otevřít, abyste se ujistili, že jsou opravdu zamčené? Pokud ano, právě jste provedli velmi jednoduchý „penetrační test“ vašeho domova. V digitálním světě je to podobné. Potřebujeme vědět, jestli jsou naše systémy skutečně zabezpečené, ne jen zdánlivě. A přesně k tomu slouží různé typy penetračních testů, o kterých je tento článek.
Shrnutí, pokud nemáte čas číst celý článek
- Penetrační testy nejsou jednorázová akce, ale řízená simulace útoků, která ukazuje, kde jsou vaše systémy zranitelné.
- Neexistuje jen jeden typ penetračních testů. Webové aplikace, infrastruktura, cloud i mobilní prostředí mají své vlastní slabiny, které je potřeba ověřit.
- Speciální testy, jako je IoT nebo sociální inženýrství, prověřují odolnost tam, kde selhává technika a nastupuje lidský faktor.
- Red Team cvičení jde nejdál, protože simuluje skutečný útok a ukazuje, jak by vaše organizace obstála v reálné situaci.
- Největší jistotu přináší kombinace různých metod: průběžné automatizované skeny, pravidelné manuální testy a jednou ročně komplexní hodnocení
- Penetrační testy má dělat vždy nezávislý odborník. Jen tak získáte objektivní výsledky a doporučení, která opravdu zvýší bezpečnost.
Co jsou penetrační testy a k čemu slouží
Penetrační testy jsou řízené a kontrolované simulace útoků na IT systémy, aplikace nebo infrastrukturu s cílem odhalit jejich zranitelnosti dříve, než je zneužije skutečný útočník.
Odborníci, kteří penetrační testy provádějí, se vžijí do role útočníka a zkouší, kudy by se dalo do systému dostat. Zda je to možné přes slabé heslo, chybu v aplikaci, špatně nastavený server nebo nezabezpečený cloud.
Cílem je všechny tyto slabiny včas odhalit a opravit dřív, než je někdo zneužije. Díky tomu firmy získají jistotu, že mají své systémy i data lépe chráněné, splní povinnosti z hlediska regulací a sníží riziko výpadků nebo úniků, které by mohly stát hodně peněz i reputaci.
TIP: Penetrační test: Co to je a proč ho vaše firma potřebuje
Typy penetračních testů podle zaměření
Bezpečnost IT prostředí je složená z mnoha částí, a to od serverů a sítí přes webové a mobilní aplikace až po cloudové služby a chytrá zařízení. Každá z těchto oblastí má své vlastní slabiny a vyžaduje jiný způsob ověřování. Proto nestačí prověřit jen jednu část infrastruktury, ale je nutné testovat všechny klíčové prvky samostatně.
Díky tomu lze odhalit zranitelnosti, které by jinak zůstaly skryté, a zajistit tak, že systémy budou chráněny proti široké škále útoků. Jaké jsou typy penetračních testů?
Penetrační testy webových aplikací
Penetrační testy webových aplikací se zaměřují na ověření, zda jsou online služby dostatečně chráněné proti nejčastějším útokům. Prověřují všechny části aplikace, které jsou dostupné uživatelům i administrátorům, a hledají chyby v přihlašování, práci s daty nebo logice aplikace.
Co jsou webové aplikace
Webové aplikace jsou programy, které běží na webových serverech a ke kterým přistupujete prostřednictvím prohlížeče. Patří mezi ně e-shopy, sociální sítě, e-mailové klienty, online bankovnictví a v podstatě vše, co na internetu používáte a není to jen statická stránka.
Proč jsou zranitelné
Webové aplikace jsou často zranitelné, protože:
- Jsou přímo přístupné z internetu,
- zpracovávají vstupy od uživatelů, které mohou být škodlivé,
- často pracují s citlivými daty (osobní údaje, platební informace),
- běží na komplexních technologiích s mnoha komponentami.
Co se testuje při penetračním testu webových aplikací a jak to probíhá
Penetrační testy webových aplikací se zaměřují na ověření, zda jsou online služby bezpečné vůči různým typům útoků. Kontrolují oblasti, které mohou být zranitelné a které by mohly ohrozit citlivá data nebo narušit fungování aplikace.
- Mapování aplikace: Detailní zjištění všech stránek, funkcí a API rozhraní, aby bylo jasné, jak aplikace funguje a kde mohou být slabiny.
- Autentizace a správa relací: Ověření, zda jsou přihlašovací údaje správně chráněné, zda je možné hesla prolomit nebo převzít cizí účet a zda fungují bezpečně mechanismy pro obnovu hesla.
- Injekční útoky: Kontrola, zda lze do formulářů, vyhledávání nebo jiných vstupních polí vložit kód a tím získat přístup k datům či ovlivnit fungování aplikace.
- Přístupová oprávnění: Testování, zda běžný uživatel nemůže získat přístup k funkcím nebo datům, které by měly být dostupné jen administrátorům.
- Cross-Site Scripting (XSS): Ověřování, zda je možné vložit škodlivý skript, který se následně spustí v prohlížeči jiných uživatelů.
- Testování vstupních polí: Prověření všech formulářů a interaktivních prvků aplikace, zda správně filtrují a validují vstupy.
- Kontrola manipulace s daty: Zjištění, zda lze měnit parametry v adrese (URL), cookies nebo skrytých polích formulářů a tím ovlivnit procesy v aplikaci, například cenu objednávky.
Testování logiky aplikace: Analýza, zda lze obejít zamýšlený krok jako třeba přeskočit krok platby a přesto získat přístup ke službě nebo zboží.
Nástroje pro testování webových aplikací
Mezi oblíbené nástroje testování webových aplikací patří:
- OWASP ZAP: Všestranný nástroj pro testování webových aplikací.
- Burp Suite: Profesionální nástroj používaný odborníky na bezpečnost.
- SQLmap: Specializovaný nástroj pro testování SQL injection zranitelností.
Penetrační testy infrastruktury
Penetrační testy infrastruktury se zaměřují na technické zázemí organizace a ověřují, zda jsou správně nastavené, aktuální a dostatečně odolné proti útokům zvenčí i zevnitř, protože jakákoli slabina v této oblasti může ohrozit celé IT prostředí.
Co je IT infrastruktura
IT infrastruktura zahrnuje všechny fyzické a virtuální komponenty, které podporují fungování aplikací a služeb. Patří sem servery, síťová zařízení (routery, switche, firewally), operační systémy a další.
Infrastruktura je základem všeho. Pokud je kompromitována, útočník může získat přístup ke všemu, co na ní běží.
Co se testuje při infrastrukturním penetračním testu
Při penetračním testu IT infrastruktury je testování zaměřeno na:
- Externí testy: Simulují útok z internetu. Tester se snaží proniknout do sítě zvenčí, jako by byl útočník.
- Interní testy: Simulují útok z vnitřní sítě. Představte si to jako testování, co by mohl provést nespokojený zaměstnanec nebo útočník, který už získal určitý přístup.
- Testování bezdrátových sítí: Kontrola zabezpečení Wi-Fi sítí. Jsou vaše bezdrátové sítě dostatečně chráněné před odposloucháváním nebo neoprávněným přístupem?
Co konkrétně se kontroluje a jak probíhá testování
Při penetračním testu infrastruktury se prověřují následující oblasti:
- Průzkum sítě a mapování služeb: Identifikace všech zařízení, otevřených portů a běžících služeb, aby bylo jasné, kde může vznikat riziko.
- Kontrola verzí a konfigurace: Ověření, zda systémy nepoužívají zastaralý software a zda nejsou špatně nastavené servery, síťové prvky či operační systémy.
- Ověření přístupů: Testování síly hesel, způsobu jejich ochrany a odolnosti přístupových mechanismů proti prolomení.
- Analýza šifrování: Posouzení, zda jsou data při přenosu mezi systémy dostatečně chráněna a nemohou být odposlechnuta.
- Skenování a exploitace zranitelností: Vyhledání známých slabin a ověření, zda je lze reálně zneužít k získání přístupu.
- Eskalace oprávnění: Test, zda je možné z běžného účtu získat vyšší úroveň přístupu k systému.
- Laterální pohyb v síti: Ověření, zda by se útočník dokázal přesunout mezi jednotlivými systémy a postupně rozšiřovat svůj přístup.
TIP: Čínští hackeři pronikli k poskytovatelům telekomunikačních služeb v USA
Jaké nástroje se používají pro testování infrastruktury
Mezi oblíbené nástroje testování infrastruktury patří:
- Nmap: Pro mapování sítě a objevování služeb.
- Nessus: Pro skenování zranitelností.
- Metasploit: Pro exploitaci zranitelností.
- Wireshark: Pro analýzu síťového provozu.
Penetrační testy cloudových prostředí
Penetrační testy cloudových prostředí se zaměřují na ověření bezpečnosti služeb a dat uložených u poskytovatelů cloudu. Cloud má svá specifika, provozuje jej třetí strana, sdílí se mezi více zákazníky a funguje na principu sdílené odpovědnosti. Cílem testování je prověřit, zda je prostředí správně nastavené a zda nedochází k chybám, které by mohly ohrozit dostupnost nebo bezpečnost dat a služeb.
Co je cloudové prostředí
Cloudové prostředí tvoří služby poskytované přes internet, od virtuálních serverů až po kompletní aplikace. Mezi hlavní modely patří:
- Infrastructure as a Service (IaaS): Poskytuje virtuální servery (např. AWS EC2, Azure VMs). Testuje se konfigurace virtuálních strojů, sítí a přístupových práv.
- Platform as a Service (PaaS): Nabízí vývojové prostředí (např. Heroku, Google App Engine). Testuje se zabezpečení aplikací a jejich interakce s platformou.
- Software as a Service (SaaS): Poskytuje hotové aplikace (např. Office 365, Salesforce). Testuje se konfigurace, integrace a správa uživatelských přístupů.
Co se testuje a jaké jsou specifické aspekty cloudových testů
Při testování cloudových prostředí se zohledňují následující oblasti:
- Sdílená odpovědnost: Některé aspekty bezpečnosti jsou v odpovědnosti zákazníka, jiné zajišťuje poskytovatel.
- Elasticita: Cloudová prostředí se dynamicky rozšiřují a mění, což ztěžuje jejich testování.
- Multitenancy: Data mohou být fyzicky uložena společně s daty jiných organizací.
- API rozhraní: Většina cloudových služeb je řízena přes API, které může být zranitelné.
Co se kontroluje a jak probíhá testování
Při penetračním testu cloudového prostředí se krok za krokem prověřuje nastavení jednotlivých služeb a komponent. Cílem je odhalit chyby v konfiguraci, slabiny v API rozhraních nebo nedostatečné zabezpečení dat a ověřit, zda by je mohl útočník zneužít k získání přístupu či k narušení provozu.
- Kontrola konfigurace: Ověření, zda je prostředí správně nastavené a zda neobsahuje slabiny.
- Analýza přístupových práv: Posouzení, kdo má k čemu přístup a zda nejsou přidělena nadbytečná oprávnění.
- Testování virtualizace: Ověření, zda nelze prolomit hranice mezi virtuálními stroji.
- Kontrola API: Testování, zda jsou cloudová API správně zabezpečená a nelze je zneužít.
- Testování dat: Ověření, zda jsou data v cloudu chráněna jak v klidu, tak během přenosu.
Jaké nástroje se používají pro testování cloudu
Mezi nejčastěji využívané nástroje pro testování cloudových prostředí patří:
- ScoutSuite: Pro kontrolu konfigurace AWS, Azure a Google Cloud.
- Prowler: Specializovaný nástroj pro AWS.
- Pacu: Framework pro testování bezpečnosti AWS.
- AzureHound: Nástroj pro identifikaci možných cest útoku v prostředí Azure.
Penetrační testy mobilních aplikací
Penetrační testy mobilních aplikací se zaměřují na zabezpečení softwaru, který běží na chytrých telefonech a tabletech. Mobilní zařízení dnes slouží nejen k osobní komunikaci, ale uchovávají i velké množství citlivých údajů, od osobních fotografií až po přístup k bankovním účtům nebo firemním aplikacím. Jakákoli slabina v mobilní aplikaci proto může vést k úniku dat nebo zneužití funkcí zařízení.
Proč jsou mobilní aplikace zranitelné
Mobilní aplikace jsou vystaveny specifickým rizikům, která se liší od tradičních webových nebo síťových prostředí. Proč?
- Běží na zařízeních, která mohou být snadno ztracena nebo odcizena.
- Často ukládají citlivá data přímo v zařízení.
- Komunikují s backendovými servery a přenášejí citlivé informace.
- Mají přístup k funkcím telefonu, jako je kamera, mikrofon nebo GPS.
Co se testuje při penetračním testu mobilních aplikací
Při penetračním testu mobilní aplikace se prověřují následující oblasti:
- Ukládání dat: Jsou citlivé informace, například hesla nebo autentizační tokeny, bezpečně uloženy?
- Komunikace: Je veškerá komunikace se servery správně šifrována?
- Autentizace: Je proces přihlašování robustní a odolný vůči útokům?
- Kód aplikace: Obsahuje aplikace uložené klíče, hesla nebo jiné citlivé informace?
- Interakce s operačním systémem: Využívá aplikace dostupné bezpečnostní funkce systému správným způsobem?
Specifika pro Android a iOS
Testování mobilních aplikací se liší podle platformy:
- Android: Ověřuje se možnost dekompilace APK souborů, kontrolují se přidělená oprávnění aplikace a testuje se meziprocesová komunikace.
- iOS: Prověřuje se schopnost aplikace detekovat jailbreak prostředí, zabezpečení lokálního úložiště a správná implementace funkce Keychain.
TIP: Apple vydává aktualizace opravující aktivně zneužívané Zero-Day zranitelnosti
Jak probíhá penetrační test mobilních aplikací
Při penetračním testu mobilní aplikace se postupuje následovně:
- Statická analýza: Zkoumání kódu aplikace bez jejího spuštění.
- Dynamická analýza: Testování chování aplikace během běhu na zařízení.
- Analýza síťové komunikace: Kontrola, jakým způsobem aplikace komunikuje se servery.
- Reverzní inženýrství: Rozebrání aplikace do jednotlivých částí pro detailní analýzu.
- Testování datového úložiště: Ověření, jakým způsobem jsou citlivá data ukládána v zařízení.
Jaké nástroje se používají pro testování mobilních aplikací
Pro testování mobilních aplikací se využívají specializované nástroje:
- MobSF: Mobilní bezpečnostní framework pro statickou i dynamickou analýzu.
- Frida: Nástroj pro dynamickou analýzu a testování zabezpečení.
- Drozer: Specializovaný nástroj pro Android.
- Objection: Univerzální nástroj pro testování iOS i Android aplikací.
TIP: Aktivně zneužívané Zero-Day zranitelnosti ve Firefoxu a Windows
Specializované typy penetračních testů
Kromě testování webových, mobilních, síťových a cloudových prostředí existují i specializované oblasti, které vyžadují odlišný přístup. Patří sem především testy zařízení Internetu věcí (IoT) a testy sociálního inženýrství.
Penetrační testy IoT zařízení
IoT zařízení najdeme dnes všude – od chytrých žárovek v domácnostech až po specializované firemní systémy. Přinášejí však specifická rizika, protože bývají často navržena s minimálním zabezpečením.
Proč jsou IoT zařízení zranitelná
- Mají omezené bezpečnostní mechanismy.
- Mohou sloužit jako vstupní bod do celé sítě.
- Aktualizace softwaru bývají složité nebo nejsou k dispozici.
Co se testuje při penetračním testu IoT
- Fyzická bezpečnost zařízení: Ověření, zda není možné zařízení snadno rozebrat nebo obejít jeho ochrany.
- Komunikační protokoly: Analýza způsobu, jak zařízení komunikuje se sítí, a ověření, zda je komunikace dostatečně zabezpečena.
- Aktualizační mechanismy: Testování, zda lze zařízení bezpečně aktualizovat a bránit se.
- Výchozí přihlašovací údaje: Kontrola, zda zařízení nepoužívá přednastavená hesla, která lze snadno zneužít.
Testy sociálního inženýrství a jejich typy
Sociální inženýrství se zaměřuje na nejslabší článek bezpečnosti – člověka. Testy ověřují, zda zaměstnanci rozpoznají pokusy o manipulaci a zda dodržují stanovené bezpečnostní postupy. Mezi typy testů sociálního inženýrství patří:
- Phishing: Zasílání podvodných e-mailů, které napodobují legitimní komunikaci.
- Vishing: Telefonické pokusy o získání citlivých informací.
- Fyzický průnik: Pokusy o neoprávněný vstup do zabezpečených prostor.
- Baiting: Umístění nakažených USB disků nebo jiných médií na místa, kde je mohou zaměstnanci neúmyslně použít.
TIP: AWS zabavil phishingové domény ruské APT29
Red Team cvičení aneb nejkomplexnější penetrační testování
Red Team cvičení představují nejkomplexnější formu penetračního testování, při které se simuluje reálný útok na organizaci s využitím všech dostupných technik a postupů. Obvykle probíhají v delším časovém horizontu od několika týdnů až po měsíce a kombinují technické, fyzické i psychologické metody.
Často se provádějí bez vědomí většiny zaměstnanců, aby byla reakce organizace co nejautentičtější. Každé cvičení má předem stanovené jasné cíle, například ověření, zda je možné proniknout k citlivým datům nebo narušit klíčové procesy. Výsledkem je realistický obraz toho, jak by organizace obstála při skutečném útoku a jak rychle a efektivně dokáže reagovat.
Jak vybrat správný typ penetračního testu pro vaši organizaci
Každé odvětví, web či aplikace má svá specifika, proto je důležité vybrat správný penetrační test. Podle čeho vybírat?
Posouzení rizik
Prvním krokem je určit, která data nebo systémy jsou pro firmu nejcennější a jaké hrozby by jejich narušení představovalo. Je také nutné zohlednit odvětví, ve kterém působíte, protože některá odvětví podléhají přísným regulatorním požadavkům. Mezi tyto oblasti patří:
- Finanční instituce (PCI DSS)
- Zdravotnictví (HIPAA v USA, GDPR v EU)
- Veřejný sektor (různé národní standardy)
TIP: Slovenský katastr nemovitostí ochromil ransomwarový útok
Rozpočet a čas
Komplexní testování všech systémů je časově i finančně náročné. Pokud není možné otestovat celé prostředí najednou, je vhodné začít u nejrizikovějších částí, využít automatizované skenování a postupně přidávat hloubkové manuální testy.
Kombinování různých typů testů pro maximální bezpečnost
Žádný jednotlivý test nedokáže odhalit všechny slabiny. Nejlepší výsledky přináší kombinace různých metod, které se navzájem doplňují. Díky tomu se bezpečnost prověřuje průběžně, cíleně i komplexně.
Pro organizace začínající s penetračním testováním je vhodné začít s automatizovaným skenováním zranitelností, pokračovat jednoduchými black-box testy webových aplikací a postupně přidávat komplexnější testy. Pokročilé organizace mohou rovnou implementovat komplexní Red Team cvičení.
Kontinuální automatizované skenování
Automatizované testy fungují na pozadí a dokáží rychle zachytit běžné chyby, které se v prostředí objevují každý den. Typicky jde o pravidelné skenování zranitelností, například jednou týdně nebo i každý den, pokud se systém často mění. Automatizace se často integruje přímo do vývojových procesů (tzv. CI/CD pipeline), takže nové verze aplikací se testují ještě před nasazením.
Díky tomu je možné včas odhalit slabinu, než se dostane k uživatelům. Součástí je i monitoring bezpečnostních hrozeb, který sleduje, zda se neobjevily nové zranitelnosti v používaném softwaru.
Periodické manuální testy
Automatizace však nestačí, protože nedokáže odhalit složitější chyby ani chování aplikace v netypických situacích. Proto je důležité pravidelně doplňovat hloubkové manuální penetrační testy, které provádí odborníci. Tyto testy se obvykle zaměřují na kritické systémy, a to každé 3 až 6 měsíců. Provádí se také vždy po významnějších změnách, například při nasazení nové verze aplikace nebo při úpravách infrastruktury.
Do této kategorie spadají i specializované testy, například u mobilních aplikací nebo IoT zařízení, které mají specifické způsoby fungování a potřebují zvláštní přístup.
Roční komplexní hodnocení
Kromě průběžných testů by měla organizace jednou ročně projít i komplexním hodnocením. To zahrnuje Red Team cvičení, při kterém se simuluje skutečný útok kombinující technické, procesní i lidské slabiny. Důležitou součástí jsou i testy sociálního inženýrství, protože i nejlépe zabezpečené systémy mohou selhat, pokud zaměstnanci podlehnou podvodným e-mailům nebo telefonátům.
Výsledkem ročního hodnocení je také přehodnocení celé bezpečnostní strategie a zhodnocení, zda nastavené procesy stále odpovídají aktuálním hrozbám.
Jak začít s penetračním testováním
Na závěr je důležité zdůraznit, že penetrační testy by měly provádět vždy zkušení odborníci. Interní týmy mohou být provozně „slepé“ k určitým slabinám a nemají dostatek nezávislého pohledu. Pokud tedy vaše organizace potřebuje penetrační test, obraťte se na specializovaného dodavatele, který disponuje znalostmi, certifikacemi a potřebnými nástroji.
Díky tomu získáte objektivní výsledky a jasná doporučení, jak zvýšit úroveň bezpečnosti vašich systémů.
Často kladené otázky (FAQ)
Který typ penetračního testu bychom měli provést jako první?
Začněte s hodnocením rizik a identifikací nejkritičtějších systémů. Pokud máte webové aplikace přístupné z internetu, začněte tam. Pokud spravujete komplexní infrastrukturu, zvažte nejprve infrastrukturní test.
Jak často bychom měli provádět penetrační testy?
Pro kritické systémy se doporučuje minimálně jednou ročně a po každé významné změně. Automatizované skenování by mělo probíhat mnohem častěji, ideálně týdně nebo jednou za měsíc.
Může penetrační test narušit naše běžné operace?
Ano, existuje riziko, že některé testy mohou způsobit výpadky nebo zpomalení. Proto je důležité dohodnout s testovacím týmem a provádět rizikové testy mimo špičku nebo v testovacím prostředí.
Můžeme provádět penetrační testy interně, nebo je lepší využít externí firmu?
Obě možnosti mají své výhody. Interní tým lépe zná vaše systémy, ale může být provozně slepý k některým problémům. Externí specialisté přinášejí nezávislý pohled a často širší zkušenosti. Ideální je kombinace obou přístupů.
Jak vybrat správného dodavatele penetračních testů?
Hledejte dodavatele s relevantními certifikacemi, prokazatelnými zkušenostmi ve vašem odvětví, transparentním přístupem k metodice a schopností srozumitelně komunikovat nálezy. Požádejte o anonymizované ukázky reportů a reference od podobných organizací.