Penetrační testy – Etický hacking – Sociální inženýrství
Základní typy pen-testů
1) Test infrastruktury
- zranitelností operačních systémů a aplikací, které představují riziko (kompromitace systému, neautorizovaný přístup k datům, DoS),
- chybné konfigurace a využití nedoporučovaných protokolů,
- revizi architektury.
- Je cílen např. na logiku webové aplikace, popř. na logiku softwaru na backendu (databázový server, LDAP služba, přístup k file systému).
- Penetrační test webových aplikací je zaměřen primárně na zranitelnosti definované v „OWASP Top 10“ a cílem je nalezení a ověření takových zranitelností na zvolené webové aplikaci.
3) Testy mobilních zařízení
Cílem nabízených služeb je provedení bezpečnostních testů mobilních zařízení s následnými návrhy efektivních ochranných opatření.
Bezpečnostní testy mobilních zařízení lze provést na několika úrovních:
- Analýza zranitelností používaných zařízení – ukáže, čeho může útočník dosáhnout při reálném útoku a obecné zranitelnosti týkající se konkrétního operačního systému a instalovaných aplikací.
- Fyzické testy mobilních zařízení – testuje se nastavení bezpečnostních politik vynucených v zařízení a identifikují se slabiny s návrhy způsobu jejich odstranění.
- Rozšíření testovacích služeb – je možno objednat testování zranitelností při připojení k bezdrátovým sítím, phishing, vnucení instalace speciálního mallware, připojení k podvrženým AP či například pokus o zneužití samotného MDM/EMM (Mobile Device Management, Enterprise Mobility Management).
Metodika penetračního testování
Metodika je totožná pro infrastrukturu i aplikační prostředí. Liší se použité nástroje a postupy v jednotlivých krocích. Zásadní rozdíl pro průběh celého penetračního testování stanovuje míra spolupráce objednatele při poskytování informací.
Podle množství informací, které objednatel poskytne, se následně testy dělí na dva typy:
1) Black-Box Testing
- Objednatel neposkytne žádné nebo velmi omezené informace a penetrační testování tak simuluje útočníka bez jakékoliv znalosti systému.
- Výhodou je věrná simulace externího útočníka, nevýhodou potom vyšší pravděpodobnost nenalezení (opomenutí) některého z možných cílů testování.
2) White-Box Testing
- Objednatel poskytne dostatek podkladů, které mohou během testování sloužit jako zdroj informací o cílech testování.
- Zároveň tyto podklady mohou sloužit k oponentuře použité topologie z bezpečnostního pohledu.
Fáze penetračního testování
1) Průzkum – Detailní naplánování bezpečnostního testu
Během této fáze jsou připravovány podklady pro samotné testování a pasivní analýza datových toků v segmentu sítě, kde bude penetrační test probíhat. V případě White-Box Testingu budou bohatým informačním zdrojem podklady od objednatele. Vždy budou využity veřejně dostupné informace a další nástroje (manuální nebo semiautomatické) pro získání dodatečných podkladů. Na základě získaných informací jsou zmapovány cíle pro následnou fázi testování. Použité nástroje jsou vybírány tak, aby byly maximálně efektivní pro jednotlivé fáze penetračního testu. Jsou kombinovány komerční i open-source nástroje tak, aby prováděné testy vedly k odhalení problémů, ale zároveň je kladen důraz na rychlost provádění testů a tím i celkové snížení nákladů.
- Životní cyklus projektu – bez kvalitní správy nalezených cílů, zranitelností a provedených testů dochází během penetračního testu často zbytečně k opakujícím se úkonům a zároveň bývají opomenuty některé cíle nebo podstatné testy.
- Mapování cílů – U webových aplikací jsou kromě klasického procházení struktury vyhledávány i podstránky a formuláře, na které nevedou veřejné odkazy. Během mapování cílů pro testování webové aplikace jsou sbírána a vyhodnocována i data z dokumentů (vč. metadat) hostovaných zkoumanou webovou aplikací.
- Vyhledávání zranitelností – Zranitelnosti jsou vyhledávány více způsoby, od plně automatických nástrojů (výhodou je otestování širokého spektra vstupů za velmi krátký čas) po manuální útoky (převážně na webové aplikace), kdy jsou veškerá odesílaná data ručně modifikována, aby byla odhalena nebo potvrzena konkrétní zranitelnost s maximální přesností.
2. Testování – Řízení (koordinace) a provedení vlastního bezpečnostního testování
Během testování jsou postupně vybírány cíle, které penetrační tester podrobuje zkoumání za pomoci různých nástrojů (automatických, semiautomatických a manuálních). Pokud je nalezeno chování, které by mohlo ukazovat na přítomnost zranitelnosti, je následně provedena série testů, která má za úkol ověřit možnost jejího zneužití. Při ověřování zranitelností je kladen velký důraz na to, aby nebyla ohrožena stabilita služby nebo integrita a důvěrnost dat (např.: pokud je objevena zranitelnost, která umožňuje útočníkovi získat uživatelské jméno a heslo, bude toto demonstrováno pouze na uživatelském jméně a heslo nebude zahrnuto v žádném z výstupů testování). Během testování může dojít k objevení dodatečných cílů, které nebyly zmapovány během průzkumné fáze. Ty jsou do testování dodatečně zahrnuty. Po vyčerpání a zdokumentování všech cílů je testování ukončeno.
3. Reportování výsledků
Report penetračního testu obsahuje zpravidla tři typy informací:
- Manažerské shrnutí – podává základní přehled o průběhu testu, vyhodnocení úrovně zabezpečení testovaného objektu a obecná doporučení pro zvýšení úrovně zabezpečení. Přehledně mapuje nejrizikovější oblasti.
- Technický popis nálezů – detailní popis zranitelností a potenciálně nebezpečných konfigurací kategorizovaný podle nebezpečnosti. Součástí je informace o tom, kde se zranitelnost vyskytuje, jak ji zneužít a co může útočník zneužitím zranitelnosti získat.
- Navrhovaná opatření – opatření se týkají vždy konkrétního nálezu, v reportu jsou navrženy konkrétní série kroků pro odstranění dané zranitelnosti, případně snížení pravděpodobnosti jejího zneužití (např. způsob sanace vstupů webové aplikace, nutná verze softwaru nebo softwarového modulu).
Cíle penetračního testování |
|
Sociální inženýrství |
|
Samostatným projektem nebo doplňkem mohou být penetrační testy využívající technik sociálního inženýrství, jako jsou:
|