beginners guide web application penetration testing
Preskus penetracije aka Pen Test je najpogosteje uporabljena tehnika testiranja varnosti za spletne aplikacije.
Testiranje penetracije spletnih aplikacij se izvaja s simulacijo nepooblaščenih napadov znotraj ali zunaj, da bi dobili dostop do občutljivih podatkov.
Spletna penetracija pomaga končnemu uporabniku, da ugotovi, kako heker lahko dostopa do podatkov z interneta, se seznani z varnostjo svojih e-poštnih strežnikov in tudi spozna, kako varni sta spletno gostovanje in strežnik.
No, poglejmo zdaj vsebino tega članka.
implementacija dijkstrinega algoritma v javi
(slika vir )
V tej vadnici testiranja penetracije sem poskušal zajeti:
- Potreba Pentesta po testiranju spletnih aplikacij,
- Standardna metodologija, ki je na voljo za Pentest,
- Pristop za spletno aplikacijo Pentest,
- Katere vrste testiranja lahko izvedemo,
- Koraki za izvedbo preskusa penetracije,
- Orodja, ki se lahko uporabljajo za testiranje,
- Nekateri ponudniki storitev preizkusa penetracije in
- Nekateri certifikati za testiranje spletnega prodora
Priporočena orodja za pregled ranljivosti:
# 1) Neto parkirišče
Netsparker je enostavna za uporabo in avtomatizirana platforma za testiranje varnosti spletnih aplikacij, s katero lahko prepoznate resnične in izkoriščevalne ranljivosti na svojih spletnih mestih.
#two) Kiuwan
Poiščite in odpravite ranljivosti v svoji kodi na vsaki stopnji SDLC.
Kiuwan je skladen z najstrožjimi varnostnimi standardi, vključno z OWASP, CWE, SANS 25, HIPPA in drugimi. Vključite Kiuwan v svoj IDE za takojšnje povratne informacije med razvojem. Kiuwan podpira vse glavne programske jezike in se integrira z vodilnimi orodji DevOps.
=> Skenirajte kodo brezplačnoKaj se boste naučili:
- Zakaj je potrebno testiranje penetracije?
- Metodologija preskušanja spletnega prodora
- Vrste testiranja penetracije na spletu
- Pristop testiranja spletnega peresa:
- Orodja za testiranje vrhunske penetracije
- Najboljša podjetja za testiranje penetracije
- Nekaj certifikatov o preizkusu penetracije:
- Zaključek
- Priporočeno branje
Zakaj je potrebno testiranje penetracije?
Ko govorimo o varnosti, je najpogostejša beseda, ki jo slišimo Ranljivost .
Ko sem sprva začel delati kot varnostni preizkuševalec, sem se zelo pogosto zmedel s to besedo ranljivost in prepričan sem, da bi mnogi izmed vas, moji bralci, padli v isti čoln.
V korist vseh svojih bralcev bom najprej pojasnil razliko med ranljivostjo in testiranjem pisala.
Torej, kaj je Ranljivost ? Ranljivost je terminologija, ki se uporablja za prepoznavanje napak v sistemu, ki lahko sistem izpostavijo varnostnim grožnjam.
Skeniranje ranljivosti ali testiranje pisala?
Skeniranje ranljivosti omogoča uporabniku, da ugotovi znane slabosti aplikacije in opredeli metode za odpravo in izboljšanje splošne varnosti aplikacije. V bistvu ugotovi, ali so nameščeni varnostni popravki, ali so sistemi pravilno konfigurirani za oteževanje napadov.
Preizkusi s peresom v glavnem simulirajo sisteme v realnem času in uporabniku pomagajo ugotoviti, ali lahko do sistema dostopajo nepooblaščeni uporabniki, če da, kakšno škodo lahko povzroči in katerim podatkom itd.
Skeniranje ranljivosti je torej detektivska nadzorna metoda, ki predlaga načine za izboljšanje varnostnega programa in zagotovitev, da se znane slabosti ne pojavijo na novo, medtem ko je test peresa preventivni nadzorni način, ki daje splošen pregled obstoječe varnostne plasti sistema.
Obe metodi imata sicer pomembnost, vendar bo odvisno od tega, kaj se v resnici pričakuje v okviru testiranja.
Kot preizkuševalci moramo nujno natančno določiti namen testiranja, preden se lotimo testiranja. Če ste jasni glede cilja, lahko zelo dobro določite, ali morate opraviti pregled ranljivosti ali testiranje pisala.
Pomen in potreba po preizkušanju pisala za spletne aplikacije:
- Pentest pomaga pri prepoznavanju neznanih ranljivosti.
- Pomaga pri preverjanju učinkovitosti splošnih varnostnih politik.
- Pomoč pri preizkušanju javno izpostavljenih komponent, kot so požarni zidovi, usmerjevalniki in DNS.
- Omogoča uporabniku, da ugotovi najbolj ranljivo pot, po kateri je mogoče izvesti napad
- Pomaga pri iskanju vrzeli, ki lahko vodijo do kraje občutljivih podatkov.
Če pogledate trenutno povpraševanje na trgu, se je uporaba mobilnih naprav močno povečala, kar postaja glavni potencial za napade. Dostop do spletnih mest prek mobilnih naprav je nagnjen k pogostejšim napadom in s tem do ogrožanja podatkov.
Testiranje penetracije tako postaja zelo pomembno pri zagotavljanju, da zgradimo varen sistem, ki ga lahko uporabniki uporabljajo brez skrbi, da bi vdrli ali izgubili podatke.
Metodologija preskušanja spletnega prodora
Metodologija ni nič drugega kot nabor smernic varnostne industrije o tem, kako naj se testiranje izvaja. Obstaja nekaj dobro uveljavljenih in znanih metodologij in standardov, ki jih je mogoče uporabiti za testiranje, toda ker vsaka spletna aplikacija zahteva izvedbo različnih vrst preskusov, lahko preizkuševalci ustvarijo svoje lastne metodologije s sklicevanjem na standarde, ki so na voljo na trgu.
Nekatere metodologije in standardi preskušanja varnosti so -
- OWASP (Odpri projekt varnosti spletnih aplikacij)
- OSSTMM (Odprtokodni priročnik za metodologijo preskušanja varnosti)
- PTF (Okvir za preizkušanje penetracije)
- ISSAF (Okvir za oceno varnosti informacijskih sistemov)
- PCI DSS (Standard varnosti podatkov o plačilnih karticah)
Preskusni scenariji:
Spodaj so navedeni nekateri preskusni scenariji, ki jih je mogoče preizkusiti kot del Testiranje penetracije spletnih aplikacij (WAPT):
- Cross Site Scripting
- SQL Injection
- Zlomljeno preverjanje pristnosti in upravljanje sej
- Napake pri nalaganju datotek
- Napadi na predpomnjenje strežnikov
- Varnostne napačne konfiguracije
- Ponarejanje zahtev na več mestih
- Pokanje gesla
Čeprav sem omenil seznam, preizkuševalci ne bi smeli slepo ustvarjati svoje preskusne metodologije na podlagi zgornjih običajnih standardov.
Tukaj jeprimerda dokažem, zakaj tako rečem.
kako preizkusiti medsebojno skriptiranje
Razmislite o tem, da ste pozvani, da preizkusite penetracijo spletnega mesta e-trgovine, zdaj pa premislite, ali je mogoče s konvencionalnimi metodami OWASP, kot so XSS, vbrizgavanje SQL itd., Prepoznati vse ranljivosti spletnega mesta e-trgovine.
Odgovor je Ne, ker e-trgovina deluje na povsem drugačni platformi in tehnologiji v primerjavi z drugimi spletnimi mesti. Da bi bili preizkusi pisala za spletno mesto e-trgovine učinkoviti, bi morali preizkuševalci oblikovati metodologijo, ki vključuje napake, kot so upravljanje naročil, upravljanje kuponov in nagrad, integracija plačilnega prehoda in integracija sistema za upravljanje vsebin.
Torej, preden se odločite za metodologijo, se prepričajte, katere vrste spletnih mest se pričakuje, da bodo testirane in katera metoda bo pomagala pri iskanju največjih ranljivosti.
Vrste testiranja penetracije na spletu
Spletne aplikacije lahko preizkusite na dva načina. Testi so lahko zasnovani tako, da simulirajo notranji ali zunanji napad.
# 1) Preskušanje notranje penetracije -
Kot že ime pove, notranje testiranje pisala poteka znotraj organizacije prek LAN-a, zato vključuje testiranje spletnih aplikacij, ki gostujejo v intranetu.
To pomaga ugotoviti, ali v požarnem zidu podjetja obstajajo ranljivosti.
Vedno verjamemo, da se napadi lahko zgodijo samo navzven in da je večkrat interni Pentest spregledan ali mu ni pripisan velik pomen.
V bistvu vključuje zlonamerne napade na zaposlene s strani nezadovoljnih zaposlenih ali izvajalcev, ki bi odstopili, vendar bi se zavedali notranjih varnostnih politik in gesel, napade na socialni inženiring, simulacije napadov z lažnim predstavljanjem in napade z uporabo privilegijev uporabnikov ali zlorabo odklenjenega terminala.
Testiranje poteka predvsem z dostopom do okolja brez ustreznih poverilnic in ugotavljanjem, ali je
#two) Preskušanje zunanje penetracije -
Gre za napade, ki se izvajajo zunaj organizacije in vključujejo preskušanje spletnih aplikacij, ki gostujejo v internetu.
Preizkuševalci se obnašajo kot hekerji, ki se notranjega sistema ne zavedajo preveč.
Za simulacijo takšnih napadov preskuševalci dobijo IP ciljnega sistema in ne prejmejo nobenih drugih informacij. Iščejo in skenirajo javne spletne strani ter najdejo naše podatke o ciljnih gostiteljih in nato ogrozijo najdene gostitelje.
V bistvu vključuje testiranje strežnikov, požarnih zidov in IDS.
Pristop testiranja spletnega peresa:
Izvaja se lahko v treh fazah:
# 1) Faza načrtovanja (pred preskušanjem)
Pred začetkom testiranja je priporočljivo načrtovati, katere vrste testiranja bodo izvedene, kako bo izvedeno testiranje, ugotoviti, ali QA potrebuje dodaten dostop do orodij itd.
- Opredelitev področja uporabe - To je enako kot naše funkcionalno testiranje, kjer pred začetkom preizkusov določimo obseg testiranja.
- Razpoložljivost dokumentacije za preizkuševalce - Prepričajte se, da imajo preizkuševalci vse potrebne dokumente, kot so dokumenti, ki podrobno opisujejo spletno arhitekturo, točke integracije, integracijo spletnih storitev itd. Preizkuševalec mora poznati osnove protokola HTTP / HTTPS in poznati arhitekturo spletnih aplikacij, načine prestrezanja prometa.
- Določanje meril uspeha - Za razliko od naših primerov funkcionalnih preizkusov, kjer lahko iz uporabniških zahtev / funkcionalnih zahtev izpeljemo pričakovane rezultate, testiranje pisala deluje na drugem modelu. Treba je določiti in odobriti merila za uspeh ali kriterije za prenašanje testnega primera.
- Pregled rezultatov preskusov iz prejšnjega testiranja - Če je bilo kdaj opravljeno predhodno testiranje, je dobro pregledati rezultate testa, da bi razumeli, kakšne ranljivosti so obstajale v preteklosti in kakšno sanacijo smo odpravili. To vedno daje boljšo sliko preizkuševalcev.
- Razumevanje okolja - Preizkuševalci bi morali pred začetkom testiranja pridobiti znanje o okolju. Ta korak bi jim moral zagotoviti razumevanje požarnih zidov ali drugih varnostnih protokolov, ki bi jih bilo treba onemogočiti za izvajanje preskusa. Brskalnik, ki ga je treba preizkusiti, je treba pretvoriti v napadalno platformo, običajno z zamenjavo pooblaščencev.
# 2) Faze napadov / izvedbe (med testiranjem):
Testiranje spletnega prodora je mogoče opraviti s katere koli lokacije, saj ponudnik interneta ne sme omejevati vrat in storitev.
- Zagotovite izvedbo testa z različnimi uporabniškimi vlogami - Preizkuševalci bi morali zagotoviti izvajanje testov z uporabniki z različnimi vlogami, saj se sistem lahko obnaša drugače glede na uporabnike z različnimi privilegiji.
- Ozaveščenost o ravnanju po izkoriščanju - Preizkuševalci morajo upoštevati merila uspeha, opredeljena kot del 1. faze, da poročajo o morebitnem izkoriščanju, prav tako pa morajo slediti opredeljenemu postopku poročanja o ranljivostih, ugotovljenih med testiranjem. Ta korak vključuje predvsem preizkuševalca, da ugotovi, kaj je treba storiti, potem ko ugotovijo, da je sistem ogrožen.
- Priprava poročil o preskusih - Vsako testiranje, izvedeno brez ustreznega poročanja, organizaciji ne pomaga veliko, enako velja za preizkušanje penetracije spletnih aplikacij. Da bi zagotovili pravilno izmenjavo rezultatov testov z vsemi zainteresiranimi stranmi, bi morali preizkuševalci ustvariti ustrezna poročila s podrobnostmi o najdenih ranljivostih, uporabljeni metodologiji za testiranje, resnosti in lokaciji najdene težave.
# 3) Faza po izvedbi (po testiranju):
Ko je testiranje končano in se poročila o testih delijo z vsemi zadevnimi skupinami, bi morali vsi pripraviti naslednji seznam -
- Predlagajte sanacijo - Testiranje s peresom se ne sme končati le z ugotavljanjem ranljivosti. Zadevna skupina, vključno s članom QA, bi morala pregledati ugotovitve, o katerih so poročali preizkuševalci, in nato razpravljati o sanaciji.
- Ponovno preizkusite ranljivosti - Po izvedbi in izvedbi sanacije bi morali preizkuševalci znova preskusiti, da se prepričajo, da se odpravljene ranljivosti niso pojavile kot del ponovnega testiranja.
- Pospravi - Kot del Pentesta preizkuševalci spremenijo nastavitve proxyja, zato je treba opraviti čiščenje in vse spremembe vrniti nazaj.
Orodja za testiranje vrhunske penetracije
Ker ste že prebrali celoten članek, verjamem, da imate zdaj veliko boljšo predstavo o tem, kaj in kako lahko s preizkusom penetracije preizkusimo spletno aplikacijo.
Povejte mi, ali lahko ročno izvedemo testiranje penetracije ali se to vedno zgodi z avtomatizacijo z orodjem. Brez dvoma mislim, da večina od vas govori o avtomatizaciji. :)
To je res, ker avtomatizacija prinaša hitrost, izogiba se ročnim človeškim napakam, odlični pokritosti in številnim drugim prednostim, toda kar zadeva Pen test, od nas zahteva nekaj ročnega testiranja.
Ročno testiranje pomaga pri iskanju ranljivosti, povezanih s poslovno logiko, in tako zmanjša lažne pozitivne učinke.
Orodja lahko naredijo veliko lažnih pozitivnih rezultatov, zato je za določitev, ali so resnične ranljivosti, potreben ročni poseg.
Preberite tudi - Kako preizkusiti varnost spletnih aplikacij z orodjem Acunetix Web Vulnerability Scanner (WVS)
Ustvarjena so orodja za avtomatizacijo naših prizadevanj za testiranje. Spodaj najdete seznam nekaterih orodij, ki jih lahko uporabite za Pentest:
Za več orodij se lahko tudi obrnete - 37 zmogljivih orodij za preizkušanje peresa za vsak preizkuševalnik penetracije
Najboljša podjetja za testiranje penetracije
Ponudniki storitev so podjetja, ki zagotavljajo storitve, ki ustrezajo preskusnim potrebam organizacij. Običajno se odlikujejo in imajo strokovno znanje na različnih področjih testiranja, testiranje pa lahko izvajajo v svojem gostujočem testnem okolju.
Spodaj so navedena nekatera vodilna podjetja, ki ponujajo storitve testiranja penetracije:
- PSC (Skladnost z varnostjo plačil)
- Netragard
- Securestate
- CoalFire
- HIGHBIT Varnost
- Nettitude
- 360
- NetSPi
- ControlScan
- Skods Minotti
- 2 | odd
- Ocena varnosti
- Sistemi varnostne revizije
- Hacklabs
- CQR
Nekaj certifikatov o preizkusu penetracije:
Če vas zanima pridobitev certifikata za certificiranje penetracije spletnih aplikacij, se lahko odločite za spodnja potrdila:
- OSWE (Spletni strokovnjak za žaljivo varnost)
- GWAPT (Preizkuševalnik penetracije spletnih aplikacij GIAC)
- CWAPT (Certificirani preizkuševalnik penetracije spletnih aplikacij)
- eWPT (preizkuševalnik penetracije spletnih aplikacij elearnSecurity)
Zaključek
V tej vadnici smo predstavili pregled izvedbe testiranja penetracije za spletne aplikacije.
S temi informacijami lahko preizkuševalnik penetracije začne preizkuse ranljivosti.
V idealnem primeru nam lahko testiranje penetracije pomaga ustvariti varno programsko opremo. To je draga metoda, zato jo lahko obdržite enkrat letno.
Če želite izvedeti več o preizkusu penetracije, preberite spodnje članke:
c ++ v primerjavi z javo
- Pristop za varnostno preizkušanje spletnih aplikacij
- Testiranje penetracije - popoln vodnik z vzorčnimi testnimi primeri
- Kako preizkusiti varnost aplikacij - tehnike preizkušanja varnosti spletnih in namiznih aplikacij
Spodaj delite svoja stališča ali izkušnje o Pentestu.
Priporočeno branje
- Vodič za preizkušanje varnosti spletnih aplikacij
- Testiranje omrežne varnosti in najboljša orodja za omrežno varnost
- Najboljša orodja za testiranje programske opreme 2021 (QA Test Automation Tools)
- Alfa testiranje in beta testiranje (popoln vodnik)
- Testiranje varnosti (popoln vodnik)
- Popoln vodič za testiranje penetracije z vzorčnimi testnimi primeri
- Orodja za testiranje penetracije mobilnih aplikacij in ponudniki storitev
- Razlika med testiranjem namizja, odjemalskega strežnika in spletnim preskušanjem