Dělení Penetračních testů, metodologie testování, Penetrační testování webových aplikací Flashcards
Co je penetrační testování?
Penetrační testování je posouzení bezpečnosti pomocí pokusu o průnik do testovaného systému. Umožňuje komplexní prozkoušení nově nasazených aplikací, bezpečnostních systémů, firewallů, IPS/IDS apod. Nutností je mít souhlas majitele systému.
Dělení penetračních testů podle znalosti.
1) White-box testing (testování s úplnou znalostí)
Testující má plný přístup k dokumentaci, zdrojovému kódu, síťové infrastruktuře a konfiguracím testovaného systému (pozice vývojáře/technika). Výhodou je hlubší analýza a identifikace zranitelností, které by bez znalostí nebyly patrné. Používá se pro podrobný audit bezpečnosti.
2) Black-box testing (testování bez znalostí)
Tester nezná žádné interní detaily o systému. Simuluje externí útok, kdy útočník nemá žádné předchozí informace. Cílem je identifikovat zranitelnosti dostupné zvenčí (např. přes veřejné webové rozhraní). U tohoto typu testování se vyžaduje především dobrá znalost skenovacích technik a mapování sítě/systému. Nevýhodou může být, že pokud nedojde k proniknutí do sítě, nebude otestována interní bezpečnost.
3) Gray-box testing (testování s omezenou znalostí)
Kombinace přístupu white-box a black-box. Testující má částečné informace o systému (např. přístup k dokumentaci nebo uživatelským účtům). Tento přístup balancuje mezi realistickým pohledem externího útočníka a efektivitou. Výhodou je, že testeři se mohou soustředit na testování zranitelné části systému,
namísto prohledávání systému od nuly.
Dělení penetračních testů podle realizace
1) Automatizované testy využívají specializovaných nástrojů schopných detekce vlastností a chyb zkoumaného systému. Výhodou je rychlost či velké pokrytí attack surface,
tester však musí znát limitace aplikace a možnosti jejího nastavení.
2) Manuální testy se provádí ručně a jsou tedy časově mnohem náročnější a od testera
vyžadují hlubokou znalost oblasti, umožní však testování na míru a pokrytí detailů,
které automatizované testy nepokryjí. Tyto dvě formy se v praxi kombinují.
Dělení penetračních testů podle cíle
Síťová infrastruktura. Webové aplikace. Programy. Telefonní aplikace. IoT zařízení. Fyzický pentest.
Penetrační testy lze dále rozdělit na externí a interní. Záleží na počáteční pozici testera, tj. mimo/uvnitř sítě.
Metodologie penetračních testů
Plánování a příprava - Určení cíle, rozsahu a časového plánu, vymezení priorit.
Průzkum - Shromažďování informací o cílovém systému (pasivní aktivní)
Analýza a identifikace zranitelností - Identifikace slabých míst (např. Zjištění typu a verzí služeb běžících za otevřenými porty. )
Exploitace/zneužití - Využívání nalezených zranitelností. Simulace skutečných útoků, jako je přístup k datům, eskalace oprávnění, či DoS útoky.
Report - Vytvoření závěrečné zprávy s popisem nalezených zranitelností, jejich závažnosti a možného dopadu. Doporučení nápravných opatření. Prezentace výsledků vedení organizace.
Testování webových aplikací (OWASP)
OWASP (Open Web Application Security Project) je nezisková mezinárodní organizace zaměřená na zlepšování bezpečnosti software. Jejím cílem je neomezený přístup jednotlivců i organizací k informacím o bezpečnostních hrozbách. Mezi jejich neznámější publikace patří:
OWASP top 10, ASVS
OWASP Web Security Testing Guide
OWASP Top 10
Publikace shrnující aktuálních deset nejhorších zranitelností. Vychází z domluvy firem z odvětví a OWASP, nemusí tedy nutně znamenat, že se vyskytují nejčastěji. Postupně se jedná o zranitelnosti (2021):
- Chybná kontrola přístupu (chyba v ACL)
- Kryptografické chyby (např. nezabezpečená komunikace aplikace jako HTTP/FTP)
- Injekce (SQL injection, Code injection)
- Nezabezpečený design (chyba vzniklá už při plánování projektu)
- Špatná konfigurace bezpečnostních politik (nenastavení lockout mechanismu po určitém počtu neúspěšných přihlášení)4
- Užívání komponent se známou zranitelností
- Nekorektní funkce autentizace a identifikace (obecné chyby autentizačních mechanismů)
- Chyby integrity dat a software5
- Chyby bezpečného loggingu a monitoringu
- Server-Side Request Forgery (vykonávání requestu jménem serveru)
OWASP Testing Guide
OWASP Testing Guide je podrobná metodika pro testování bezpečnosti webových aplikací, kterou vydává organizace OWASP. Poskytuje strukturovaný a systematický přístup k identifikaci bezpečnostních zranitelností v aplikacích. Obsahuje pokyny k provádění testů, konkrétní testovací scénáře a techniky.
V pasivní fázi dochází k tzv. fingerprintingu (tj. k průzkumu prostředí). Na konci této fáze by útočník měl mít základní znalosti o prostředí webu, jako přístupové body, funkcionality a obsah.
Jedna ze základních metod je využití veřejně dostupných
informací z vyhledávačů jako Google, DuckDuckGo apod. (tzv. Google Dorking) Dále lze využívat HTTP proxy (jako BurpSuite) pro prozkoumání zaslaných HTTP žádostí za účelem identifikace OS serveru nebo typu serveru (Apache, Microsoft, Apache Tomcat, …).
V aktivní fázi už dochází k interpetaci dat získaných z fingerprintingu a pokusy o exploitaci. Všechny zranitelnosti, payloady a nevydařené útoky by měly být řádně zapsány. To
umožní později sepsat koherentní a komplexní report.
Report
V OWASP Web Security Testing Guide je uvedeno že dobrý report je základ penetračního testu. Bez něj nelze prezentovat výsledky a zajistit, že chyby budou opraveny.
1) Úvod - prostor pro obsah, jména členů týmu, limity testování, časové rozmezí testu
2) Shrnutí - cíl testu ,shrnutí dopadů z ekonomického a compliance hlediska, návrhy pro budoucí zlepšení
3) Nálezy - výpis všech nalezených zranitelností, všechny zranitelnosti by měly obsahovat co nejvíce detailní informace
4) Dodatky - použité metody, nástroje, vysvětlení závažnosti, relevantní výstupy nástrojů, . . .