Žádný systém není absolutně neprolomitelný. Penetrační testování, často zkracované na pentesting, je specializovaný proces, který zahrnuje prověřování, hodnocení a posilování všech prvků informačního systému proti možným kybernetickým útokům. Společnosti využívají platformy pro hlášení chyb (bug bounty) k identifikaci slabin v zabezpečení svých systémů. Odborníci na kybernetickou bezpečnost, kteří se specializují na penetrační testování, legálně odhalují a oznamují slabá místa v organizacích prostřednictvím těchto systémů odměn za chyby. Jak tedy tento proces probíhá?
1. Pasivní sběr a sledování informací
V úvodní fázi bug bounty a penetračního testu musí tester shromáždit informace o zkoumaném systému. Protože existuje mnoho útočných a testovacích technik, je klíčové, aby tester prioritizoval akce na základě zjištěných informací a zvolil nejvhodnější testovací metodu.
Tento krok zahrnuje získávání důležitých detailů o infrastruktuře cílového systému, jako jsou názvy domén, síťové segmenty, směrovače a IP adresy v jeho rozsahu. Dále by měly být shromážděny veškeré relevantní informace, které by mohly zvýšit úspěšnost útoku, například údaje o zaměstnancích a telefonní čísla.
Data získaná z veřejně dostupných zdrojů během této fáze mohou překvapivě poskytnout zásadní detaily. Pro dosažení tohoto cíle musí etický hacker využít různé zdroje, zejména webové stránky cílové instituce a platformy sociálních médií. Pečlivým shromažďováním těchto informací tester vytváří základ pro úspěšné hledání chyb a jejich odměnění.
Nicméně, většina organizací stanovuje různá pravidla pro penetrační testery v rámci bug bounty programů. Z právního hlediska je nezbytné tato pravidla dodržovat.
2. Aktivní sběr a skenování informací
Penetrační tester zjišťuje, která aktivní a pasivní zařízení fungují v rozsahu IP adres, obvykle pasivním shromažďováním informací v rámci programu bug bounty. Na základě těchto informací musí pentester určit strategii – musí stanovit priority a identifikovat, které testy jsou nutné.
V této fázi je nezbytné, aby hacker získal informace o operačním systému (OS), otevřených portech a službách, včetně jejich verzí, na aktivních systémech.
Navíc, pokud organizace, která nabízí odměnu za chyby, legálně povolí penetračnímu testeru monitorovat síťový provoz, lze shromáždit důležité informace o systémové infrastruktuře, alespoň v maximální možné míře. Většina organizací však takové oprávnění neudělí. V takovém případě se penetrační tester nesmí odchýlit od stanovených pravidel.
3. Fáze analýzy a testování
V této fázi penetrační tester, poté co zjistí, jak cílová aplikace reaguje na různé pokusy o průnik, navazuje aktivní spojení se systémy, které detekoval jako živé, a provádí přímé dotazy. Jinými slovy, jde o fázi, kdy etický hacker interaguje s cílovým systémem pomocí služeb jako FTP, Netcat a Telnet.
I když v této fázi pokus selže, hlavním cílem je otestovat data získaná v krocích shromažďování informací a zdokumentovat své poznatky.
4. Manipulace a pokus o zneužití
Penetrační tester shromažďuje všechna data z předchozích fází s jediným cílem: pokusit se získat přístup k cílovému systému stejným způsobem, jakým by to udělal skutečný, škodlivý hacker. Proto je tento krok tak kritický. Penetrační testeři by při navrhování bug bounty programů měli uvažovat jako útočníci.
V této fázi se pentester pokouší proniknout do systému s využitím operačního systému běžícího na cílovém systému, otevřených portů a služeb na těchto portech, a zranitelností, které lze aplikovat v závislosti na jejich verzích. Vzhledem k tomu, že webové portály a aplikace obsahují velké množství kódu a knihoven, existuje rozsáhlá plocha, na kterou může škodlivý hacker zaútočit. Proto by dobrý penetrační tester měl zvážit všechny možnosti a implementovat všechny možné útočné vektory, které jsou povoleny pravidly.
Úspěšné a flexibilní využití existujících zranitelností bez poškození systému a bez zanechání stop vyžaduje během procesu pronikání do systému značné odborné znalosti a zkušenosti. Tato fáze penetračního testu je tedy nejdůležitějším krokem. Aby forenzní týmy mohly jednat během možného útoku, musí kybernetický útočník zanechat stopy.
5. Pokus o zvýšení oprávnění
Síla systému je dána jeho nejslabším článkem. Pokud etickému hackerovi podaří získat přístup do systému, obvykle tak učiní jako uživatel s nízkými oprávněními. V této fázi se penetrační tester snaží získat oprávnění na úrovni administrátora, aby mohl zneužít zranitelnosti operačního systému nebo prostředí.
Následně by se měli zaměřit na kompromitování dalších zařízení v síťovém prostředí s těmito dodatečnými oprávněními a nakonec získat uživatelská oprávnění nejvyšší úrovně, jako je administrátor domény nebo správce databáze.
6. Reportování a prezentace
Po dokončení penetračního testu a bug bounty musí penetrační tester nebo bug hunter prezentovat organizaci podrobnou zprávu o bezpečnostních zranitelnostech, které objevil v cílovém systému, krocích, které podnikl, a o tom, jak dokázal tyto zranitelnosti využít. Zpráva by měla obsahovat informace, jako jsou snímky obrazovky, ukázkové kódy, fáze útoku a potenciální důsledky dané zranitelnosti.
Závěrečná zpráva by měla také navrhnout řešení, jak každou bezpečnostní mezeru odstranit. Důvěrnost a nezávislost penetračních testů je klíčová. Etický hacker by nikdy neměl sdílet důvěrné informace získané v této fázi ani je zneužívat šířením dezinformací, protože je to obecně nezákonné.
Proč je penetrační test důležitý?
Hlavním cílem penetračního testování je zjistit, jak je systémová infrastruktura zabezpečena z pohledu útočníka, a eliminovat případné zranitelnosti. Kromě identifikace slabých míst v bezpečnostním postoji organizace také měří efektivitu její bezpečnostní politiky, testuje povědomí zaměstnanců o bezpečnostních problémech a ověřuje, do jaké míry firma implementovala principy kybernetické bezpečnosti.
Penetrační testy jsou stále důležitější. Pro analýzu bezpečnosti v infrastrukturách firemních struktur i osobních aplikacích je zásadní získat pomoc od certifikovaných etických penetračních testerů.