Penetrační testy představují skvělý nástroj pro vaši firmu, pokud je vaším cílem prověřit funkčnost vašich bezpečnostních opatření.
Simulací reálných útoků váš IT tým dokáže identifikovat slabá místa v systémech, využít je a následně získat znalosti potřebné k nápravě konkrétních oblastí zabezpečení, které vás znepokojují. Pro podrobný přehled jednotlivých kroků, které jsou s penetračním testováním spojené, si prohlédněte náš průvodce fázemi penetračního testování.
Penetrační testování, ať už interní či externí, simuluje různé vektory útoku. Při externím útoku se simuluje útočník z vnějšího prostředí, který se snaží získat informace, jež jsou dostupné i cizím osobám. Interní test probíhá po testu externím a jeho cílem je odhalit, čeho může útočník dosáhnout s interním přístupem do systému.
V závislosti na cílech penetračního testu může mít tester určité informace o testovaném prostředí (nebo nemusí). Pokud tester zná systém, jedná se o takzvaný white box test. V ostatních případech se může penetrační test zaměřit na aplikace, síťové služby, sociální inženýrství, bezdrátové připojení, nebo dokonce fyzické zabezpečení.
Ať už se rozhodnete pro jakýkoliv typ penetračního testu, dobrý test by měl vždy odhalit slabá místa a napomoci k posílení zranitelných míst vašeho systému. Nicméně, výběr správného testu pro vaši organizaci může vyžadovat čas a úsilí, zvláště když je na výběr z tolika různých možností.
Tento článek shrnuje různé typy penetračního testování, popisuje, co každý z nich zahrnuje a v jakých situacích je nejlepší konkrétní typ použít. Na konci se také dozvíte několik rad, jak vybrat ten nejvhodnější penetrační test pro potřeby vaší firmy.
Penetrační testování webových aplikací
Zdroj: synopsys.com
Tento typ testu si klade za cíl odhalit zranitelnosti webových stránek a aplikací, jako jsou systémy pro online prodej, systémy pro správu vztahů se zákazníky (CRM) a systémy pro správu obsahu (CMS).
Analýzou zabezpečení aplikace, jejích funkcí a základní logiky tento test odhaluje způsoby, jak eliminovat narušení, finanční ztráty a krádeže identity. Před samotným testem je tester vybaven informacemi o testovaných aplikacích, vstupními poli, která se mají prověřit, a záznamem statických a dynamických stránek pro snadné vyhodnocení nedostatků v designu a vývoji.
Mezi běžné bezpečnostní chyby webových aplikací patří cross-site scripting (XSS), SQL injection a nefunkční autentizace. Pro hlubší pochopení problematiky zabezpečení webových aplikací doporučujeme nahlédnout do projektu Open Web Application Security Project (OWASP). Tento projekt poskytuje informace o četnosti a závažnosti webových chyb získané z analýzy dat z tisíců aplikací.
Pokud vaše firma provozuje webové stránky nebo aplikace, je vhodné zvážit provedení penetračních testů webových aplikací. V dnešní době jsou webové aplikace klíčové pro ukládání a přenos informací. Pro takové provozní modely je testování webových aplikací nezbytné. Statistické údaje naznačují, že po pandemii Covid-19 došlo k nárůstu kyberkriminality.
Testování penetrace sítě
Zdroj: synopsys.com
Testování penetrace sítě jsou bezpečnostní audity zaměřené na síťovou infrastrukturu, ať už používáte lokální síť, nebo cloud. Pomocí různých kontrol, jako jsou zranitelnosti šifrování, chybějící bezpečnostní záplaty a nezabezpečené konfigurace, tyto testy chrání bezpečnost kritických firemních dat.
I v tomto případě může test probíhat interně nebo externě. Pokud tester pochází z externího prostředí, nemá o systému žádné předchozí informace a využívá internet ke získání informací, které by hackeři použili při útocích. Pokud je test interní, zaměřuje se na získání přístupu k vaší interní síti. Tester může například využít zranitelnosti v systémech připojených k internetu a pokusit se získat přístup k informacím nebo narušit provoz.
Po provedení testy penetrace sítě chrání vaši firmu před běžnými síťovými útoky, jako je nesprávná konfigurace a obcházení firewallu, útoky na směrovače, útoky na úrovni systému názvů domén (DNS), útoky na databáze a útoky na proxy servery. Testování sítě je pro vás vhodné, pokud vaše firma přenáší velké objemy dat. Vzhledem ke klíčovému významu síťových služeb pro chod firmy, je vhodné provádět testování sítě alespoň jednou ročně.
Penetrační testování mobilních aplikací
V případě mobilních aplikací se penetrační testy zaměřují na testování aplikací v různých operačních systémech (Android a iOS) a na jejich interakci s API. Kvalitní testy dekompilují zdrojový kód aplikace, aby získaly co nejvíce informací.
V tomto případě je kladen důraz na architekturu aplikace – dekompilaci kódu před manuálním testováním za účelem odhalení nebezpečného návrhu a síťové komunikace – aby bylo prozkoumáno, jak se data pohybují, jak se ukládají a jaká je ochrana osobních údajů. Cílem je zajištění souladu, protože většina aplikací ukládá citlivá data, jako jsou hesla a API klíče uložené v souborech string.xml, a ověřování a správu relací – kde testy musí monitorovat procesy správy relací, jako je ukončení relace, platnost tokenu, aktualizace hesla a nesprávná konfigurace při vícefaktorovém ověřování.
Pokud se vaše firma intenzivně věnuje vývoji mobilních aplikací, jako jsou hry, finanční služby nebo nákupní aplikace, je vhodné zvážit provedení penetračních testů před uvedením produktu pro veřejnost nebo před vydáním nových aktualizací.
Bezdrátové penetrační testování
Testování bezdrátového připojení se zaměřuje na bezdrátovou síť vaší organizace a zařízení, která jsou k ní připojena. Mezi taková zařízení patří chytré telefony, tablety, počítače a další zařízení internetu věcí (IoT).
Penetrační testy vám umožní posoudit úroveň zabezpečení bezdrátových systémů, odhalovat a zneužívat zranitelnosti, získat přehled o hrozbách spojených s jednotlivými přístupovými body a vytvářet strategie pro řešení zranitelností založené na datech.
Před testováním je potřeba definovat rozsah testu vytvořením hostovaných a bezdrátových sítí a identifikátorů sady služeb (SSID), ke kterým budete přistupovat. I když je tento proces spíše založen na hardwaru, lze jej provést i pomocí softwarových nástrojů v operačních systémech s otevřeným zdrojovým kódem, jako je Kali Linux. Pro dobrou bezpečnostní kulturu je vhodné, aby firmy prováděly testování bezdrátového připojení dvakrát ročně.
Testování penetrace API
Testování API (někdy spojené s mikroslužbami) se používá k odhalení slabin v API. V současnosti získává na popularitě, protože mnoho společností umožňuje třetím stranám přístup k některým svým datům a službám.
Testování ověřuje, že GraphQL, REST, webové služby a další API jsou zabezpečené a že jsou kontrolovány na známé zranitelnosti. Proces testování API je podobný testování webových aplikací. To umožňuje používat podobné nástroje. Mohou se však objevit i nové nástroje, jako je Postman a Swagger.
Pokud chcete prozkoumat více, zde je náš kontrolní seznam nástrojů pro vývoj a testování API. Tyto nástroje často pracují na základě schématu API a následně jsou modelovány požadavky na rámec API a spouštěny vůči produktu.
Pokud vaše firma používá webové nebo mobilní aplikace s backendem API, provádění častých testů API může pomoci odhalit zranitelnosti nebo špatný návrh kódu, které by mohly sloužit útočníkům jako vstupní bod.
Penetrační testování sociálního inženýrství
Na rozdíl od jiných technik, které se zaměřují na technologické nedostatky, sociální inženýrství využívá lidskou psychologii, aby narušilo zabezpečení vaší organizace.
Testy jsou užitečné, protože odhalují slabá místa, měří povědomí o bezpečnosti, zvyšují informovanost zaměstnanců, snižují rizika, zlepšují reakci na dopady, zajišťují soulad s předpisy, budují důvěru zainteresovaných stran a zajišťují efektivní řízení rizik z hlediska nákladů.
Mezi nejběžnější metody útoku patří pretexting, phishing, fyzické útoky (media dropping) a tailgating. Testování sociálního inženýrství vychází z informací shromážděných při průzkumu. V tomto případě se využívají open-source zdroje informací.
Tester může vytvořit přesný obraz cíle a přizpůsobit útok příslušným metodám. I když se nejedná o tak běžné testy jako testy webových aplikací, sociální inženýrství může být skvělým způsobem, jak odhalit nedostatky ve vašich provozních modelech.
Průnikové testování fyzické bezpečnosti
Testování fyzické bezpečnosti spočívá v získání přístupu do fyzického prostoru budovy za účelem ověření účinnosti stávajících ochranných opatření a odhalení zranitelností. Na rozdíl od jiných penetračních testů se tento test zaměřuje na fyzická bezpečnostní opatření, jako jsou poplašné systémy, systémy pro kontrolu přístupu a různé sekce s citlivými informacemi.
K provedení tohoto testu lze využít techniky jako je fyzické obcházení, tailgating a sociální inženýrství. Výsledky testu se poté použijí k nápravě zranitelností a posílení stávajících bezpečnostních opatření.
Pokud má vaše firma fyzické prostory, například pro ukládání dat a dalších citlivých informací, je vhodné provést penetrační testy pro posílení zabezpečení. Z tohoto testování mohou profitovat například banky a finanční instituce, datová centra, zařízení veřejných služeb, nemocnice a zdravotnická zařízení, maloobchodní prodejny a nákupní centra, výrobní závody a organizace s různými certifikacemi.
Testování penetrace do cloudu
Testy penetrace cloudu zahrnují identifikaci a využití zranitelností v aplikacích a infrastruktuře, například SaaS, v cloudových řešeních jako je Microsoft Azure, Amazon Web Services (AWS) a Google Cloud Platform.
Na rozdíl od jiných testů vyžaduje penetrace cloudu hluboké pochopení cloudových služeb. Například zranitelnost SSRF v aplikacích AWS by mohla ohrozit celou vaši cloudovou infrastrukturu.
U jiných cloudových řešení, včetně Azure AD a AWS Cognito, se můžete setkat s jejich specifickými problémy a nesprávnými konfiguracemi. Mezi běžné chyby zabezpečení cloudu patří nezabezpečená API, slabá přihlašovací údaje, nesprávná konfigurace serveru, zastaralý software a nezabezpečené postupy kódování.
Penetrační testování cloudu může zvýšit zabezpečení cloudu, pokud vaše firma poskytuje cloudové služby. Vzhledem k tomu, že většina poskytovatelů cloudu volí model sdílené zodpovědnosti, mohou cloudové testy řešit zranitelnosti platformy, sítí a úložišť dat.
Testování penetrace kontejneru
Kontejnery jsou známé pro své oddělení jednotlivých procesů v rámci operačního systému. Umožňují spouštět mikroslužby, softwarové procesy a dokonce i velké aplikace. Kromě pohledu na kontejnery z pohledu útočníka vám testování kontejnerů umožní nasadit vlastní testovací prostředí.
Při skenování zranitelností existují dvě možnosti. Statická analýza vyhledává zranitelnosti v obrazech kontejnerů. Dynamická analýza zkoumá chování kontejneru za běhu. Pro lepší výsledky je nejvhodnější provést obě analýzy.
Zranitelnosti kontejnerů se mohou týkat aplikací, konfigurace, sítě a obrazu operačního systému. Pokud se vaše DevOps aktivity točí kolem Dockeru, pro penetrační testování si můžete své kontejnery přizpůsobit, obohatit je o potřebné nástroje, snížit zranitelnosti a zefektivnit celkovou funkčnost.
Testování penetrace databáze
Databáze mají v podnicích nezastupitelnou roli. Databáze, které uchovávají citlivá data, jako jsou platební údaje, informace o zákaznících a data o produktech a cenách, představují pro firmy riziko, pokud jsou prolomeny. Pro zajištění dostatečné bezpečnosti se provádějí testy před uvedením nové databáze do provozu a také pravidelně u stávajících databází.
Testy databáze simulují pokusy o přístup k databázi z pohledu útočníka a pomocí ověřených průmyslových postupů vás provedou tím, jak zvládat skutečné útoky.
Mezi běžné databázové hrozby patří SQL injection, neomezená oprávnění, špatné auditní záznamy, odhalené zálohy, nesprávná konfigurace, odepření služby (DoS) a špatná správa dat. Testy odhalí slabá místa ve vaší databázi a zajistí, že veškeré citlivé informace jsou chráněny před neoprávněnými uživateli. Proto by firmy měly investovat do zabezpečení databází.
IoT Penetrační testování
Internet věcí představuje síť webových zařízení, která spolu komunikují a vyměňují si data prostřednictvím internetu. Mezi tato zařízení patří fyzické objekty, vozidla a budovy, které jsou vybaveny softwarem, senzory, elektronikou a síťovými připojeními.
Při penetračním testování internetu věcí se zaměřujeme na průzkum sítě IoT a zařízení s cílem odhalit nedostatky. Testy zabezpečení navíc přesahují rámec zařízení a zahrnují jejich komunikační síť, například platformy cloud computingu.
Mezi nejčastější bezpečnostní chyby v zařízeních IoT patří nešifrovaná data, nezabezpečený firmware, slabá hesla a špatná autentizace/kontrola přístupu. Vzhledem k tomu, že organizace používají stále více zařízení IoT, audity IoT posilují správu aktiv, výkonu a rizik a pomáhají splnit požadavky na dodržování předpisů.
Test penetrace bílé krabice
Při testování bílé krabice máte hluboké znalosti o cílovém systému, včetně architektury aplikace, zdrojových kódů, přihlašovacích údajů, whitelistingu, různých rolí uživatelů a dokumentace.
Tento přístup může ušetřit náklady. Bílá krabice se osvědčuje u složitých systémů vyžadujících vysokou úroveň zabezpečení, jako jsou finanční instituce a státní správa. Díky kompletní analýze kódu budete schopni odhalit interní chyby.
Pokud čelíte bezpečnostnímu incidentu, testování bílé krabice je nejvhodnější pro ověření zabezpečení aplikací, stavu sítě, fyzického zabezpečení a bezdrátového zabezpečení. V jiných případech je vhodné zvážit testování bílé krabice v raných fázích vývoje softwaru a před zahájením produkce.
Test penetrace do černé skříňky
Při testování černé skříňky nemáte o systému žádné informace a postupujete jako skutečný útočník. Protože nemáte přístup ke zdrojovému kódu nebo architektuře, provádíte testování z vnějšku a využíváte k tomu síť. To znamená, že test spočívá v dynamické analýze systémů a spouštění programů v cílové síti.
Pro úspěch je nutná dobrá znalost automatizovaných skenovacích nástrojů a manuálních metod penetračního testování. Budete také muset na základě svých pozorování sestavit cílovou mapu. Jedná se o rychlý způsob provádění testů a čas, který zabere, závisí na vaší schopnosti najít a využít zranitelnosti. Pokud se však nepodaří prolomit systém, zranitelnosti zůstanou neodhaleny.
I když se jedná o jeden z nejnáročnějších testů, nabízí nejlepší způsob, jak posoudit celkovou bezpečnost vašeho systému. Někdy se mu říká metoda „pokus omyl“. Nicméně, vyžaduje vysokou úroveň technických znalostí.
Test červeného týmu
Testování červeného týmu je podobné penetračnímu testování. Jde však ještě dále, má podobu reálného útoku a nemá žádná časová omezení. Při tomto testování používáte nástroje, taktiky a techniky používané reálnými útočníky k získání přístupu k cílovému systému nebo datům.
Všechny ostatní penetrační testy se zaměřují na odhalení zranitelností. Testy červeného týmu však hodnotí schopnost obránců detekovat hrozby a reagovat na ně. Detekce může být založena na indikátorech narušení v monitorovacích systémech, testech fyzické bezpečnosti, nebo dokonce na sociálním inženýrství. Testy červeného týmu lze považovat za rozsáhlejší než penetrační testy.
Na druhou stranu testy červeného týmu nenabízejí tak široký záběr jako penetrační testy. Zaměřují se na přístup k systému nebo datům. Jakmile je dosaženo cíle, nehledají se další slabiny. Penetrační testy naproti tomu identifikují všechny zranitelnosti.
Výběr správného testu penetrace
Pro výběr správného penetračního testu pro vaši organizaci je důležité, abyste dobře znali všechny existující modely. S těmito znalostmi můžete vaši organizaci efektivně spojit s testem, který nejlépe odpovídá vašemu provoznímu modelu.
Pokud provozujete webové aplikace, je nejvhodnější provést testy webových aplikací. Pokud nabízíte vývoj API a backendu, testování API je dobrou volbou. A podobně, pokud jste poskytovatel cloudových služeb, jsou pro vás vhodné cloudové testy.
Výše uvedený seznam by měl být dobrým výchozím bodem. Měl by vám pomoci pochopit rozdíly mezi jednotlivými penetračními testy, seznámit vás s nimi a doporučit vám nejvhodnější použití pro každý z nich. Prohlubujte své znalosti o těchto testech i dalších.
Dále si můžete prohlédnout prémiový software pro penetrační testování webových aplikací.