beginners guide web application penetration testing
Penetračné testovanie aka Pen Test je najbežnejšie používanou technikou testovania zabezpečenia webových aplikácií.
Testovanie prieniku webových aplikácií sa vykonáva simuláciou neoprávnených útokov interne alebo externe, aby sa získal prístup k citlivým údajom.
Webový prienik pomáha koncovému používateľovi zistiť možnosť hackera získať prístup k údajom z internetu, zistiť bezpečnosť jeho e-mailových serverov a tiež zistiť, ako bezpečný je webhostingový server a server.
Teraz sa pozrime na obsah tohto článku.
otázky týkajúce sa manuálneho a automatizovaného testovania
(obrázok zdroj )
V tomto návode na testovanie penetrácie som sa snažil zahrnúť:
- Potreba Pentestu na testovanie webových aplikácií,
- Štandardná metodika dostupná pre Pentest,
- Prístup k webovej aplikácii Pentest,
- Aké sú typy testovania, ktoré môžeme vykonať,
- Kroky potrebné na vykonanie penetračného testu,
- Nástroje, ktoré sa dajú použiť na testovanie,
- Niektorí poskytovatelia služieb penetračného testovania a
- Niektoré z certifikácií pre testovanie prenikania na web
Odporúčané nástroje na skenovanie zraniteľností:
# 1) Čistý parker
Netsparker je ľahko použiteľná a automatizovaná platforma na testovanie zabezpečenia webových aplikácií, ktorú môžete použiť na identifikáciu skutočných a zneužiteľných chýb zabezpečenia na svojich webových stránkach.
#dva) Kiuwan
Nájdite a opravte chyby v kóde v každej fáze SDLC.
Kiuwan je v súlade s najprísnejšími bezpečnostnými štandardmi vrátane OWASP, CWE, SANS 25, HIPPA a ďalších. Integrujte Kiuwan do svojho IDE pre okamžitú spätnú väzbu počas vývoja. Kiuwan podporuje všetky hlavné programovacie jazyky a integruje sa s poprednými nástrojmi DevOps.
=> Naskenujte svoj kód zadarmoČo sa dozviete:
- Prečo sa vyžaduje penetračné testovanie?
- Metodika testovania prenikania na web
- Typy testovania prenikania na web
- Prístup k testovaniu webového pera:
- Najlepšie nástroje na testovanie penetrácie
- Najlepšie spoločnosti na testovanie penetrácie
- Niektoré certifikáty penetračného testovania:
- Záver
- Odporúčané čítanie
Prečo sa vyžaduje penetračné testovanie?
Keď hovoríme o bezpečnosti, najbežnejšie slovo, ktoré počujeme, je Zraniteľnosť .
Keď som pôvodne začal pracovať ako tester bezpečnosti, veľmi často som sa mýlil s týmto slovom Zraniteľnosť a som si istý, že mnohí z vás, moji čitatelia, by padli na jednu loď.
V prospech všetkých mojich čitateľov najskôr objasním rozdiel medzi zraniteľnosťou a testovaním pera.
Takže, čo je Zraniteľnosť ? Zraniteľnosť je terminológia používaná na identifikáciu chýb v systéme, ktoré môžu systém vystaviť bezpečnostným hrozbám.
Skenovanie zraniteľnosti alebo testovanie perom?
Kontrola zraniteľnosti umožňuje používateľovi zistiť známe slabiny aplikácie a definuje metódy na opravu a zlepšenie celkovej bezpečnosti aplikácie. V zásade zisťuje, či sú nainštalované bezpečnostné opravy, či sú systémy správne nakonfigurované tak, aby sťažovali útoky.
Testy perom simulujú hlavne systémy v reálnom čase a pomáhajú používateľovi zistiť, či k systému majú prístup neoprávnené osoby, ak áno, aké škody môžu byť spôsobené a na ktorých údajoch atď.
Zraniteľnosť skenovania je teda metóda detektívneho riadenia, ktorá navrhuje spôsoby, ako vylepšiť bezpečnostný program a zabezpečiť, aby sa neobjavili známe slabiny, zatiaľ čo test perom je metóda preventívnej kontroly, ktorá poskytuje celkový pohľad na existujúcu vrstvu zabezpečenia systému.
Obidve metódy majú síce svoj význam, ale bude závisieť od toho, čo sa v rámci testovania skutočne očakáva.
Ako testeri je nevyhnutné si ujasniť účel testovania skôr, ako sa pustíme do testovania. Ak máte jasný cieľ, môžete veľmi dobre definovať, či potrebujete vykonať kontrolu zraniteľnosti alebo otestovať pero.
Dôležitosť a potreba testovania perom webovej aplikácie:
- Pentest Pomáha pri identifikácii neznámych zraniteľností.
- Pomáha pri kontrole účinnosti celkových bezpečnostných politík.
- Pomoc pri testovaní verejne vystavených komponentov, ako sú brány firewall, smerovače a DNS.
- Umožňuje používateľovi zistiť najzraniteľnejšiu cestu, cez ktorú je možné vykonať útok
- Pomáha nájsť medzery, ktoré môžu viesť ku krádeži citlivých údajov.
Ak sa pozriete na súčasný dopyt na trhu, došlo k prudkému nárastu používania mobilných telefónov, ktoré sa stávajú hlavným potenciálom útokov. Prístup na webové stránky prostredníctvom mobilných telefónov je náchylný k častejším útokom, a teda k ohrozeniu údajov.
ľavé spojenie verzus ľavé vonkajšie spojenie
Penetračné testovanie sa tak stáva veľmi dôležitým pri zabezpečovaní budovania bezpečného systému, ktorý môžu používatelia používať bez obáv z hacknutia alebo straty údajov.
Metodika testovania prenikania na web
Metodika nie je nič iné ako súbor pokynov odvetvia bezpečnostného priemyslu, ako by sa malo testovanie vykonávať. Existuje niekoľko dobre zabehnutých a slávnych metodík a štandardov, ktoré sa dajú použiť na testovanie, ale pretože každá webová aplikácia vyžaduje iné typy testov, ktoré majú byť vykonané, môžu testeri vytvoriť svoje vlastné metodiky podľa noriem dostupných na trhu.
Niektoré z metodík a štandardov testovania bezpečnosti sú -
- OWASP (Otvoriť projekt zabezpečenia webových aplikácií)
- OSSTMM (Metodický príručka na testovanie bezpečnosti otvoreného zdroja)
- PTF (Rámec testovania penetrácie)
- ISSAF (Rámec hodnotenia bezpečnosti informačných systémov)
- PCI DSS (Štandard zabezpečenia údajov odvetvia platobných kariet)
Testovacie scenáre:
Ďalej sú uvedené niektoré testovacie scenáre, ktoré je možné testovať ako súčasť Testovanie penetrácie webových aplikácií (WAPT):
- Cross-Site Scripting
- SQL Injection
- Nefunkčné overenie a správa relácie
- Chyby pri nahrávaní súborov
- Útoky serverov na medzipamäť
- Nesprávne konfigurácie zabezpečenia
- Falšovanie požiadaviek medzi stránkami
- Prelomenie hesla
Aj keď som už spomenul zoznam, testeri by nemali slepo vytvárať svoju metodiku testov založenú na vyššie uvedených bežných normách.
Tu jepríkladdokázať, prečo to hovorím.
Zvážte, či sa od vás vyžaduje penetračné testovanie webových stránok elektronického obchodu, a teraz sa zamyslite, či je možné identifikovať všetky chyby zabezpečenia webových stránok elektronického obchodu pomocou konvenčných metód OWASP, ako sú napríklad XSS, vstrekovanie SQL atď.
Odpoveď znie nie, pretože eCommerce pracuje na veľmi odlišnej platforme a technológii v porovnaní s inými webovými stránkami. Aby bolo testovanie webových stránok elektronického obchodu efektívne, mali by testeri navrhnúť metodiku zahŕňajúcu chyby, ako je správa objednávok, správa kupónov a odmien, integrácia platobnej brány a integrácia systému správy obsahu.
Než sa teda rozhodnete pre metodiku, buďte si veľmi istí, aké typy webových stránok sa majú testovať a ktorá metóda pomôže pri hľadaní maximálnych zraniteľností.
Typy testovania prenikania na web
Webové aplikácie môžu byť testované na penetráciu dvoma spôsobmi. Testy môžu byť navrhnuté tak, aby simulovali útok zvnútra alebo zvonka.
# 1) Interné penetračné testovanie -
Ako už názov napovedá, interné testovanie pera sa v organizácii vykonáva prostredníctvom siete LAN, a preto zahŕňa testovanie webových aplikácií hostených na intranete.
To pomáha zistiť, či vo firemnom firewalle môžu existovať chyby zabezpečenia.
Vždy sme presvedčení, že k útokom môže dôjsť iba navonok, a mnohokrát je interný Pentest prehliadaný alebo mu neprichádza veľký význam.
V zásade to zahŕňa škodlivé útoky zamestnancov na nespokojných zamestnancov alebo dodávateľov, ktorí by rezignovali, ale boli by oboznámení s politikami a heslami vnútornej bezpečnosti, sociálnymi inžinierskymi útokmi, simuláciou phishingových útokov a útokmi využívajúcimi privilégiá používateľov alebo zneužitím odomknutého terminálu.
Testovanie sa vykonáva hlavne prístupom do prostredia bez náležitých údajov a identifikáciou, či
#dva) Testovanie vonkajšej penetrácie -
Jedná sa o útoky vykonávané externe mimo organizácie a zahŕňajú testovanie webových aplikácií hostených na internete.
Testéri sa správajú ako hackeri, ktorí si príliš neuvedomujú vnútorný systém.
Na simuláciu takýchto útokov dostanú testéri IP cieľového systému a neposkytnú im žiadne ďalšie informácie. Vyžadujú sa od nich, aby prehľadávali a skenovali verejné webové stránky a našli naše informácie o cieľových hostiteľoch, a potom nájdených hostiteľov kompromitujú.
V zásade obsahuje testovacie servery, brány firewall a IDS.
Prístup k testovaniu webového pera:
Môže sa vykonávať v 3 fázach:
# 1) Fáza plánovania (pred testovaním)
Pred začatím testovania je vhodné naplánovať, aké typy testovania sa budú vykonávať, ako sa bude testovanie vykonávať, určiť, či QA vyžaduje ďalší prístup k nástrojom atď.
- Vymedzenie rozsahu pôsobnosti - Je to to isté ako naše funkčné testovanie, pri ktorom definujeme rozsah nášho testovania pred začatím testovacieho úsilia.
- Dostupnosť dokumentácie pre testerov - Zaistite, aby testeri mali všetky požadované dokumenty, ako sú dokumenty s podrobnými podrobnosťami o webovej architektúre, integračných bodoch, integrácii webových služieb atď. Tester by mal poznať základné informácie o protokole HTTP / HTTPS a mal by vedieť o architektúre webových aplikácií, spôsoboch zachytávania prenosu.
- Stanovenie kritérií úspechu - Na rozdiel od našich funkčných testovacích prípadov, kde môžeme odvodiť očakávané výsledky od požiadaviek používateľov / funkčných požiadaviek, testovanie perom funguje na inom modeli. Je potrebné definovať a schváliť kritériá úspechu alebo kritériá úspešného absolvovania testovacieho prípadu.
- Kontrola výsledkov testu z predchádzajúceho testovania - Ak sa niekedy robilo predchádzajúce testovanie, je dobré skontrolovať výsledky testov, aby ste pochopili, aké chyby zabezpečenia existovali v minulosti a aké nápravné opatrenia sa podnikli na ich vyriešenie. Toto vždy poskytne lepší obraz o testeroch.
- Pochopenie životného prostredia - Testéri by mali pred začatím testovania získať vedomosti o prostredí. Tento krok by mal zabezpečiť, aby mali vedomosti o bránach firewall alebo iných bezpečnostných protokoloch, ktorých deaktivácia by sa pri testovaní mohla vyžadovať. Prehliadač, ktorý sa má testovať, by sa mal konvertovať na útočnú platformu, čo sa zvyčajne robí zmenou proxy serverov.
# 2) Útoky / Fáza vykonania (počas testovania):
Testovanie webového prieniku je možné vykonať z ľubovoľného miesta, pretože poskytovateľ internetu by nemal mať obmedzenia na porty a služby.
- Zaistite spustenie testu s rôznymi rolami používateľov - Testéri by mali zabezpečiť vykonanie testov s používateľmi, ktorí majú rôzne roly, pretože systém sa môže správať odlišne, pokiaľ ide o používateľov s rôznymi oprávneniami.
- Povedomie o tom, ako zvládnuť následné využitie - Testéri musia pri hlásení akéhokoľvek zneužitia dodržiavať kritériá úspechu definované ako súčasť fázy 1. Mali by tiež dodržiavať definovaný proces nahlasovania chýb zabezpečenia zistených počas testovania. Tento krok spočíva hlavne v tom, že tester zistí, čo je potrebné urobiť, keď zistí, že bol systém napadnutý.
- Generovanie protokolov o testoch - Akékoľvek testovanie vykonané bez správneho vykazovania organizácii príliš nepomáha, to isté platí pre penetračné testovanie webových aplikácií. Aby sa zabezpečilo, že výsledky testov budú správne zdieľané so všetkými zúčastnenými stranami, mali by testeri vytvárať správne správy s podrobnosťami o nájdených zraniteľnostiach, metodológii použitej na testovanie, závažnosti a umiestnení nájdeného problému.
# 3) Fáza po spustení (po testovaní):
Po dokončení testovania a zdieľaní správ o teste so všetkými dotknutými tímami by mali všetci nasledujúci zoznam vypracovať -
- Navrhnúť nápravu - Testovanie perom by sa nemalo skončiť iba identifikáciou slabých miest. Dotknutý tím vrátane člena QA by mal preskúmať zistenia nahlásené testermi a potom prediskutovať nápravu.
- Znova otestovať chyby zabezpečenia - Po vykonaní a implementácii nápravy by testeri mali vykonať opätovné testovanie, aby sa zabezpečilo, že sa opravené chyby zabezpečenia nezobrazia ako súčasť ich opakovaného testovania.
- Vyčistiť - V rámci testu Pentest testéri vykonávajú zmeny v nastaveniach servera proxy, takže by sa malo vykonať vyčistenie a všetky zmeny by sa mali vrátiť späť.
Najlepšie nástroje na testovanie penetrácie
Pretože ste si už prečítali celý článok, myslím si, že teraz máte oveľa lepšiu predstavu o tom, čo a ako môžeme testovať prienikom webovej aplikácie.
Takže mi povedzte, či môžeme testovanie penetrácie vykonať manuálne, alebo sa to stane vždy automatizáciou pomocou nástroja. Niet pochýb o tom, myslím si, že väčšina z vás hovorí o automatizácii. :)
To je pravda, pretože automatizácia prináša rýchlosť, vyhýba sa manuálnym ľudským chybám, vynikajúcemu pokrytiu a niekoľkým ďalším výhodám, ale pokiaľ ide o test pera, vyžaduje od nás vykonanie niektorých manuálnych testov.
Ručné testovanie pomáha pri hľadaní zraniteľností súvisiacich s obchodnou logikou a znižuje počet falošných poplachov.
Nástroje sú náchylné poskytovať veľa falošných poplachov, a preto je potrebný manuálny zásah, aby sa zistilo, či ide o skutočné chyby zabezpečenia.
Prečítajte si tiež - Ako otestovať zabezpečenie webových aplikácií pomocou nástroja Acunetix Web Vulnerability Scanner (WVS)
Vytvárajú sa nástroje na automatizáciu nášho testovacieho úsilia. Nižšie uvádzame zoznam niektorých nástrojov, ktoré je možné použiť pre Pentest:
Ďalšie nástroje môžete tiež nájsť - 37 výkonných nástrojov na testovanie pera pre každý penetračný tester
rozdiel medzi testovaním záťaže a testovaním výkonu
Najlepšie spoločnosti na testovanie penetrácie
Poskytovatelia služieb sú spoločnosti poskytujúce služby vyhovujúce testovacím potrebám organizácií. Spravidla vynikajú a majú odborné znalosti v rôznych oblastiach testovania a môžu testovanie vykonávať v hostenom testovacom prostredí.
Ďalej sú uvedené niektoré z popredných spoločností poskytujúcich služby penetračného testovania:
- PSC (Súlad so zabezpečením platieb)
- Netragard
- Zabezpečiť
- CoalFire
- VYSOKÁ bezpečnosť
- Nettitude
- 360
- NetSPi
- ControlScan
- Skods Minotti
- 2 | odd
- Posúdenie bezpečnosti
- Systémy bezpečnostného auditu
- Hacklabs
- CQR
Niektoré certifikáty penetračného testovania:
Ak máte záujem získať certifikáciu prieniku penetrácie webových aplikácií, môžete sa rozhodnúť pre nižšie uvedené certifikácie:
- OSWE (Offensive Security Web Expert)
- GWAPT (Tester penetrácie webových aplikácií GIAC)
- CWAPT (Certifikovaný tester penetrácie webových aplikácií)
- eWPT (tester penetrácie webových aplikácií elearnSecurity)
Záver
V tomto tutoriáli sme predstavili prehľad o tom, ako sa vykonáva penetračné testovanie webových aplikácií.
S týmito informáciami môže tester penetrácie spustiť testy zraniteľnosti.
V ideálnom prípade nám penetračné testovanie môže pomôcť vytvoriť bezpečný softvér. Je to nákladná metóda, takže frekvenciu je možné udržiavať raz ročne.
Ak sa chcete dozvedieť viac o testovaní penetrácie, prečítajte si nižšie súvisiace články:
- Prístup k testovaniu bezpečnosti webových aplikácií
- Testovanie prieniku - Kompletný sprievodca so vzorovými testovacími prípadmi
- Ako testovať zabezpečenie aplikácií - techniky testovania zabezpečenia webových a desktopových aplikácií
Zdieľajte nižšie svoje názory alebo skúsenosti s Pentestom.
Odporúčané čítanie
- Sprievodca testovaním bezpečnosti webových aplikácií
- Testovanie zabezpečenia siete a najlepšie nástroje zabezpečenia siete
- Najlepšie nástroje na testovanie softvéru 2021 (QA Test Automation Tools)
- Alfa testovanie a beta testovanie (kompletný sprievodca)
- Testovanie bezpečnosti (kompletný sprievodca)
- Kompletný sprievodca testovaním penetrácie so vzorovými testovacími prípadmi
- Nástroje a poskytovatelia služieb na testovanie penetrácie mobilných aplikácií
- Rozdiel medzi počítačom, klientskym serverom a webom