- Metodologie a nástroje penetračního testování -
Co je to penetrační testování
�Penetrační testování lze definovat jako ověření úrovně zabezpečení informačního systému.
�Důležité je poznamenat to, že nelze odhalit všechny zranitelnosti.
�Možnosti jsou značně omezeny přidělenými prostředky (finance, čas, personál).
�Proto je třeba se zaměřit na zranitelná místa a chyby, které představují největší rizika.
Objekty penetračního testování
�Testovacímu procesu by mělo podléhat vše, co může ohrozit bezpečnost informačního systémů a průniku do něj.
�Patří jsem např.
o Veřejné webové stránky
o Interní informace o zaměstnancích a klientech
o E-mailové servery a schránky
o Přístupová hesla
o Úložiště dat a FTP servery
o Softwarové aplikace
o Informační systémy
Metodologie testování
�Testování slouží pro eliminaci chyb při vývoji systémů a aplikací. V oblasti informačních systémů můžeme tito testy rozdělit do několika základních kategorií podle způsobu provedení na:
o Manuální testy
o Automatizované testy
o Semiautomatické testy
�Podle znalostí o testovaném systému:
o Black-box testy
o White-box testy
o Grey box testy
Typy testů - Manuální
�Manuální testy jsou testerem vykonávány ručně.
�Mezi hlavní výhody patří nastavení sofistikovaných testů přes na míru daným podmínkám.
�Manuální testy mají výhodu v tom, že jsou dělány člověkem, který je schopný je později interpretovat i nezainteresovaným osobám.
�Nevýhodou je náročnost na čas a znalosti testera.
�Vzhledem k neomezeným možnostem, vytváření aplikací a programů, jsou nezbytné rozsáhlé znalosti v testovaných oblastech.
�Časová náročnost je dále způsobena manuálním prováděním testů.
Typy testů - Automatizované
�Automatizované testy nabízejí jednoduchost, rychlost a rozšiřitelnost podle vlastních potřeb.
�Nástroje pro automatizované testování byly vytvořeny profesionály.
�Výhodou je časová nenáročnost.
�Nevýhoda je nemožnost prezentace výsledků ve přívětivé formě.
�Pro správnou prezentaci jsou opět nutné znalosti o použité aplikaci a testované oblasti.
�Mezi další nevýhody patří nemožnost testovat některé typy zranitelností.
Typy testů - Semiautomatické
�Jedná se o kombinaci manuálních a automatických testů.
�Jsou kompromisem mezi oběma skupinami testování.
�Díky kombinaci testů je dosaženo maximálního využití výhod obou forem.
Typy testů – Black-box
�Nejpoužívanější typ testování.
�Simuluje vnější přístup útočníka, který zná jenom vstupy a potenciální výstupy. Nezná však vnitřní strukturu.
�Pro určení vstupů a výstupů testovaného systému je potřeba rozsáhlý průzkum.
�Výhody:
oNejsou potřeba znalosti programovacího jazyka ani zdrojového kódu.
oVysoká míra variability tj. možnost přizpůsobit testování potřebám.
�Nevýhody
oŠiroké znalosti testera
oNemusí být objeveny chyby, které vyžadují sofistikovanější přístup a není ověřena efektivity kódu.
Typy testů – Black-box
�Nejpoužívanější typ testování.
�Simuluje vnější přístup útočníka, který zná jenom vstupy a potenciální výstupy. Nezná však vnitřní strukturu.
�Pro určení vstupů a výstupů testovaného systému je potřeba rozsáhlý průzkum.
�Výhody:
o Nejsou potřeba znalosti programovacího jazyka ani zdrojového kódu.
o Vysoká míra variability tj. možnost přizpůsobit testování potřebám.
�Nevýhody
o Široké znalosti testera
o Nemusí být objeveny chyby, které vyžadují sofistikovanější přístup a není ověřena efektivity kódu.
Typy testů – White-box
�Při těchto testech jsou samozřejmostí plné vstupní znalosti.
�Jsou to znalosti architektury, kódu, počet zařízení a politiky podniku.
�Při testování probíhá analýza kódu, kde se hledají chyby.
�U tohoto testu jsou zapotřebí znalosti programovacího jazyku.
�Výhody
o Znalost kódu a struktury umožňují zkrátit čas testování
o Při testování možnost optimalizace kódu
o Možnost provést analýzu chyb a zranitelností
�Nevýhody
o U aplikací je nutnost znalost programovacího jazyku
o Vysoká časová náročnost.
Typy testů – Grey-box
�Tento druh testování se snaží maximalizovat výhody white box a black box testování.
�Při testování se využívá vnitřní logiky aplikací, ale testy probíhají z hlediska uživatele a útočníka.
�Grey box testy mohou také zahrnovat metody reverzního inženýrství.
Průběh penetračního testování
�Základní a nejdůležitější otázka.
Jak by měly probíhat penetrační testy
�Příklad otevřené metodiky testování přináší Open-Source Security Testing Methodology.
Web: http://isecom.securenetltd.com/osstmm.2.1.pdf
�Uvedená metodologie probírá základní oblasti, mezi než patří:
o Informační bezpečnost
o Procesní bezpečnost
o Bezpečnost síťových technologií
o Komunikační bezpečnost
o Bezpečnost bezdrátových sítí
o Fyzická bezpečnost
o Reportování
Do jaké míry testovat
�Jedná se o nejdůležitější otázku, protože náklady na testování všeho by byly extrémní.
�Každý další test, zabezpečení snižuje celkový přínos.
�Proto je důležité zvolit správný počet testů.
�Hloubka testu určuje například určitou úrovni dosažení oprávnění, získání určitých dat, přístupu k aplikacím a systému.
�Hloubka testu také závisí na finální sumě peněz, investovaných do zabezpečení a testování.
Nástroje pro testování I
�Penetrační testování může být podrobena reálná již hotová infrastruktura nebo může jít o vyvíjenou a připravenou infrastrukturu.
�Pro testování jsou nutné hardwarové a softwarové vybavení.
�Jedinou problémovou oblastí je typ síťového zařízení. Je nezbytná, aby ovládače zařízení podporovaly práci v promiskuitním režimu.
Nástroje pro testování II
�Co se týče softwarového vybavení, existuje několik desítek předem připravených prostředí, které obsahují potřebné nástroje. Například:
o BackTrack Linux
o Fedora Security Spin
o KATANA
o Pentoo
o BlackBuntu
o Matriux
o OWASP Web Testing Environment
o Live Hacking CD
o The Open Web Application Security Project
o Organizational Systém Wireless Auditor Asistent
Metodologie reportů I
�Proces testování je limitován množstvím dostupných, zdrojů, peněz, času a pracovní síly.
�Ohraničení testů může být určeno například časově, kdy jsou na ně vyhrazeny kupříkladu tři dny práce v pěti lidech.
�Závěry penetračních testů by měly být shrnuty ve zprávě, která bude následně předána zadavateli.
�Negativní výsledek testů může znamenat dobře zabezpečení systém, což ale neznamená neprolomitelnou ochranu.
�Negativní výsledek také může znamenat nekvalitní navržení testů.
Metodologie reportů II
�Důležitým prvkem reportů je způsob komunikace.
�Při tvorbě zpráv je důležité vědět, co říct, ale hlavně jak to říct.
�V penetračním testování je důležitý lidský kontakt.
�Při nalezení problémů a chyb v aplikacích, konfiguracích a systémech je potřeba nález oznámit tvůrci/autorovi či odpovědné osoby.
�Vhodné je slušné jednání z klientem.
Závěr
�Penetrační testování při správné realizaci poskytují velice hodnotné informace.
�Díky těmto informacím, lze opravit chyby jež by mohly způsobit problémy.
�Testy neodhalí 100% bezpečnostních chyb a zranitelností.
�Proto by měly v případě webových aplikací kombinovaný s revizí kódu, v případě sítí s analýzou architektury a kontrolou konfigurace jednotlivých sítových prvků.