complete penetration testing guide with sample test cases
Jedná se o proces identifikace slabých míst zabezpečení v aplikaci na základě vyhodnocení systému nebo sítě pomocí různých škodlivých technik. Slabé stránky systému jsou v tomto procesu využívány prostřednictvím autorizovaného simulovaného útoku.
Účelem tohoto testu je zabezpečit důležitá data od cizinců, jako jsou hackeři, kteří mohou mít neoprávněný přístup do systému. Jakmile je zranitelnost identifikována, slouží k zneužití systému k získání přístupu k citlivým informacím.
Penetrační test je také známý jako test perem a tester penetrace se také označuje jako etický hacker.
Co se naučíte:
- Co je to penetrační testování?
- Příčiny zranitelnosti
- Nástroje a společnosti pro testování penetrace
- Doporučené nástroje pro testování penetrace
- Doporučená společnost pro testování penetrace
- Proč penetrační testování?
- Co by mělo být testováno?
- Typy testování penetrace
- Techniky testování pera
- Penetrační testování Ukázkové testovací případy (testovací scénáře)
- Závěr
Co je to penetrační testování?
Pomocí penetračního testování můžeme zjistit zranitelnost počítačového systému, webové aplikace nebo sítě.
Penetrační test říká, zda jsou stávající obranná opatření použitá v systému dostatečně silná, aby zabránila jakémukoli narušení bezpečnosti. Zprávy o penetračních testech také naznačují protiopatření, která lze přijmout, aby se snížilo riziko napadení systému.
Příčiny zranitelnosti
- Chyby při návrhu a vývoji : V konstrukci hardwaru a softwaru mohou být nedostatky. Tyto chyby mohou vystavit vaše data důležitá pro podnikání riziku expozice.
- Špatná konfigurace systému : Toto je další příčina zranitelnosti. Pokud je systém špatně nakonfigurován, může zavést mezery, kterými mohou útočníci vstoupit do systému a ukrást informace.
- Lidské chyby : Lidské faktory, jako je nesprávná likvidace dokumentů, ponechání dokumentů bez dozoru, chyby kódování, zasvěcené hrozby, sdílení hesel přes phishingové stránky atd., Mohou vést k narušení bezpečnosti.
- Konektivita : Pokud je systém připojen k nezabezpečené síti (otevřená připojení), je v dosahu hackerů.
- Složitost : Zranitelnost zabezpečení stoupá úměrně ke složitosti systému. Čím více funkcí má systém, tím větší je šance na jeho napadení.
- Hesla : Hesla se používají k zabránění neoprávněnému přístupu. Měly by být dostatečně silné, aby nikdo nemohl uhodnout vaše heslo. Hesla by neměla být s nikým sdílena za žádnou cenu a hesla by měla být pravidelně měněna. I přes tyto pokyny občas lidé odhalují svá hesla ostatním, někam si je zapisují a uchovávají si snadná hesla, která lze uhodnout.
- Vstup uživatele : Určitě jste už slyšeli o vkládání SQL, přetečení vyrovnávací paměti atd. Data přijatá elektronicky pomocí těchto metod lze použít k útoku na přijímající systém.
- Řízení : Zabezpečení je obtížné a nákladné spravovat. Někdy organizace zaostávají ve správném řízení rizik, a proto se v systému indukuje zranitelnost.
- Nedostatek školení zaměstnanců : To vede k lidským chybám a dalším zranitelnostem.
- Sdělení : Kanály jako mobilní sítě, internet, telefon otevírají možnosti krádeží zabezpečení.
Nástroje a společnosti pro testování penetrace
K identifikaci některých standardních chyb zabezpečení v aplikaci lze použít automatické nástroje. Nástroje Pentest skenují kód a kontrolují, zda není přítomný škodlivý kód, který může vést k možnému narušení zabezpečení. Nástroje Pentest mohou ověřovat mezery v zabezpečení přítomné v systému zkoumáním technik šifrování dat a zjišťováním pevně zakódovaných hodnot, jako je uživatelské jméno a heslo.
Kritéria pro výběr nejlepšího nástroje pro penetraci:
- Mělo by být snadné nasadit, konfigurovat a používat.
- Mělo by to snadno prohledat váš systém.
- Mělo by kategorizovat zranitelná místa na základě závažnosti, která vyžaduje okamžitou opravu.
- Měl by být schopen automatizovat ověřování zranitelností.
- Mělo by to znovu ověřit dříve nalezené exploity.
- Mělo by generovat podrobné zprávy o zranitelnosti a protokoly.
Jakmile víte, jaké testy je třeba provést, můžete buď trénovat své zdroje pro interní testy, nebo najmout odborné konzultanty, aby za vás provedli úkol penetrace.
Doporučené nástroje pro testování penetrace
# 1) Acunetix
Acunetix WVS nabízí bezpečnostním profesionálům i softwarovým technikům řadu ohromujících funkcí v jednoduchém, přímém a velmi robustním balíčku.
=> Vyzkoušejte nejlepší nástroj pro testování pera zde
# 2) Vetřelec
Vetřelec je výkonný skener zranitelnosti, který zjišťuje slabiny kybernetické bezpečnosti ve vašem digitálním sídle, vysvětluje rizika a pomáhá s jejich nápravou dříve, než může dojít k narušení. Je to dokonalý nástroj, který vám pomůže automatizovat vaše úsilí při testování penetrace.
Klíčové vlastnosti :
- Více než 9 000 automatických kontrol v celé vaší IT infrastruktuře.
- Kontroly infrastruktury a webové vrstvy, jako je například vkládání SQL a skriptování mezi weby.
- Když jsou objeveny nové hrozby, automaticky prohledá vaše systémy.
- Několik integrací: AWS, Azure, Google Cloud, API, Jira, Teams a další.
- Intruder nabízí 30denní bezplatnou zkušební verzi svého plánu Pro.
Doporučená společnost pro testování penetrace
# 1) ImmuniWeb®
ImmuniWeb® je společnost pro testování penetrace se sídlem v Ženevě ve Švýcarsku. Jeho platforma pro testování penetrace aplikací s podporou DevSecOps kombinuje lidi s umělou inteligencí a přichází s nulovým falešně pozitivním SLA, detekcí nejvyšší zranitelnosti a akčním reportováním.
ImmuniWeb nabízí komplexní testování penetrace aplikací interních a externích webových a mobilních aplikací, API a webových služeb, poštovních serverů, zařízení IoT a dalších.
Klíčové vlastnosti:
- Průběžná detekce nového kódu.
- Rychlé a nákladově efektivní ruční testování.
- Virtuální opravné kapacity jedním kliknutím.
- Nepřetržitý přístup k bezpečnostním analytikům.
- Integrace DevSecOps a CI / CD.
- Okamžitá objednávka a rychlé dodání.
- Víceúčelový přístrojový panel.
Další bezplatné nástroje:
Obchodní služby:
Můžete se také podívat na níže uvedený seznam dostupný na STH, který hovoří o 37 výkonných nástrojích pro testování penetrace => Výkonné nástroje pro testování penetrace pro každý penetrační tester
dotazy sql po dobu 5 let zkušeností
Proč penetrační testování?
Určitě jste už slyšeli o ransomwarovém útoku WannaCry, který začal v květnu 2017. Zamkl více než 2 lakh počítače po celém světě a požadoval výkupné v bitcoinové kryptoměně. Tento útok zasáhl mnoho velkých organizací po celém světě.
S tak rozsáhlými a nebezpečnými kybernetickými útoky, které se v dnešní době odehrávají, je nevyhnutelné provádět penetrační testování v pravidelných intervalech, aby byly chráněny informační systémy před narušením bezpečnosti.
Penetrační testování se tedy vyžaduje hlavně u:
- Finanční nebo kritická data musí být zabezpečena při jejich přenosu mezi různými systémy nebo přes síť.
- Mnoho klientů požaduje testování pera jako součást cyklu vydání softwaru.
- Pro zabezpečení uživatelských dat.
- Vyhledání chyb zabezpečení v aplikaci.
- Objevovat mezery v systému.
- Posoudit obchodní dopad úspěšných útoků.
- Splnění požadavků na zabezpečení informací v organizaci.
- Implementovat efektivní bezpečnostní strategii v organizaci.
Každá organizace musí identifikovat bezpečnostní problémy přítomné v interní síti a počítačích. Pomocí těchto informací může organizace plánovat obranu proti jakémukoli pokusu o hackerství. Soukromí uživatelů a zabezpečení dat jsou dnes největšími obavami.
Představte si, že se nějakému hackerovi podaří získat podrobnosti o uživatelích na sociálních sítích, jako je Facebook. Organizace může čelit právním problémům kvůli malé mezeře ponechané v softwarovém systému. Velké organizace proto hledají certifikaci shody s PCI (Payment Card Industry) dříve, než začnou obchodovat s klienty třetích stran.
Co by mělo být testováno?
- Software (operační systém, služby, aplikace)
- Hardware
- Síť
- Procesy
- Chování koncového uživatele
Typy testování penetrace
# 1) Test sociálního inženýrství: V tomto testu se objevují pokusy, aby osoba odhalila citlivé informace, jako je heslo, důležitá obchodní data atd. Tyto testy se většinou provádějí prostřednictvím telefonu nebo internetu a zaměřují se na určité helpdesky, zaměstnance a procesy.
Lidské chyby jsou hlavní příčinou zranitelnosti zabezpečení. Všichni zaměstnanci by měli dodržovat bezpečnostní standardy a zásady, aby se zabránilo pokusům o penetraci sociálního inženýrství. Příkladem těchto standardů je nemluva o žádných citlivých informacích v e-mailové nebo telefonické komunikaci. Bezpečnostní audity lze provádět za účelem identifikace a nápravy nedostatků procesu.
# 2) Test webových aplikací: Pomocí softwarových metod lze ověřit, zda je aplikace vystavena zranitelnostem zabezpečení. Kontroluje zranitelnost zabezpečení webových aplikací a softwarových programů umístěných v cílovém prostředí.
# 3) Fyzikální penetrační test: K ochraně citlivých dat se používají silné metody fyzického zabezpečení. To se obvykle používá ve vojenských a vládních zařízeních. Všechna fyzická síťová zařízení a přístupové body jsou testovány na možnosti jakéhokoli narušení zabezpečení. Tento test není příliš relevantní pro rozsah testování softwaru.
# 4) Test síťových služeb : Toto je jeden z nejčastěji prováděných penetračních testů, kde jsou identifikovány otvory v síti, podle kterých se provádí vstup do systémů v síti, aby se zkontrolovalo, jaký druh zranitelnosti existuje. To lze provést lokálně nebo vzdáleně.
# 5) Test na straně klienta : Jeho cílem je prohledávat a využívat zranitelná místa v softwarových programech na straně klienta.
# 6) Vzdálené vytáčené válečné vytáčení : Vyhledává modemy v prostředí a pokouší se přihlásit k systémům připojeným prostřednictvím těchto modemů pomocí hádání hesla nebo hrubou silou.
# 7) Test zabezpečení bezdrátové sítě : Objevuje otevřené, neoprávněné a méně zabezpečené hotspoty nebo sítě Wi-Fi a připojuje se přes ně.
Výše uvedených 7 kategorií, které jsme viděli, je jedním ze způsobů kategorizace typů testů pera. Můžeme také uspořádat typy penetračního testování do tří částí, jak je vidět níže:
Pojďme diskutovat o těchto testovacích přístupech jeden po druhém:
- Penetrační testování černé skříňky : V tomto přístupu tester hodnotí cílový systém, síť nebo proces bez znalosti jeho podrobností. Mají jen velmi vysokou úroveň vstupů, jako je URL nebo název společnosti, pomocí kterých pronikají do cílového prostředí. V této metodě není zkoumán žádný kód.
- Penetrační testování v bílé krabici : V tomto přístupu je tester vybaven úplnými podrobnostmi o cílovém prostředí - systémy, síť, OS, IP adresa, zdrojový kód, schéma atd. Zkoumá kód a zjišťuje chyby návrhu a vývoje. Jedná se o simulaci útoku vnitřní bezpečnosti.
- Šedé pole Penetrační testování : V tomto přístupu má tester omezené podrobnosti o cílovém prostředí. Jedná se o simulaci externích bezpečnostních útoků.
Techniky testování pera
- Ruční penetrační test
- Pomocí automatizovaných penetračních testovacích nástrojů
- Kombinace ručního i automatizovaného procesu
Třetí proces je běžnější pro identifikaci všech druhů zranitelností.
Ruční penetrační test
Je obtížné najít všechny chyby zabezpečení pomocí automatizovaných nástrojů. Existují některé chyby zabezpečení, které lze identifikovat pouze ručním skenováním. Penetrační testeři mohou provádět lepší útoky na aplikace na základě jejich dovedností a znalostí systému, do kterého pronikají.
Metody jako sociální inženýrství mohou provádět pouze lidé. Ruční kontrola zahrnuje design, obchodní logiku i ověření kódu.
Proces penetračního testu:
Pojďme se bavit o skutečném procesu, který následují testovací agentury nebo penetrační testeři. Identifikace zranitelných míst přítomných v systému je prvním důležitým krokem v tomto procesu. U této zranitelnosti jsou přijata nápravná opatření a opakují se stejné penetrační testy, dokud není systém vůči všem těmto testům negativní.
Tento proces můžeme kategorizovat do následujících metod:
# 1) Sběr dat: K získání údajů o cílovém systému se používají různé metody včetně vyhledávání Google. Lze také použít techniku analýzy zdrojového kódu webové stránky k získání více informací o verzi systému, softwaru a pluginu.
Na trhu je k dispozici mnoho bezplatných nástrojů a služeb, které vám mohou poskytnout informace, jako jsou názvy databází nebo tabulek, verze databází, verze softwaru, použitý hardware a různé doplňky třetích stran používané v cílovém systému.
# 2) Hodnocení zranitelnosti: Na základě údajů shromážděných v prvním kroku lze najít slabé stránky zabezpečení v cílovém systému. To pomáhá penetračním testerům zahájit útoky pomocí identifikovaných vstupních bodů v systému.
# 3) Skutečné zneužití: Toto je zásadní krok. Vyžaduje speciální dovednosti a techniky k zahájení útoku na cílový systém. Zkušení testeři penetrace mohou využít své dovednosti k zahájení útoku na systém.
# 4) Výsledek analýzy a přípravy zprávy: Po dokončení penetračních testů jsou připraveny podrobné zprávy o přijetí nápravných opatření. Všechny identifikované chyby zabezpečení a doporučené nápravné metody jsou uvedeny v těchto zprávách. Formát hlášení o zranitelnosti (HTML, XML, MS Word nebo PDF) můžete upravit podle potřeb vaší organizace.
Penetrační testování Ukázkové testovací případy (testovací scénáře)
Pamatujte, že to není funkční testování. V Pentestu je vaším cílem najít v systému bezpečnostní mezery. Níže uvádíme několik obecných testovacích případů, které se nemusí nutně vztahovat na všechny aplikace.
- Zkontrolujte, zda je webová aplikace schopna identifikovat spamové útoky na kontaktní formuláře použité na webu.
- Proxy server - Zkontrolujte, zda je síťový provoz sledován zařízeními proxy. Proxy server ztěžuje hackerům získání interních podrobností o síti, čímž chrání systém před vnějšími útoky.
- Filtry nevyžádané pošty - Ověřte, zda je filtrován příchozí a odchozí e-mailový provoz a zda jsou nevyžádané e-maily blokovány.
- Mnoho e-mailových klientů přichází s vestavěnými filtry spamu, které je třeba nakonfigurovat podle vašich potřeb. Tato pravidla konfigurace lze použít na záhlaví, předmět nebo tělo e-mailu.
- Firewall - Ujistěte se, že celá síť nebo počítače jsou chráněny branami firewall. Bránou firewall může být software nebo hardware, který blokuje neoprávněný přístup k systému. Brána firewall může zabránit odesílání dat mimo síť bez vašeho svolení.
- Zkuste využít všechny servery, stolní systémy, tiskárny a síťová zařízení.
- Ověřte, zda jsou všechna uživatelská jména a hesla šifrována a přenesena přes zabezpečená připojení, jako je https.
- Ověřte informace uložené v cookies webových stránek . Nemělo by to být v čitelném formátu.
- Ověřte dříve nalezené chyby zabezpečení a zkontrolujte, zda oprava funguje.
- Ověřte, zda v síti není otevřený port.
- Ověřte všechna telefonní zařízení.
- Ověřte zabezpečení sítě WIFI.
- Ověřte všechny metody HTTP. Metody PUT a Delete by na webovém serveru neměly být povoleny.
- Ověřte, zda heslo splňuje požadované standardy. Heslo by mělo mít alespoň 8 znaků a obsahovat alespoň jedno číslo a jeden speciální znak.
- Uživatelské jméno by nemělo být jako „správce“ nebo „správce“.
- Přihlašovací stránka aplikace by měla být uzamčena po několika neúspěšných pokusech o přihlášení.
- Chybové zprávy by měly být obecné a neměly by uvádět konkrétní podrobnosti o chybě, například „Neplatné uživatelské jméno“ nebo „Neplatné heslo“.
- Ověřte, zda jsou speciální znaky, značky HTML a skripty správně zpracovány jako vstupní hodnota.
- Interní podrobnosti systému by neměly být odhaleny v žádné z chybových nebo výstražných zpráv.
- Vlastní chybové zprávy by se měly koncovým uživatelům zobrazovat v případě selhání webové stránky.
- Ověřte použití položek registru. Citlivé informace by neměly být uchovávány v registru.
- Před nahráním na server je nutné zkontrolovat všechny soubory.
- Při komunikaci s různými interními moduly webové aplikace by se do URL neměly předávat citlivá data.
- V systému by nemělo být žádné pevně zakódované uživatelské jméno nebo heslo.
- Ověřte všechna vstupní pole s dlouhým vstupním řetězcem s mezerami i bez nich.
- Ověřte, zda je funkce resetování hesla zabezpečená.
- Ověřte žádost pro SQL Injection .
- Ověřte žádost pro Cross-Site Scripting .
- Důležité ověřování vstupu by mělo být prováděno na straně serveru namísto kontroly JavaScriptu na straně klienta.
- Kritické zdroje v systému by měly být k dispozici pouze oprávněným osobám a službám.
- Všechny protokoly přístupu by měly být udržovány se správnými přístupovými oprávněními.
- Ověřte, zda relace uživatele končí po odhlášení.
- Ověřte, zda je na serveru zakázáno procházení adresářů.
- Ověřte, zda jsou všechny aplikace a verze databáze aktuální.
- Ověřte manipulaci s URL a zkontrolujte, zda webová aplikace nezobrazuje žádné nežádoucí informace.
- Ověřte únik paměti a přetečení vyrovnávací paměti.
- Ověřte, zda je skenován příchozí síťový provoz, aby se zjistily útoky trojských koní.
- Ověřte, zda je systém bezpečný před Brute Force Attacks - metodou pokusu a omylu k vyhledání citlivých informací, jako jsou hesla.
- Ověřte, zda je systém nebo síť zabezpečena před útoky DoS (denial-of-service). Hacker může cílit na síť nebo na jeden počítač s nepřetržitými požadavky, kvůli kterým dojde k přetížení prostředků v cílovém systému, což má za následek odmítnutí služby pro legitimní požadavky.
- Ověřte aplikaci pro útoky vkládáním skriptů HTML.
- Ověření proti útokům COM a ActiveX.
- Ověření proti spoofingovým útokům. Spoofing může být několika typů - spoofing IP adresy, spoofing e-mailu,
- ARP spoofing, spoofing referrerů, spoofing ID volajícího, otrava sítí pro sdílení souborů, spoofing GPS.
- Zkontrolujte útok nekontrolovaného řetězce formátu - útok zabezpečení, který může způsobit selhání aplikace nebo na ní spustit škodlivý skript.
- Verify XML injection attack - slouží ke změně zamýšlené logiky aplikace.
- Ověření proti kanonizačním útokům.
- Ověřte, zda chybové stránky zobrazují nějaké informace, které mohou hackerovi pomoci při vstupu do systému.
- Ověřte, zda jsou některá důležitá data, jako je heslo, uložena v tajných souborech v systému.
- Ověřte, zda aplikace vrací více dat, než je požadováno.
Toto jsou pouze základní testovací scénáře, jak začít s Pentestem. Existují stovky pokročilých penetračních metod, které lze provést ručně nebo pomocí automatizačních nástrojů.
Další čtení:
Standardy pro testování pera
- PCI DSS (Standard zabezpečení dat v odvětví platebních karet)
- OWASP (Otevřít projekt zabezpečení webových aplikací)
- ISO / IEC 27002 , OSSTMM (Metodický manuál pro testování zabezpečení s otevřeným zdrojovým kódem)
Certifikace
- GPEN
- Přidružený tester zabezpečení ( AST )
- Senior Security Tester (SST)
- Certifikovaný penetrační tester ( CPT )
Závěr
Nakonec byste jako tester penetrace měli shromáždit a zaznamenat všechny chyby zabezpečení v systému. Neignorujte žádný scénář vzhledem k tomu, že nebude proveden koncovými uživateli.
jak deklarovat vícerozměrné pole v java
Pokud jste testerem penetrace, pomozte našim čtenářům s vašimi zkušenostmi, tipy a ukázkami testovacích případů, jak efektivně provádět Penetrační testování.
Doporučené čtení
- 19 výkonných nástrojů pro testování penetrace používaných profesionály v roce 2021
- Průvodce pro začátečníky k testování penetrace webových aplikací
- Alfa testování a beta testování (kompletní průvodce)
- Testování zabezpečení sítě a nejlepší nástroje pro zabezpečení sítě
- Průvodce testováním zabezpečení webových aplikací
- Kompletní průvodce pro testování ověřování sestavení (testování BVT)
- Funkční testování vs. nefunkční testování
- Nejlepší nástroje pro testování softwaru 2021 (QA Test Automation Tools)