- 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ů.