Penetrační testování
Penetrační testy
Mnoho lidí o penetračních testech zasvěceně hovoří, mnoho firem je nabízí, ale málo jich je vidělo a ještě méně jich je skutečně dokáže realizovat. A jen naprosté minimum i z těch, kdo je dokáží i realizovat pak z toho dokáže udělat pro zákazníka ještě nějakou skutečnou výhodu.
Penetrační testy tvoří důležitou součást zkoumání stavu bezpečnosti systémů a aplikací. Jsou vlastně podskupinou technických bezpečnostních auditů a kontrol, kdy jsou s použitím různých nástrojů a technik prováděny pokusy proniknout do různých částí informačního systému nebo jeho infrastruktury nebo omezit, případně eliminovat jejich funkci. Ve své podstatě testeři vyhledávají a aplikují metody pro napadení chráněných aktiv tak, jak by k tomu mohlo potenciálně dojít při skutečných útocích. Tento proces zahrnuje podrobnou analýzu systému se zaměřením na případně bezpečnostní nedostatky vycházející z chybného nastavení systému, známých či neznámých hardwarových a softwarových nedostatků, nebo nedostatečných funkčních protiopatření. Analýza je prováděna zpravidla z pohledu potenciálního útočníka a může (měla by) vést k odhalení výše zmíněných nedostatků. Výsledky získané během analýzy jsou prezentovány vlastníkovi systému. Důkladné testy by měly k výsledkům přikládat také informace o reálných důsledcích jednotlivých nedostatků jak na systém samotný, tak na jeho vlastníka a měly by také doporučit možná protiopatření pro zmírnění těchto rizik.
Penetrační testy mají za účel prověřit zabezpečení chráněných aktiv vůči napadení a současně ukázat analyzované organizaci, kde existují slabá místa a kudy může systém napaden.
Zkušený tester by měl být schopen dokázat přítomnost určitých zranitelností i ručně, tj. bez použití automatizovaných nástrojů. Tím nejenže prokazuje, že své práci skutečně rozumí, ale je tímto způsobem kolikrát i schopen objevit zranitelnosti, které automatizované nástroje nejsou schopny detekovat.
Co je a co není penetrační test?
V prvé řadě je na místě si uvědomit, že
- Penetrační test je expertní posouzení úrovně bezpečnosti metodou pokusu o průnik do testovaného systému nebo pokusu o omezení jeho funkcí a je de-facto testem funkčnosti všech bezpečnostních procedur, nástrojů a nastavení – zkrátka opatření, a to nejen technických, ale i organizačních
- Jedná se o technickou formu posouzení (auditu) bezpečnosti
- Metodami i použitými nástroji jsou penetrační testy blízké reálnému útoku (nejedná se o pouhé spuštění nástroje/scanneru a odevzdání výstupu)
- Penetrační testy mají mnoho variant
Penetrační testy – zejména jejich automatizované části – bývají častokrát zaměňovány za scan technických zranitelností. Přejděme laskavě, co vede k tomuto autory tvrzení a podívejme se na hlavní rozdíly mezi zmíněnými dvěma technikami a také na základní rozdíly mezi jejich výsledky.
Scan zranitelností | Penetrační test | |
Účel | Identifikace a hodnocení zranitelností, které pokud by byly zneužity mohou posloužit k chtěné nebo i nechtěné kompromitaci systému | Identifikace způsobu, jak kompromitovat systém nebo jeho část, snížit účinnost nebo i obejít bezpečnostní opatření |
Kdy | Vychází z mechanizmu hodnocení rizik provozovatele – nejméně po změně konfigurace, komponent, designu apod. | Vychází z mechanizmu hodnocení rizik provozovatele – nejméně po změně konfigurace, komponent, designu apod. |
Jak | Typicky automatizovanými nástroji | Více ruční práce, může zahrnovat i užití automatizovaných nástrojů, scanování zranitelností apod. |
Výstupy | Soupis rizik vyplývající s nalezených zranitelností společně s formálním hodnocením zranitelností (NVD/CVSS) u každé z nich | Popis každé ověřené zranitelnosti společně s popisem každé zjištěné zneužitelnosti. Specifický popis možných rizik v konkrétní aplikaci, včetně popisu metod jak a v jakém rozsahu je lze zneužít. Uvození příkladů útoků vč. např. SQL-IN, XSS, CRSS, privilege escalation nebo útoků na obsoletní protokoly |
Trvání | Relativně krátké – minuty, hodiny / cíl | Analýza může zabrat dny i týdny, odvisle od rozsahu testů. Testy mohou „bobtnat“ na základě zjištěných skutečností |
Jak vidno, jak z hlediska účelu, tak i z hlediska postupů, částečně i nástrojů, ale především z hlediska rozsahu potřebných expertních kompetencí, znalostí a jejich uplatnění lidskou prací jsou zde značné rozdíly. Ty jsou ale pro zákazníka nezajímavé, ovšem až do okamžiku, kdy se podíváme na využitelnou hodnotu výstupu obou variant ve vztahu ke konkrétnímu prostředí a situaci zákazníka. Zde je onen zdánlivý nepoměr opět vyvážen a je jasné, že tyto techniky nejsou logicky souměřitelné. V neposlední řadě je tomu tak i proto, že scan technických zranitelností bývá u penetračních testů často jejich součástí a ve fázi sběru informací poskytuje zásoby toho, co dál zkoumat.
Jak provést penetrační testy bezpečně?
Popravdě, řada poskytovatelů služeb, jimž říkají penetrační testy vám na oběť toho, aby dostali zakázku slíbí, že u toho nic nepoškodí a nerozbijí nebo, že je udělají velmi levně a že pro ně je to velmi snadné (protože jsou borci).
Takže na rovinu – utíkejte!
Pokud vám totiž tohle někdo předem slibuje, tak už v tom okamžiku, kdy to dělá ví, že vás ošidí. Buď totiž skutečné testování odbude – hlavně aby nic nerozbil (vždyť to si zákazník nepřeje) nebo vás zkusí opít rohlíkem a složitým a sáhlodlouhým reportem vám vypíše jaké zranitelnosti našel (ale nic o tom, že jdou skutečně využít a s jakým dopadem ve vašich konkrétních podmínkách).
Fajn, takže vám někdo prodal předražený scan zranitelností (to jste si mohli nějakými automatizovanými nástroji „oklikat“ i sami a znatelně levněji a možná i lépe), plus nějaké komediální vystoupení (které jste si mohli i odpustit) a to celé vydává nepoučeným laikům za penetrační test. No, jste zákazník, takže můžete samozřejmě chtít třeba i toto, ale penetrační test to není.
Bezpečná cesta existuje
Pokud ale potřebujete nebo chcete provádět skutečné penetrační testy, v první řadě je třeba dobře identifikovat proč a jak je chcete provést. Jestli je něco opravdu vážná chyba, pak podcenit přípravu. Bezpečné provedení penetračních testů ovšem nespočívá v tom, “že vám to nerozbijou”, ale že máte plán, co bude, pokud ano.
Penetrační testy, mají-li posloužit svému účelu získání podkladů ke zlepšování a kontrole stavu věcí, nejsou „objednej“, „vystřel“ a „zapomeň“, existuje velká škála možných způsobů provedení – tu s akcentem více na technickou stránku věci, tu na jiné složky testování nebo s širší remediační částí k vypořádání nálezů – prostě co zákazník, to trochu jiné potřeby. Jedno to má ale společné, zákazník bude mít výhodu, pokud se toho bude účastnit i jinak než sedící kachna na rybníku (v nejhorším případě se něco dozví, v tom lepším možná i přiučí), ale hlavně – má dění pod kontrolou. V tomto kontextu je na místě zmínit, že penetrační testy jsou de-facto projekty a měly by být řízeny jako projekty. A u toho byste jako zadavatel a odběratel asi měli být.