Design kyberbezpečnostních testů může mít mnoho různých podob. Aby testy byly účinné, aby efektivně odhalily zranitelnosti a rizika v informačních systémech, je zpravidla zapotřebí, získat informací o testovaném prostředí, určit cíle testů, vybrat vhodnou testovací metodu (či metody), vytvořit testovací plán, provést samotný test, provést analýzu výsledků, případně testy opakovat. Ve skutečnosti těch kroků může být mnohem více 🙂
Sběr informací
Za klíčovou součást plánování kyberbezpečnostních testů považuji komunikaci se zákazníkem (provozovatel, správce… informačního systému), pro něhož testy realizujeme. Při této komunikaci se shromažďují informace o testovaném prostředí, včetně síťové architektury, hardwarové a softwarové konfigurace, provozních procesech a dalších klíčových faktorech, které jsou nezbytné pro správný design a provedení testů, informace důležité pro plánování testů, ale také další informace, které nám umožní zodpovědně provést bezpečnostní test.
Komunikace se zákazníkem (ať externím či interním) může být důležitá také pro získání souhlasu s testy a pro koordinaci s ostatními zainteresovanými stranami, jako jsou například bezpečnostní týmy a týmy odpovědné za správu informačního systému.
Na základě komunikace se zákazníkem by se nám mělo podařit získat informace o cílech testování – co zákazník chce z testování získat a co očekává, že mu to poskytne. Například chce naplnit literu zákona (či vyhlášky) o kyberbezpečnosti, chce zjistit, jak dobře je jeho informační systém chráněn před útoky hackerů, chce zjistit, jak snadno je možné získat neoprávněný přístup k jeho aplikacím, chce ověřit, jak dobře se organizace připravila na potenciální kybernetické útoky atd.
Před samotným testováním je důležité získat co nejvíce informací o testovaném prostředí, jako jsou topologie sítě, konfigurace serverů, firewally, antivirové programy, zainteresované strany atd. Tyto informace vám umožní lépe porozumět prostředí a identifikovat potenciální zranitelnosti.
Zároveň je ale důležité si uvědomit, že komunikace se zákazníkem je sice důležitým, ale také jedním z mnoha možných způsobů získání informací, které mohou být použity při plánování a provádění kyberbezpečnostních testů (některé metody lze koncipovat také jako součást samotného testování):
- Analýza dokumentace: Dokumentace, jako jsou manuály, schémata a popisy procesů atd. mohou nabídnout užitečné informace o testovaném prostředí. Analýza dokumentace může poskytnout informace o architektuře sítě, používaných technologiích a dalších klíčových prvcích.
- Skenování sítě: Skenování sítě může poskytnout informace o dostupných zařízeních, službách a portech. Skenování může být prováděno pomocí specializovaných nástrojů, jako je např. Nmap.
- Fingerprinting: Fingerprinting se používá k identifikaci operačního systému, webového serveru a dalších komponentů v síti. Tento postup může být také prováděn pomocí specializovaných nástrojů, jako je např. Netcraft nebo Wappalyzer.
- Analýza aplikace: Analýza aplikace může poskytnout informace o tom, jak aplikace komunikuje s okolím, jaké technologie a protokoly používá, jaké jsou používány autentizační mechanismy a další.
- Sociální inženýrství: Sociální inženýrství se používá ke získání informací o lidech, procesech a technologiích prostřednictvím manipulace s lidmi. Sociální inženýrství může zahrnovat phishing, vishing, dumpster diving a další techniky.
- Atd.
Testovaným prostředím nemyslíme jen samotný informační systém, který má být předmětem testování, ale i vše, co s ním souvisí.
Určení cílů testu
Zvažme cíle testu, tj. co chceme testovat. Například můžeme chtít testovat zabezpečení sítě, webové aplikace, mobilní aplikace nebo další systémy. Měli bychom také zvažovat, jaké hrozby, zranitelnosti… chceme testovat či jaké typy útoků chceme simulovat.
Cíle kyberbezpečnostních testů se mohou lišit v závislosti na prostředí, které se testuje a na tom, co chceme otestovat. Pokud hovoříme o cíli testu, pak se nemusí jednat vyloženě jen o typ informačního systému. Může se jednat také o cíle v závislosti na konkrétních potřebách organizace a prostředí, které se testuje. Zde jsou některé obecné cíle kyberbezpečnostních testů:
- Identifikace zranitelností: Hlavním cílem mnoha kyberbezpečnostních testů je identifikovat zranitelnosti v systémech a sítích, aby se mohly odstranit a minimalizovat rizika pro organizaci.
- Odhalení slabých míst v zabezpečení: Testování může pomoci odhalit slabá místa v bezpečnostních opatřeních, jako je špatně konfigurovaný firewall, neaktualizovaný softwarem nedostatečné šifrování…
- Posouzení efektivity zabezpečení: Kyberbezpečnostní testování může také poskytnout posouzení toho, jak účinná jsou stávající bezpečnostní opatření při ochraně před útoky.
- Otestování reakce na útoky: Testování může také sloužit k otestování reakce organizace na útoky a zjištění, zda je organizace připravena reagovat na bezpečnostní incidenty…
- Zlepšení povědomí o bezpečnosti: Testování může pomoci zvýšit povědomí o bezpečnosti v organizaci a identifikovat oblasti, které vyžadují další školení.
- Dodržování regulací a standardů: Testování může také pomoci organizaci zajistit, jestli dodržuje platné bezpečnostní regulace a standardy.
- Atd.
Výběr testovacích metod
Existuje mnoho různých testovacích metod, které mohou být použity k testování bezpečnosti systémů a sítí. Tyto metody zahrnují penetrace testování, testování zranitelností, testování sociálním inženýrstvím a další. Zvažujme, které metody jsou pro dané prostředí nejvhodnější a účinné. Mezi obvyklé testovací metody, které lze kombinovat a přizpůsobit konkrétním potřebám organizace, cílům kyberbezpečnostních testů či různým specifickým situacím, patří:
- Penetrační testování (pen testy): Tato metoda zahrnuje aktivní útoky na testovaný systém s cílem identifikovat bezpečnostní chyby a zjistit, jak snadno lze proniknout do systému. Jsou to kyberbezpečnostní testy, které mají za úkol simulovat útoky na informační systém a ověřit, zda je systém chráněn dostatečně proti možným útokům. Pen testy se provádějí za účelem identifikace bezpečnostních chyb, zranitelností a nedostatků, které by mohly být využity k prolomení bezpečnosti systému. Penetrační testování může zahrnovat manuální i automatizované testování a obvykle zahrnuje pokusy o využití identifikovaných zranitelností a nedostatků v informačním systému.
- Testování zranitelností: Tato metoda se zaměřuje na identifikaci zranitelností v systému a aplikacích. Testování zranitelností se zaměřuje na identifikaci zranitelností a nedostatků v informačním systému, ale nezahrnuje pokusy o využití těchto zranitelností. Testování zranitelností se provádí buď manuálně nebo pomocí automatizovaných nástrojů a slouží k identifikaci a dokumentaci zranitelností a nedostatků v informačním systému. Cílem testování zranitelností je poskytnout informace, které mají pomoci správcům systému při zlepšování ochrany informačního systému.
- Testování sociálním inženýrstvím: Touto metodou testujeme, jak dobře jsou uživatelé v systému chráněni před útoky založenými na sociálním inženýrství. Prostřednictvím manipulace s lidmi se testuje, jak snadno lze uživatele systému přesvědčit, aby poskytli například citlivé informace.
- Testování odolnosti proti útokům: Tato metoda se zaměřuje na testování schopnosti systému odolat útokům. Testuje se, jak dobře systém reaguje na útoky a jak snadno je možné útoky odvrátit.
- Testování autentizace a autorizace: Tato metoda testuje, jak dobře je systém schopen ověřit a autorizovat uživatele. Testuje se, jak snadno lze získat neoprávněný přístup k systému.
- Red teaming: Red teaming je metoda kybernetického testování, při které tým etických hackerů (red team) simuluje útočníka a aktivně se snaží prolomit bezpečnostní obranu organizace. Cílem red teamingu je identifikovat slabiny v systému, procesech a lidech, které by mohly být zneužity útočníkem, a následně poskytnout doporučení na zlepšení ochrany a prevenci před útoky. Red team se vyznačuje tím, že nepracuje jen na základě předem daného scénáře, ale využívá kreativitu, strategii a improvizaci při simulaci útoku. Tým se snaží nalézt způsoby, jak se dostat do systému organizace, získat citlivé informace a vyhnout se odhalení.
- Testování Business Continuity: Tato metoda proces testování plánu Business Continuity (BC), což je soubor postupů, procesů a technologií, které mají zajistit, že organizace bude schopna pokračovat v kritických činnostech v případě neočekávaného výpadku, havárie, katastrofy nebo jiného typu incidentu. Testuje se, jak dobře je organizace schopna zvládat krizové situace a jak rychle dokáže obnovit provoz v případě výpadku. Existují různé metody testování BC, které mohou být použity k ověření, zda je plán BC účinný a zda splňuje potřeby organizace. Tyto metody mohou zahrnovat například: plánování scénářů, testování úspěšnosti obnovy, plánování simulovaných výpadků, testování výkonu a odolnosti.
- Testování bezpečnostních politik a postupů: Tato metoda se zaměřuje na to, zda bezpečnostní politiky a postupy organizace jsou dostatečně účinné a zda plní svůj účel.
- Testování fyzické bezpečnosti: Tato metoda se zaměřuje na testování fyzické bezpečnosti prostor, kde jsou například uloženy citlivé informace nebo provozovány závažné systémy. Zaměřuje na testování, jak dobře jsou fyzické prvky organizace, jako jsou dveře, okna a kamerové systémy, chráněny proti neoprávněnému vstupu nebo sabotáži. Testuje se, jak dobře jsou fyzické prvky organizace chráněny a jak snadno lze získat přístup do prostor, které by měly být bezpečné.
- Testování bezpečnosti mobilních zařízení: Testování bezpečnosti mobilních zařízení je proces, kterým se ověřuje, zda jsou mobilní zařízení bezpečná před různými hrozbami, jako jsou kybernetické útoky, malware a ztráty dat. Zde je několik příkladů subtestů, které mohou být zahrnuty do testování bezpečnosti mobilních zařízení: hodnocení samotného zařízení, hodnocení aplikací, hodnocení sítě, hodnocení uživatelských návyků, hodnocení přístupu k datům, hodnocení správy zařízení.
- Testování bezpečnosti webových aplikací: Tato metoda se zaměřuje na testování bezpečnosti webových aplikací, jako jsou e-shopy, internetové bankovnictví, sociální sítě atd. Jedná se o proces, při kterém jsou zkoumány a testovány různé aspekty bezpečnosti webových aplikací, aby se identifikovaly potenciální bezpečnostní hrozby a zranitelnosti.
- Testování odolnosti proti DDoS útokům: Tato metoda se zaměřuje na testování, jak dobře je organizace schopna odolat distribuovaným útokům odmítnutí služby (DDoS). Testuje se, jak dobře jsou chráněny sítě a systémy před DDoS útoky a jak rychle organizace dokáže zareagovat na takový útok a obnovit normální provoz.
- Testování bezpečnosti cloudu: Testování bezpečnosti cloudu se zaměřuje na ověření bezpečnosti cloudu jako celku, včetně infrastruktury, aplikací a dat, která jsou uložena v cloudu. Mezi klíčové prvky testování bezpečnosti cloudu patří: identifikace zranitelností, testování identity a přístupových práv, testování zabezpečení sítě, testování zabezpečení aplikací, testování zabezpečení dat, testování zálohování a obnovy dat atd.
- Testování bezpečnosti IoT zařízení (Internet of Things): Tato metoda se zaměřuje na ověření bezpečnosti těchto zařízení a jejich sítí. Mezi klíčové prvky testování bezpečnosti IoT zařízení patří: identifikace zranitelností, testování autentizace, testování šifrování, testování zabezpečení sítě, testování zabezpečení aplikací, testování fyzické bezpečnosti, testování zabezpečení dat, testování odolnosti proti útokům atd.
- Testování bezpečnosti softwarových aktualizací: Toto testování je důležitou součástí procesu aktualizace softwaru a zahrnuje soubor postupů a technik pro ověření, že aktualizace softwaru neohrozí bezpečnost systému nebo uživatelských dat. Takové testování zpravidla zahrnuje několik kroků: identifikace potenciálních bezpečnostních hrozeb, testování bezpečnostních scénářů, testování škálovatelnosti, testování kompatibility, testování na bezpečnostní chyby, testování zpětné kompatibility, testování obnovy atd.
- Testování bezpečnosti přístupu k datům: Tato metoda zahrnuje soubor postupů a technik, které mají za cíl ověřit, že data jsou správně chráněna před neoprávněným přístupem. To zpravidla zahrnuje několik obecných kroků, které by měly být součástí testování bezpečnosti přístupu k datům: identifikace přístupových práv, testování autentizace a autorizace, testování ochrany dat, testování logování atd.
- Srovnávací analýza ve smyslu benchmarkingu, jako je například CIS benchmarking, je další metoda kyberbezpečnostních testů. Například CIS benchmarking je soubor doporučení pro konfiguraci různých technologií v souladu s bezpečnostními standardy, které jsou vyvíjeny společností CIS (Center for Internet Security). CIS benchmarking definuje bezpečnostní standardy pro různé technologie a systémy, jako jsou operační systémy, webové servery, relační databáze a další. Tato doporučení stanovují konkrétní bezpečnostní konfigurace a nastavení pro jednotlivé technologie a systémy, které mají minimalizovat rizika zabezpečení.
- Atd.
Jak je vidět, testovacích metod je celá řada – ale je jich mnohem více, uvedeným výčet možných metody kyberbezpečnostního testování ani zdaleka nekončí! Mnohé metody se prolínají natolik, že na první pohled stěží naleznete rozdíl. Některé metody lze zařadit do charakteristických skupin. Každá z metod má své výhody a omezení, a proto by měly být použity s rozmyslem a v souladu s cíli a požadavky organizace. Je důležité před zahájením kyberbezpečnostního testování dobře stanovit konkrétní metodu, kombinace metod či vytvořit speciální metodu pro specifický případ.
Vytvoření plánu testu
Na základě vašich cílů a vybraných testovacích metod vytvořte plán testu. Tento plán by měl zahrnovat seznam testů, které budou provedeny, a postup, jakým budou testy prováděny.
Testování
Po dokončení plánu testu a přípravě prostředí můžete začít s testováním. V průběhu testování byste měli sledovat, jaké zranitelnosti a rizika jsou identifikovány, a zaznamenávat výsledky testů.
Analýza výsledků
Po dokončení testování analyzujte výsledky a připravte zprávu o zranitelnostech a rizicích, které byly identifikovány. Tato zpráva by měla obsahovat informace o identifikovaných zranitelnostech a rizicích a doporučení pro jejich odstranění.
Opakování
Kyberbezpečnostní testování by mělo být pravidelnou činností, aby se zajistilo, že bezpečnostní opatření zůstanou účinná vůči novým hrozbám a zranitelnostem. Opakované testování by mělo zahrnovat také ověřování, zda byla doporučení na základě předchozích testů řádně implementována a zdali stále platí.
Celkově je důležité, aby kyberbezpečnostní testování bylo plánováno a prováděno systematicky a pravidelně, aby se minimalizovala rizika pro organizaci a její uživatele.