beginners guide web application penetration testing
Penetrační testování aka Test pera je nejčastěji používanou technikou testování zabezpečení pro webové aplikace.
Testování penetrace webových aplikací se provádí simulací neoprávněných útoků interně nebo externě za účelem získání přístupu k citlivým datům.
Penetrace webem pomáhá koncovému uživateli zjistit možnost hackera získat přístup k datům z internetu, zjistit bezpečnost jeho e-mailových serverů a také poznat, jak bezpečný je webhostingový server a server.
Pojďme se nyní věnovat obsahu tohoto článku.
příkaz grep ve skriptu unixového shellu
(obraz zdroj )
V tomto kurzu penetračního testování jsem se pokusil pokrýt:
- Potřeba Pentestu pro testování webových aplikací,
- Standardní metodika dostupná pro Pentest,
- Přístup k webové aplikaci Pentest,
- Jaké jsou typy testování, které můžeme provádět,
- Kroky, které je třeba provést k provedení penetrační zkoušky,
- Nástroje, které lze použít pro testování,
- Někteří poskytovatelé služeb penetračního testování a
- Některá z certifikací pro testování penetrace webu
Doporučené nástroje pro skenování zranitelností:
# 1) Čistý parker
Netsparker je snadno použitelná a automatizovaná platforma pro testování zabezpečení webových aplikací, kterou můžete použít k identifikaci skutečných a zneužitelných zranitelností na svých webových stránkách.
#dva) Kiuwan
Najděte a opravte chyby zabezpečení v kódu v každé fázi SDLC.
Kiuwan vyhovuje nejpřísnějším bezpečnostním standardům včetně OWASP, CWE, SANS 25, HIPPA a dalších. Integrujte Kiuwan do svého IDE pro okamžitou zpětnou vazbu během vývoje. Kiuwan podporuje všechny hlavní programovací jazyky a integruje se s předními nástroji DevOps.
=> Naskenujte svůj kód zdarmaCo se naučíte:
- Proč je vyžadováno penetrační testování?
- Metodika testování penetrace na webu
- Druhy testování penetrace webu
- Přístup k testování webového pera:
- Nejlepší nástroje pro testování penetrace
- Nejlepší společnosti pro testování penetrace
- Některé certifikace pro testování penetrace:
- Závěr
- Doporučené čtení
Proč je vyžadováno penetrační testování?
Když mluvíme o bezpečnosti, nejčastější slovo, které slyšíme, je Zranitelnost .
Když jsem zpočátku začal pracovat jako tester zabezpečení, velmi často jsem se mýlil s tímto slovem Zranitelnost a jsem si jistý, že mnozí z vás, moji čtenáři, by padli na stejnou loď.
Ve prospěch všech mých čtenářů nejprve objasním rozdíl mezi zranitelností a testováním pera.
Takže co je Zranitelnost ? Zranitelnost je terminologie používaná k identifikaci nedostatků v systému, které mohou systém vystavit bezpečnostním hrozbám.
Skenování zranitelnosti nebo testování pera?
Skenování zranitelnosti umožňuje uživateli zjistit známé slabiny aplikace a definuje metody pro opravu a vylepšení celkového zabezpečení aplikace. V zásadě zjišťuje, zda jsou nainstalovány bezpečnostní opravy, zda jsou systémy správně nakonfigurovány tak, aby ztěžovaly útoky.
Testy perem simulují hlavně systémy v reálném čase a pomáhají uživateli zjistit, zda do systému mají přístup neoprávněné uživatelé, pokud ano, jaké škody mohou být způsobeny a na kterých datech atd.
Vulnerability Scanning je tedy metoda detektivní kontroly, která navrhuje způsoby, jak vylepšit bezpečnostní program a zajistit, aby se známé slabiny neobjevily znovu, zatímco test pera je metoda preventivní kontroly, která poskytuje celkový pohled na stávající vrstvu zabezpečení systému.
Obě metody mají sice svůj význam, ale bude záležet na tom, co se v rámci testování skutečně očekává.
Jako testeři je bezpodmínečně nutné vyjasnit si účel testování, než se pustíme do testování. Pokud máte v cíli jasno, můžete velmi dobře definovat, zda potřebujete provést kontrolu zranitelnosti nebo testování pera.
Důležitost a potřeba testování webových aplikací pomocí pera:
- Pentest Pomáhá při identifikaci neznámých zranitelností.
- Pomáhá při kontrole účinnosti celkových bezpečnostních zásad.
- Nápověda při testování veřejně vystavených komponent, jako jsou brány firewall, směrovače a DNS.
- Umožňuje uživateli zjistit nejzranitelnější cestu, kterou lze provést útok
- Pomáhá při hledání mezer, které mohou vést ke krádeži citlivých dat.
Pokud se podíváte na současnou poptávku na trhu, došlo k prudkému nárůstu využití mobilních zařízení, což se stává hlavním potenciálem útoků. Přístup na webové stránky prostřednictvím mobilních telefonů je náchylný k častějším útokům, a tedy ke kompromisu dat.
Penetrační testování se tak stává velmi důležitým pro zajištění vybudování bezpečného systému, který mohou uživatelé používat bez obav z hackerství nebo ztráty dat.
Metodika testování penetrace na webu
Metodika není nic jiného než soubor pokynů bezpečnostního průmyslu o tom, jak by testování mělo probíhat. Existuje několik dobře zavedených a slavných metodik a standardů, které lze použít pro testování, ale protože každá webová aplikace vyžaduje různé typy testů, které mají být provedeny, mohou testeři vytvořit své vlastní metodiky odkazem na standardy dostupné na trhu.
Některé z metodik a standardů testování zabezpečení jsou -
- OWASP (Otevřít projekt zabezpečení webových aplikací)
- OSSTMM (Metodický manuál pro testování zabezpečení s otevřeným zdrojovým kódem)
- PTF (Rámec pro testování penetrace)
- ISSAF (Framework pro hodnocení bezpečnosti informačních systémů)
- PCI DSS (Standard zabezpečení dat v odvětví platebních karet)
Scénáře testu:
Níže jsou uvedeny některé testovací scénáře, které lze testovat jako součást Testování penetrace webových aplikací (WAPT):
co je soubor json, jak se otevřít
- Cross Site Scripting
- SQL Injection
- Nefunkční ověřování a správa relací
- Chyby při nahrávání souborů
- Útoky serverů na mezipaměť
- Nesprávné konfigurace zabezpečení
- Padělání žádostí mezi weby
- Prolomení hesla
I když jsem tento seznam zmínil, testeři by neměli slepě vytvářet svou metodiku testování založenou na výše uvedených konvenčních standardech.
Tady jepříkladdokázat, proč to říkám.
Vezměte v úvahu, že jste vyzváni k penetračnímu testování webu elektronického obchodování, nyní se zamyslete nad tím, zda lze identifikovat všechny slabiny webu elektronického obchodování pomocí konvenčních metod OWASP, jako je XSS, SQL injection atd.
Odpověď zní ne, protože eCommerce pracuje na velmi odlišné platformě a technologii ve srovnání s jinými webovými stránkami. Aby bylo testování vašeho webu pro eCommerce efektivní, měli by testeři navrhnout metodiku zahrnující chyby, jako je Správa objednávek, Správa kupónů a odměn, Integrace platební brány a Integrace systému správy obsahu.
Než se tedy rozhodnete pro metodiku, ujistěte se, jaké typy webových stránek se mají testovat a která metoda pomůže při hledání maximální zranitelnosti.
Druhy testování penetrace webu
Webové aplikace mohou být testovány na penetraci dvěma způsoby. Testy mohou být navrženy tak, aby simulovaly vnitřní nebo vnější útok.
# 1) Interní penetrační testování -
Jak název napovídá, interní testování pera se provádí v rámci organizace přes LAN, proto zahrnuje testování webových aplikací hostovaných na intranetu.
To pomáhá zjistit, zda v podnikové bráně firewall mohou existovat slabá místa.
Vždy věříme, že k útokům může dojít pouze zvenčí a mnohokrát je interní Pentest přehlížen nebo mu není přikládán velký význam.
V zásadě zahrnuje útoky škodlivých zaměstnanců nespokojenými zaměstnanci nebo dodavateli, kteří by rezignovali, ale věděli o zásadách a heslech vnitřní bezpečnosti, útokech sociálního inženýrství, simulaci phishingových útoků a útokech využívajících oprávnění uživatelů nebo zneužití odemčeného terminálu.
Testování se provádí hlavně přístupem do prostředí bez řádných pověření a identifikací, zda
#dva) Testování vnější penetrace -
Jedná se o útoky prováděné externě zvenčí organizace a zahrnují testování webových aplikací hostovaných na internetu.
Testeři se chovají jako hackeři, kteří si vnitřního systému moc neuvědomují.
Pro simulaci takových útoků dostávají testeři IP cílového systému a neposkytují žádné další informace. Jsou povinni prohledávat a skenovat veřejné webové stránky a najít naše informace o cílových hostitelích a poté kompromitovat nalezené hostitele.
V zásadě zahrnuje testování serverů, bran firewall a IDS.
Přístup k testování webového pera:
Může být prováděno ve 3 fázích:
# 1) Fáze plánování (před testováním)
Před zahájením testování je vhodné naplánovat, jaké typy testování budou provedeny, jak bude testování provedeno, určit, zda QA potřebuje další přístup k nástrojům atd.
- Definice rozsahu - To je stejné jako naše funkční testování, kde definujeme rozsah našeho testování před zahájením našeho testování.
- Dostupnost dokumentace pro testery - Zajistěte, aby testeři měli všechny požadované dokumenty, jako jsou dokumenty popisující webovou architekturu, integrační body, integraci webových služeb atd. Tester by měl znát základy protokolu HTTP / HTTPS a vědět o architektuře webových aplikací, způsobech zachycování provozu.
- Stanovení kritérií úspěchu - Na rozdíl od našich funkčních testovacích případů, kde můžeme odvodit očekávané výsledky z požadavků uživatelů / funkčních požadavků, testování perem funguje na jiném modelu. Je třeba definovat a schválit kritéria úspěchu nebo kritéria pro absolvování testovacího případu.
- Kontrola výsledků testu z předchozího testování - Pokud již bylo provedeno předchozí testování, je dobré zkontrolovat výsledky testu, abyste pochopili, jaké chyby zabezpečení existovaly v minulosti a jaké nápravné opatření bylo podniknuto k vyřešení. To vždy poskytuje lepší obraz testerů.
- Porozumění životnímu prostředí - Před zahájením testování by testeři měli získat znalosti o prostředí. Tento krok by měl zajistit, aby jim porozuměli brány firewall nebo jiné bezpečnostní protokoly, u kterých by bylo nutné provést testování. Prohlížeč, který má být testován, by měl být převeden na útočnou platformu, což se obvykle provádí změnou proxy.
# 2) Útoky / Fáze provádění (během testování):
Testování webové penetrace lze provádět z jakéhokoli místa, protože poskytovatel internetu by neměl mít žádná omezení na porty a služby.
- Zajistěte spuštění testu s různými uživatelskými rolemi - Testeři by měli zajistit spuštění testů s uživateli, kteří mají různé role, protože systém se může chovat odlišně, pokud jde o uživatele, kteří mají různá oprávnění.
- Povědomí o tom, jak zacházet po vykořisťování - Testeři musí dodržovat kritéria úspěchu definovaná jako součást fáze 1, aby mohli hlásit jakékoli zneužití, měli by také dodržovat definovaný proces hlášení zranitelnosti nalezený během testování. Tento krok zahrnuje hlavně tester, aby zjistil, co je třeba udělat poté, co zjistí, že byl systém kompromitován.
- Generování protokolů o zkoušce - Jakékoli testování provedené bez řádného hlášení organizaci příliš nepomůže, totéž platí pro penetrační testování webových aplikací. Aby bylo zajištěno, že výsledky testu budou správně sdíleny se všemi zúčastněnými stranami, měli by testeři vytvářet správné zprávy s podrobnostmi o nalezených zranitelných místech, metodice použité pro testování, závažnosti a umístění nalezeného problému.
# 3) Fáze po spuštění (po testování):
Jakmile je testování dokončeno a protokoly o zkouškách sdíleny se všemi dotčenými týmy, měli by všichni následující seznam zpracovat -
- Navrhnout nápravu - Testování perem by nemělo končit jen identifikací zranitelností. Dotyčný tým včetně člena QA by měl zkontrolovat nálezy nahlášené Testery a poté diskutovat o nápravě.
- Znovu otestovat chyby zabezpečení - Po provedení a implementaci nápravy by testeři měli znovu otestovat, aby zajistili, že se opravené chyby zabezpečení neobjeví jako součást jejich opakovaného testování.
- Vyčištění - V rámci Pentestu provádějí testeři změny nastavení serveru proxy, proto je třeba provést vyčištění a všechny změny vrátit zpět.
Nejlepší nástroje pro testování penetrace
Nyní, protože jste si již přečetli celý článek, věřím, že nyní máte mnohem lepší představu o tom, co a jak můžeme penetrační testovat webovou aplikaci.
Řekněte mi, můžeme provést penetrační testování ručně, nebo k tomu vždy dojde automatizací pomocí nástroje. Není pochyb o tom, myslím, že většina z vás říká Automation. :)
To je pravda, protože automatizace přináší rychlost, vyhýbá se manuální lidské chybě, vynikajícímu pokrytí a několika dalším výhodám, ale pokud jde o test pera, vyžaduje to, abychom provedli nějaké ruční testování.
Ruční testování pomáhá při hledání zranitelností souvisejících s obchodní logikou a snižuje počet falešných poplachů.
Nástroje mají sklon dávat mnoho falešných poplachů, a proto je zapotřebí ručního zásahu, aby se zjistilo, zda se jedná o skutečné chyby zabezpečení.
Přečtěte si také - Jak otestovat zabezpečení webových aplikací pomocí nástroje Acunetix Web Vulnerability Scanner (WVS)
Jsou vytvořeny nástroje k automatizaci našeho testování. Níže naleznete seznam některých nástrojů, které lze pro Pentest použít:
Další nástroje najdete také - 37 výkonných nástrojů pro testování pera pro každý penetrační tester
Nejlepší společnosti pro testování penetrace
Poskytovatelé služeb jsou společnosti poskytující služby zajišťující testovací potřeby organizací. Obvykle vynikají a mají odborné znalosti v různých oblastech testování a mohou provádět testování v hostitelském testovacím prostředí.
Níže jsou uvedeny některé z předních společností, které poskytují služby penetračního testování:
- PSC (Soulad se zabezpečením plateb)
- Netragard
- Securestate
- CoalFire
- VYSOKÁ BEZPEČNOST
- Nettitude
- 360
- NetSPi
- ControlScan
- Skods Minotti
- 2 | Sec
- Posouzení bezpečnosti
- Bezpečnostní auditní systémy
- Hacklabs
- CQR
Některé certifikace pro testování penetrace:
Pokud máte zájem získat certifikaci pro certifikaci penetrace webových aplikací, můžete se rozhodnout pro níže uvedené certifikace:
- OSWE (Offensive Security Web Expert)
- GWAPT (Tester penetrace webových aplikací GIAC)
- CWAPT (Certified Web App Penetration Tester)
- eWPT (elearnSecurity Web Application Penetration Tester)
Závěr
V tomto kurzu jsme představili přehled o tom, jak se provádí testování penetrace pro webové aplikace.
S touto informací může tester penetrace zahájit testy zranitelnosti.
nejlepší software pro snímání obrazovky Windows 10
V ideálním případě nám penetrační testování může pomoci vytvořit bezpečný software. Jedná se o nákladnou metodu, takže frekvenci lze udržovat jako jednou za rok.
Chcete-li se dozvědět více o testování penetrace, přečtěte si níže související články:
- Přístup k testování zabezpečení webových aplikací
- Penetrační testování - kompletní průvodce s ukázkovými testovacími případy
- Jak testovat zabezpečení aplikací - Techniky testování zabezpečení webových a desktopových aplikací
Níže prosím sdílejte své názory nebo zkušenosti s Pentestem.
Doporučené čtení
- Průvodce testováním zabezpečení webových aplikací
- Testování zabezpečení sítě a nejlepší nástroje pro zabezpečení sítě
- Nejlepší nástroje pro testování softwaru 2021 (QA Test Automation Tools)
- Alfa testování a beta testování (kompletní průvodce)
- Testování zabezpečení (kompletní průvodce)
- Kompletní příručka pro testování penetrace se vzorky testovacích případů
- Nástroje a poskytovatelé služeb pro testování penetrace mobilních aplikací
- Rozdíl mezi stolním počítačem, klientským serverem a webovým testováním