7 Vysvětlení fází a kroků penetračního testování

Historie a význam penetračního testování

Již v roce 1967, po odborné konferenci o počítačích, experti z Rand Corporation – Willis Ware, Rein Turn, Harold Petersen a Benard Peters – ve své zprávě upozornili na snadnou zranitelnost komunikačních kanálů mezi počítači.

Tato zjištění vedla k prvním pokusům o proniknutí do počítačových systémů. James P. Anderson následně vyvinul metodický přístup, který se stal základem pro dnešní penetrační testování.

Základní struktura těchto testů byla jednoduchá: bezpečnostní týmy postupovaly v několika krocích, odhalovaly zranitelnosti a následně hledaly způsoby, jak jim předcházet. Zde je přehled historie penetračního testování.

Zabezpečení firemní infrastruktury není jednoduché a vyžaduje zkušenosti a čas. Nicméně v dnešní době je pro kyberzločince poměrně snadné najít slabá místa v organizacích. Útoky se často zaměřují na veřejně dostupné firemní prostředky, jako jsou webové aplikace, webové stránky, DNS servery a e-maily. Cílem je získat přístup k citlivým datům.

Penetrační testy umožňují firmám odhalit a posílit potenciální body útoku dříve, než je zneužijí útočníci. Výzkumy ukazují, že až 73 % úspěšných útoků proniká do webových aplikací právě přes jejich zranitelnosti.

Proto je pro organizace stále důležitější ověřovat bezpečnost svých aplikací, systémů a sítí. Pravidelné simulace útoků jsou efektivním způsobem, jak otestovat bezpečnostní opatření. Nejde o jednorázovou aktivitu, ale o kontinuální proces. Frekvence testování závisí na struktuře firmy a na posouzení rizik.

Dobrou zprávou je, že penetrační testování nemusí být složité. S adekvátně vyškolenými IT týmy může firma efektivně implementovat bezpečnostní opatření, zejména při velkých aktualizacích infrastruktury nebo při zavádění nových digitálních služeb.

Vše začíná pochopením, o co v celém procesu jde.

Co je penetrační testování?

Před samotným postupem je důležité si definovat, co to vlastně penetrační testování je a proč je důležité. Penetrační testy, často označované jako „pen testy“, jsou v podstatě simulované kybernetické útoky na firemní systémy v bezpečném a kontrolovaném prostředí.

Pen testy, spolu s bezpečnostními audity, slouží k odhalování zranitelností ve firemním prostředí. Taktika testů je podobná té, kterou používají skuteční hackeři. Hlavními důvody, proč by vaše firma měla provádět pen testy, jsou:

  • Odhalování skrytých slabin dříve, než je objeví útočníci.
  • Zlepšení bezpečnostních procesů a strategií.
  • Snížení nákladů na řešení incidentů a urychlení reakce.
  • Dodržování bezpečnostních a soukromých předpisů.
  • Ochrana reputace značky a udržení důvěry zákazníků.

Pen testy prověřují odolnost firmy vůči útokům a ukazují, jak snadno mohou hackeři proniknout do systémů. Získané poznatky pomáhají prioritizovat investice do kybernetické bezpečnosti, dodržovat průmyslové standardy a vylepšovat obranné strategie. To vše je možné díky automatizovaným nástrojům pro testování – tzv. pen testovacím nástrojům.

Co jsou nástroje pro pen testy?

Etický hacker používá pen testovací nástroje k hodnocení odolnosti firemní IT infrastruktury prostřednictvím simulací reálných útoků. Tyto nástroje umožňují bezpečnostním týmům eliminovat opakované testování, urychlit generování zpráv a snížit náklady na nákup více skenerů.

Existuje mnoho druhů těchto nástrojů – open source, pro webové aplikace, sítě, mobilní aplikace, cloud, manuální, automatizované, a také penetrační testování jako služba. Při výběru je důležité zaměřit se na klíčové vlastnosti, jako jsou použitelné zprávy, integrace CI/CD, podpora pro nápravu a certifikáty (některé nabízejí veřejně dostupné certifikáty pen testů).

S těmito základy se nyní podívejme na samotný proces penetračního testování.

Fáze penetračního testování

Standardní penetrační test se skládá z několika fází. I když různé zdroje mohou uvádět různé počty kroků, celková struktura procesu zůstává stejná. Obvykle zahrnuje průzkum, skenování, posouzení zranitelnosti, zneužití a reportování.

Zkušení testeři používají různé nástroje, aby mohli v každé fázi využít ten nejvhodnější. Každý milník procesu je důležitý.

Sběr informací

Tato fáze, která je často opomíjena, pomáhá firmě vytvořit společný základ s testerem. Definuje se rozsah práce, pravidla zapojení, časový harmonogram a konkrétní logistiku, včetně stanovení jasných cílů a záměrů.

Důkladný sběr informací pomáhá porozumět oblastem, které je potřeba testovat, a vhodným metodám. Je to klíčový počáteční krok, který by neměl být podceňován.

Před zahájením testování systému musí organizace udělit souhlas testerovi. Bez souhlasu by jeho činnost mohla být považována za nezákonnou. Firma stanovuje jasná pravidla (ve smlouvě) pro hladký průběh testování. Smlouva by měla obsahovat seznam klíčových aktiv, cíle testování a bezpečnostní opatření. Tento krok má vliv na všechny následné akce. Na konci tohoto procesu jsou všechny plány v souladu s očekávanými výsledky testů.

Průzkum/OSINT shromažďování

V této fázi testeři sbírají veškeré dostupné informace o systému. Získaná data jsou spojena s nadcházejícími testy a řídí se výsledky předchozího kroku. Testeři tak získávají přehled o tom, jaká data mají shromažďovat a jaké strategie mají používat. Při aktivním průzkumu tester přímo interaguje se systémy. Při pasivním sbírá veřejně dostupné informace. Pro komplexní testování je ideální kombinovat obě techniky.

Aktivní sběr dat zahrnuje práci se sítěmi, operačními systémy, uživatelskými účty, názvy domén, poštovními servery a aplikacemi. Pasivní sběr dat se zaměřuje na zpravodajství z otevřených zdrojů (OSINT); využívají se sociální média, daňové informace, webové stránky a další veřejná data.

Existují různé nástroje pro OSINT, které se dají snadno používat pro sběr a analýzu informací na webu. Pomocí OSINT frameworků lze vytvořit rozsáhlý seznam potenciálních vstupních bodů a zranitelností. Tento krok je klíčový pro interní i externí pen testy, ale obvykle se neprovádí u testování webových aplikací, mobilních aplikací a API.

Snímání

Dalším krokem je důkladná technická revize systému. Prostřednictvím skenovacích nástrojů, jako jsou automatické skenery zranitelností a mapovače sítí, se dá zjistit, jak cílový systém reaguje na různé narušení, jaké jsou otevřené porty, síťový provoz atd.

Hlavními částmi této fáze jsou skenování a analýza aktiv. K odhalení služeb a hostitelů počítače lze použít nástroje jako Nmap, který odesílá pakety a analyzuje odpovědi. Po skončení této fáze máte informace o activech, včetně operačních systémů, spuštěných služeb a otevřených portů.

Analýzou výsledků získáte základ pro plánování exploitu. Můžete zmapovat digitální krajinu systému a lokalizovat možné body útoku. Můžete provádět statickou a dynamickou analýzu, abyste získali přesnou představu o reakci systému na různé podmínky.

Statická analýza kontroluje kód aplikací v době, kdy ještě nejsou spuštěny. Můžete použít nástroje pro skenování kódových základen. Dynamická analýza kontroluje kód během běhu aplikace. Informace shromážděné v této fázi musejí být přesné, protože na nich závisí úspěch dalších fází.

Hodnocení/Zisk přístupu

V této fázi se veškerá data shromážděná v předchozích krocích používají k určení zranitelností a posouzení, zda jsou zneužitelné. I když je tato fáze sama o sobě užitečná, stává se obzvláště účinnou v kombinaci s dalšími procesy penetračního testování.

K vyhodnocení rizik spojených s nalezenými zranitelnostmi testeři používají více zdrojů, včetně Národní databáze zranitelností (NVD), která analyzuje softwarové zranitelnosti publikované v Common Vulnerabilities and Exposures (CVE).

Dále se definují cíle a mapují vektory útoku. Cílové oblasti zahrnují vysoce hodnotná aktiva, jako jsou data zaměstnanců, informace o zákaznících, partneři/dodavatelské řetězce, prodejci, porty, aplikace a protokoly. Časté jsou útoky na webové aplikace.

Mezi nejběžnější útoky patří SQL injection, cross-site scripting a backdoory. Systém je zneužíván eskalací oprávnění, zachycováním provozu a krádeží dat. V rámci rozsahu definovaného ve fázi sběru informací, tester pracuje s danými omezeními.

Vykořisťování

Známá také jako fáze udržování přístupu, v této fázi tester ověřuje, zda lze zranitelnosti skutečně zneužít. Jedná se o simulovaný reálný útok na systém a pokus o získání přístupu. S nástroji jako Metasploit tester simuluje útok v reálném světě.

Během této fáze je tester zodpovědný za ochranu firemních zdrojů a zajištění, že systémy nebudou po simulacích ohroženy.

Metasploit je oblíbený pro své plynulé operace při využívání zranitelností. Tato fáze měří důsledky narušení. Tester může vyzkoušet šifrování nebo exfiltraci dat a simulovat ransomware a zero-day útoky. Klíčem k úspěšnému testu je nalezení rovnováhy mezi testováním limitů a zachováním integrity systému.

Nejlepší je spolupracovat s odborníky, kteří umí využít zranitelnosti, které by automatizace přehlédla. Na konci této fáze tester získá vyšší oprávnění v systému a síti a identifikuje dostupná data. Etický hacker by měl vysvětlit výsledky zneužití cílených vysoce hodnotných aktiv.

Analýza rizik a doporučení, revize, reporting

Po skončení fáze využívání se generuje zpráva, která dokumentuje všechna zjištění. Zpráva slouží jako podklad pro nápravu zjištěných zranitelností.

Dobrá zpráva o pen testu je přehledně strukturovaný dokument se zjištěnými zranitelnostmi, který pomáhá organizaci opravovat bezpečnostní rizika. Skvělá zpráva bude obsáhlá a bude obsahovat informace o všech objevených zranitelnostech a jejich CVSS skóre, stručný popis technických rizik, možný dopad na podnikání, podrobnosti o obtížnosti zneužití a praktická doporučení.

Zpráva by měla dokumentovat všechny fáze, testovací modely, použité techniky a cílená aktiva. Pokud je to možné, tester by měl zhodnotit, zda test splňuje požadavky příslušného rámce. Zpráva by měla být představena jak v obecné formě, tak i s technickými detaily.

Po vypracování zpráv je klíčové vyčištění systému. Systém by měl být vrácen do stavu, v jakém byl před testováním. Znamená to odstranění všech spustitelných souborů, dočasných souborů a skriptů z napadených systémů, odstranění uživatelských účtů vytvořených pro připojení k napadenému systému a odstranění rootkitů v prostředí.

Následně se k řešení zranitelností dostává organizace. Na základě zpráv a zjištění z penetračních testů se organizace zaměřuje na slabá místa, analyzuje potenciální dopady, poskytuje podklady pro rozhodování a navrhuje nápravná opatření.

Vzhledem k tomu, že tato fáze zahrnuje vylepšení na základě minulých chyb, měla by náprava všech zneužitelných zranitelností proběhnout v rozumném čase. Někdy se tato fáze může prodloužit, aby mohly být provedeny opakované testy po aktualizacích.

Praktické použití pen testů: Průvodce krok za krokem

V tomto příkladu použijeme framework Metasploit. Můžete si vytvořit vlastní pracovní postup, zde je typický příklad pro inspiraci. Začneme instalací frameworku.

Pokud používáte Linux/macOS, použijte tento příkaz:

curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && \
    chmod 755 msfinstall && \
    ./msfinstall

Pokud používáte Windows, použijte nejnovější instalační program pro Windows. Nebo použijte příkaz Shell:

[CmdletBinding()]
Param(
    $DownloadURL = "https://windows.metasploit.com/metasploitframework-latest.msi",
    $DownloadLocation = "$env:APPDATA/Metasploit",
    $InstallLocation = "C:\Tools",
    $LogLocation = "$DownloadLocation/install.log"
)

If(! (Test-Path $DownloadLocation) ){
    New-Item -Path $DownloadLocation -ItemType Directory
}

If(! (Test-Path $InstallLocation) ){
    New-Item -Path $InstallLocation -ItemType Directory
}

$Installer = "$DownloadLocation/metasploit.msi"

Invoke-WebRequest -UseBasicParsing -Uri $DownloadURL -OutFile $Installer

& $Installer /q /log $LogLocation INSTALLLOCATION="$InstallLocation"

A pak…

Zahájení projektu – Toto bude úložiště dat a pracovní prostor. Vzhledem k tomu, že můžete mít různé požadavky na různé podsítě ve firmě, organizování práce zlepší efektivitu. Pokud například testujete IT a HR oddělení, je vhodné generovat oddělené výsledky.

Zdroj obrázku – MetaSploit

Získání cílových dat – Zde přidáváte data do projektu pomocí vyhledávání nebo importu existujících dat. Skenujte cíle a vyhledejte otevřené porty pro zobrazení síťových služeb. Použijte možnost skenování. Zadejte IP adresy, se kterými chcete pracovat, každou do jednoho řádku. Můžete také importovat data z místního souboru.

Zdroj obrázku – MetaSploit

Zobrazení/správa hostitelských dat – Můžete se podívat na data z úrovně hostitele nebo projektu. Mezi jednotlivými IP můžete přepínat a mít tak přehled o každém hostiteli.

Zdroj obrázku – MetaSploit

Vyhledání zranitelností – Spusťte kontrolu zranitelností pomocí možností Neexpose. Tento krok využívá databáze zranitelností k nalezení shody.

Využití zranitelností – Zranitelná místa můžete využívat bez problémů pomocí průvodce validací. Případně lze použít i možnost Neexpose.

Aktivita po exploitu – Sbírejte data z exploitu přes kartu relace; klikněte na „sbírat“.

Zdroj obrázku – MetaSploit

Vyčištění – Po dokončení sběru dat použijte možnost „vyčistit“ k ukončení relace a vyčištění systému.

Generování zpráv – Na konci testu vám Metasploit poskytne sadu zpráv, které slouží jako základ pro konsolidaci dat a sestavení výsledků.

Podrobný průvodce testováním perem najdete v Rychlém průvodci pro Metasploit.

Běžné nástroje pro pen testování

Mezi běžné nástroje patří Sn1per, Metasploit a Commix.

#1. Sn1per

Sn1per je nástroj pro zkoumání zranitelností, který ověřuje dopad útoků na straně klienta. Můžete ho použít k simulaci vzdálených a uživatelských útoků v kontrolovaném prostředí. Sn1per má 6k hvězd na GitHubu. Funguje také jako mediální výstup pro nástroj. Sn1per vám ušetří čas díky automatizaci open source a komerčních nástrojů pro odhalování zranitelností.

#2. Metasploit

Metasploit je rozsáhlý framework pro pen testování vyvinutý díky sdíleným znalostem mezi komunitami s otevřeným zdrojovým kódem. Na GitHubu má 31,2 tisíc hvězdiček, což naznačuje značný zájem v softwarovém světě. Metasploit je výsledkem spolupráce bezpečnostních nadšenců, kteří se zaměřují na řešení zranitelností a zvyšování povědomí o bezpečnosti.

#3. Commix

Commix je skvělý nástroj pro zneužívání příkazů OS. Ačkoli se Commix specializuje na zranitelnosti vkládání příkazů, je snadno použitelný, bezplatný, open source, kompatibilní s různými platformami, přenosný a modulární. Dostal se na 4k hvězdiček na GitHubu. Je zdarma a open source.

Závěrečná slova

Pochopení fází penetračního testování je pro firmy zásadní, aby zvýšily odolnost svých digitálních produktů proti kybernetickým útokům. Vzhledem k tomu, že kyberzločinci obcházejí tradiční bezpečnostní řešení, je simulování reálných útoků pomocí pen testů efektivní způsob, jak se orientovat v neustále se vyvíjejícím prostředí kybernetických hrozeb.

Přizpůsobením pen testu specifickým potřebám vaší firmy můžete zajistit efektivitu bezpečnostních opatření. Procházením všech fází pen testu dosáhnete nejlepší návratnosti investic do kybernetické bezpečnosti.

Pro úspěšný pen test je důležité být chytří. Začněte sběrem informací o testu. Dále pokračujte k průzkumu. V prvním kroku definujte rozsah a cíle testu.

Následně prohledejte systém, získejte podrobné znalosti a identifikujte zranitelná místa. Poté proveďte simulovaný útok, ale tak, aby nedošlo k poškození systému. Nakonec vygenerujte užitečné zprávy, které vedou k nápravným opatřením. Nezapomeňte vyčistit a obnovit systém do původního stavu.

Při správném použití pen testy zlepšují bezpečnostní pozici organizace tím, že identifikují a opravují zranitelnosti. Vzhledem k tomu, že mnoho firem migruje do cloudu a přijímá nové technologie, stávají se pen testy pro doménu zabezpečení informací zásadní. 75 % firem používá pen testy pro ověření bezpečnosti. Pokud věnujete pozornost a zacházíte s každou fází testování samostatně, vždy naleznete hodnotu v provádění penetračních testů.

Podívejte se také na bezplatné online nástroje pro pen testování pro testování bezpečnosti aplikací.