beginners guide web application penetration testing
Ispitivanje penetracije aka Pen Test je najčešće korištena tehnika sigurnosnog testiranja za web aplikacije.
Testiranje prodora web aplikacija vrši se simuliranjem neovlaštenih napada interno ili eksterno kako bi se dobio pristup osjetljivim podacima.
Prodiranje na web pomaže krajnjem korisniku da sazna mogućnost hakera da pristupi podacima s Interneta, sazna o sigurnosti svojih poslužitelja e-pošte, a također i da sazna koliko su sigurni web mjesto i poslužitelj za web hosting.
Pa, sad ćemo pokriti sadržaj ovog članka.
kako napraviti vatrogasni zid
(slika izvor )
U ovom uputstvu za testiranje penetracije pokušao sam obuhvatiti:
- Potreba Pentesta za testiranjem web aplikacija,
- Standardna metodologija dostupna za Pentest,
- Pristup web aplikaciji Pentest,
- Koje vrste testiranja možemo obaviti,
- Koraci koje treba poduzeti za ispitivanje penetracije,
- Alati koji se mogu koristiti za testiranje,
- Neki od pružatelja usluga ispitivanja penetracije i
- Neki od certifikata za testiranje penetracije putem interneta
Preporučeni alati za skeniranje ranjivosti:
# 1) Mrežni parker
Netsparker je jednostavan za upotrebu i automatizirana platforma za testiranje sigurnosti web aplikacija koju možete koristiti za identificiranje stvarnih i iskoristivih ranjivosti na vašim web mjestima.
#dva) Kiuwan
Pronađite i popravite ranjivosti u svom kodu u svakoj fazi SDLC-a.
Kiuwan je usklađen s najstrožim sigurnosnim standardima, uključujući OWASP, CWE, SANS 25, HIPPA i druge. Integrirajte Kiuwan u svoj IDE za trenutne povratne informacije tijekom razvoja. Kiuwan podržava sve glavne programske jezike i integrira se s vodećim DevOps alatima.
=> Skenirajte svoj kod besplatnoŠto ćete naučiti:
- Zašto je potrebno ispitivanje penetracije?
- Metodologija ispitivanja prodiranja kroz mrežu
- Vrste ispitivanja penetracije putem interneta
- Pristup testiranju web olovke:
- Alati za ispitivanje prodiranja na vrh
- Tvrtke za ispitivanje najbolje penetracije
- Neke potvrde ispitivanja prodiranja:
- Zaključak
- Preporučena literatura
Zašto je potrebno ispitivanje penetracije?
Kada govorimo o sigurnosti, najčešća riječ koju čujemo je Ranjivost .
Kad sam u početku počeo raditi kao ispitivač sigurnosti, znao sam se često zbunjivati s ovom riječju Ranjivost i siguran sam da bi mnogi od vas, moji čitatelji pali u isti čamac.
U korist svih svojih čitatelja, prvo ću pojasniti razliku između ranjivosti i testiranja olovke.
Pa, što je Ranjivost ? Ranjivost je terminologija koja se koristi za identificiranje nedostataka u sustavu koji sustav mogu izložiti sigurnosnim prijetnjama.
Skeniranje ranjivosti ili testiranje olovke?
Skeniranje ranjivosti omogućuje korisniku da otkrije poznate slabosti aplikacije i definira metode za popravljanje i poboljšanje cjelokupne sigurnosti aplikacije. U osnovi se utvrđuje jesu li instalirane sigurnosne zakrpe, jesu li sustavi pravilno konfigurirani da otežavaju napade.
Testovi olovkom uglavnom simuliraju sustave u stvarnom vremenu i pomažu korisniku da otkrije mogu li sustavu pristupiti neovlašteni korisnici, ako da, koja šteta može nastati i na kojim podacima itd.
Stoga je skeniranje ranjivosti detektivska kontrolna metoda koja predlaže načine za poboljšanje sigurnosnog programa i osiguravanje da se ne pojave poznate slabosti, dok je test olovke preventivna kontrolna metoda koja daje cjelokupni prikaz postojećeg sigurnosnog sloja sustava.
Iako obje metode imaju svoju važnost, ali to će ovisiti o tome što se stvarno očekuje kao dio testiranja.
Kao testerima, prije nego što uskočimo u testiranje, nužno nam je biti jasan u svrhu testiranja. Ako vam je jasan cilj, vrlo dobro možete definirati trebate li napraviti skeniranje ranjivosti ili testiranje olovke.
Važnost i potreba testiranja olovke za web aplikacije:
- Pentest pomaže u identificiranju nepoznatih ranjivosti.
- Pomaže u provjeri učinkovitosti cjelokupnih sigurnosnih politika.
- Pomoć u testiranju javno izloženih komponenata poput vatrozida, usmjerivača i DNS-a.
- Omogućuje korisniku da sazna najugroženiji put kojim se može izvršiti napad
- Pomaže u pronalaženju rupa koje mogu dovesti do krađe osjetljivih podataka.
Ako pogledate trenutnu potražnju na tržištu, došlo je do naglog povećanja upotrebe mobilnih uređaja, što postaje glavni potencijal za napade. Pristup web mjestima putem mobitela sklon je češćim napadima, a time i ugrožavanju podataka.
Testiranje penetracije stoga postaje vrlo važno u osiguranju da gradimo siguran sustav koji korisnici mogu koristiti bez ikakvih briga za hakiranje ili gubitak podataka.
Metodologija ispitivanja prodiranja kroz mrežu
Metodologija nije ništa drugo nego skup sigurnosnih smjernica o načinu provođenja ispitivanja. Postoje neke dobro uspostavljene i poznate metodologije i standardi koji se mogu koristiti za testiranje, ali budući da svaka web aplikacija zahtijeva provođenje različitih vrsta ispitivanja, testeri mogu stvoriti vlastite metodologije pozivajući se na standarde dostupne na tržištu.
Neke metodologije i standardi ispitivanja sigurnosti su -
- OWASP (Otvoreni projekt sigurnosti web aplikacija)
- OSSTMM (Priručnik za metodologiju sigurnosnog ispitivanja otvorenog koda)
- PTF (Okvir za ispitivanje prodora)
- ISSAF (Okvir za procjenu sigurnosti informacijskih sustava)
- PCI DSS (Standard zaštite podataka industrije platnih kartica)
Scenariji testa:
U nastavku su navedeni neki od testnih scenarija koji se mogu testirati kao dio Testiranje prodiranja web aplikacija (WAPT):
- Cross Site Scripting
- SQL ubrizgavanje
- Prekinuta provjera autentičnosti i upravljanje sjednicama
- Slabosti u prijenosu datoteke
- Predmemoriranje napada poslužitelja
- Pogrešne konfiguracije sigurnosti
- Krivotvorenje zahtjeva za više web lokacija
- Lošenje lozinke
Iako sam spomenuo popis, testeri ne bi trebali slijepo stvarati svoju metodologiju ispitivanja temeljenu na gore navedenim konvencionalnim standardima.
Evoprimjerda dokažem zašto to kažem.
Uzmite u obzir da se od vas traži testiranje penetracije web mjesta e-trgovine, sada razmislite mogu li se identificirati sve ranjivosti web mjesta e-trgovine pomoću konvencionalnih metoda OWASP-a poput XSS-a, SQL ubrizgavanja itd.
Odgovor je Ne, jer eCommerce radi na vrlo različitoj platformi i tehnologiji u usporedbi s drugim web mjestima. Kako bi testiranje olovke za web mjesto e-trgovine bilo učinkovito, testeri bi trebali osmisliti metodologiju koja uključuje nedostatke poput upravljanja narudžbama, upravljanja kuponima i nagradama, integracije platnog prolaza i integracije sustava upravljanja sadržajem.
Dakle, prije nego što se odlučite za metodologiju, budite vrlo sigurni koje se vrste web stranica očekuju i koja će metoda pomoći u pronalaženju maksimalnih ranjivosti.
Vrste ispitivanja penetracije putem interneta
Web aplikacije mogu se testirati na dva načina. Testovi mogu biti dizajnirani da simuliraju unutarnji ili vanjski napad.
# 1) Ispitivanje unutarnjeg prodiranja -
Kao što i samo ime govori, interno testiranje olovaka vrši se unutar organizacije putem LAN-a, stoga uključuje testiranje web aplikacija hostiranih na intranetu.
To pomaže u otkrivanju mogu li postojati ranjivosti unutar korporativnog vatrozida.
Uvijek vjerujemo da se napadi mogu dogoditi samo izvana, a često se interni Pentest previđa ili mu se ne pridaje velika važnost.
U osnovi uključuje zlonamjerne napade zaposlenika nezadovoljnih zaposlenika ili ugovaratelja koji bi dali otkaz, ali svjesni internih sigurnosnih pravila i lozinki, napade socijalnog inženjerstva, simulaciju phishing napada i napade korištenjem privilegija korisnika ili zlouporabu otključanog terminala.
Testiranje se uglavnom vrši pristupom okolini bez odgovarajućih vjerodajnica i utvrđivanjem je li
#dva) Ispitivanje vanjske penetracije -
To su napadi izvedeni izvana izvan organizacije i uključuju testiranje web aplikacija hostiranih na Internetu.
osnovna sql pitanja za intervju i odgovori za svježe pdf
Ispitivači se ponašaju poput hakera koji nisu previše svjesni unutarnjeg sustava.
Da bi simulirali takve napade, testeri dobivaju IP ciljnog sustava, a ne daju im nikakve druge informacije. Oni su dužni pretraživati i skenirati javne web stranice i pronaći naše podatke o ciljanim hostovima, a zatim kompromitirati pronađene hostove.
U osnovi, uključuje testiranje poslužitelja, vatrozida i IDS-a.
Pristup testiranju web olovke:
Može se provesti u 3 faze:
# 1) Faza planiranja (prije testiranja)
Prije početka testiranja, poželjno je planirati koje će se vrste ispitivanja izvoditi, kako će se ispitivanje provoditi, utvrditi treba li QA dodatni pristup alatima itd.
- Definicija opsega - To je isto kao i naše funkcionalno testiranje gdje definiramo opseg testiranja prije početka testiranja.
- Dostupnost dokumentacije testerima - Osigurajte da testeri imaju sve potrebne dokumente poput dokumenata koji detaljno opisuju web arhitekturu, integracijske točke, integraciju web usluga itd. Tester treba biti svjestan osnova HTTP / HTTPS protokola i znati o arhitekturi web aplikacija, načinima presretanja prometa.
- Utvrđivanje kriterija uspjeha - Za razliku od naših slučajeva funkcionalnih testova, gdje možemo izvući očekivane rezultate iz korisničkih zahtjeva / funkcionalnih zahtjeva, testiranje olovke radi na drugom modelu. Kriteriji za uspjeh ili kriteriji za polaganje testnog slučaja moraju se definirati i odobriti.
- Pregled rezultata ispitivanja iz prethodnog testiranja - Ako je ikad provedeno prethodno testiranje, dobro je pregledati rezultate ispitivanja kako biste razumjeli koje su ranjivosti postojale u prošlosti i koje je saniranje poduzeto za rješavanje. To uvijek daje bolju sliku testera.
- Razumijevanje okoliša - Ispitivači bi trebali steći znanje o okolišu prije početka testiranja. Ovaj korak trebao bi im osigurati razumijevanje vatrozida ili drugih sigurnosnih protokola koji bi trebali biti onemogućeni za provođenje testiranja. Preglednik koji treba testirati treba pretvoriti u platformu za napad, obično promjenom proxyja.
# 2) Faza napada / izvršenja (tijekom testiranja):
Testiranje prodiranja putem interneta može se obaviti s bilo kojeg mjesta, s obzirom na činjenicu da internetski davatelj ne bi trebao imati ograničenja na lukama i uslugama.
- Osigurajte pokretanje testa s različitim korisničkim ulogama - Ispitivači bi trebali osigurati izvođenje testova s korisnicima koji imaju različite uloge jer se sustav može ponašati drugačije u odnosu na korisnike koji imaju različite povlastice.
- Svijest o postupanju s post-eksploatacijom - Ispitivači moraju slijediti Kriterije uspjeha definirane kao dio Faze 1 kako bi prijavili bilo kakvo iskorištavanje, također bi trebali slijediti definirani postupak prijavljivanja ranjivosti pronađenih tijekom testiranja. Ovaj korak uglavnom uključuje ispitivača da sazna što treba učiniti nakon što utvrde da je sustav ugrožen.
- Izrada izvještaja o ispitivanju - Svako testiranje provedeno bez odgovarajućeg izvješćivanja ne pomaže organizaciji puno, isti je slučaj s penetracijskim testiranjem web aplikacija. Kako bi osigurali da se rezultati ispitivanja pravilno dijele sa svim dionicima, testeri bi trebali stvoriti odgovarajuća izvješća s detaljima o pronađenim ranjivostima, metodologiji koja se koristi za testiranje, ozbiljnosti i mjestu pronađenog problema.
# 3) Faza izvršavanja nakon (nakon testiranja):
Kada se testiranje završi i izvještaji o ispitivanju podijele sa svim dotičnim timovima, svi bi trebali raditi na sljedećem popisu -
- Predloži sanaciju - Testiranje olovkom ne bi trebalo završiti samo identificiranjem ranjivosti. Dotični tim, uključujući člana osiguranja kvalitete, trebao bi pregledati nalaze koje su prijavili testeri, a zatim razgovarati o sanaciji.
- Ponovno testiranje ranjivosti - Nakon što se preuzme i provede sanacija, testeri bi trebali ponovno testirati kako bi osigurali da se fiksne ranjivosti ne pojave kao dio njihovog ponovnog testiranja.
- Počistiti - Kao dio Pentesta, testeri unose promjene u postavke proxyja, pa bi trebalo izvršiti čišćenje i vratiti sve promjene.
Alati za ispitivanje prodiranja na vrh
Sad, budući da ste već pročitali cijeli članak, vjerujem da sada imate puno bolju ideju o tome što i kako možemo testirati penetraciju web aplikacije.
Pa mi recite, možemo li ručno izvršiti ispitivanje penetracije ili se to uvijek događa automatizacijom pomoću alata. Nema sumnje, mislim da većina vas govori o automatizaciji. :)
To je istina jer automatizacija donosi brzinu, izbjegava ručne ljudske pogreške, izvrsnu pokrivenost i nekoliko drugih prednosti, ali što se tiče olovke, zahtijeva da izvršimo ručno testiranje.
razlika između ispitivanja opterećenja i ispitivanja performansi
Ručno testiranje pomaže u pronalaženju ranjivosti povezanih s poslovnom logikom, smanjujući lažne pozitivne rezultate.
Alati su skloni davanju puno lažnih pozitivnih rezultata, pa je potrebna ručna intervencija kako bi se utvrdilo jesu li stvarne ranjivosti.
Također pročitajte - Kako testirati sigurnost web aplikacija pomoću alata Acunetix Web Vulnerability Scanner (WVS)
Alati su stvoreni za automatizaciju naših napora na testiranju. U nastavku pronađite popis nekih alata koji se mogu koristiti za Pentest:
- Besplatni alat za testiranje olovke
- Veracode
- Vega
- Suite podrigivanja
- NetSparker
- Arachni
- Acunetix
- ZAP
Za više alata također se možete obratiti - 37 snažnih alata za ispitivanje olovke za svaki ispitivač prodora
Tvrtke za ispitivanje najbolje penetracije
Pružatelji usluga su tvrtke koje pružaju usluge koje zadovoljavaju potrebe organizacija za testiranje. Obično se ističu i posjeduju stručnost u različitim područjima testiranja, a testiranje mogu izvoditi u svom testnom okruženju.
U nastavku su spomenute neke od vodećih tvrtki koje pružaju usluge ispitivanja penetracije:
- PSC (Sukladnost sa sigurnošću plaćanja)
- Netragard
- Sigurna država
- CoalFire
- HIGHBIT sigurnost
- Nettitude
- 360
- NetSPi
- ControlScan
- Skods Minotti
- 2 | odjeljak
- Procjena sigurnosti
- Sustavi revizije sigurnosti
- Hacklabs
- CQR
Neke potvrde ispitivanja prodiranja:
Ako ste zainteresirani za certifikaciju o certifikaciji za prodor web aplikacija, možete se odlučiti za donje certifikate:
- OSWE (Uvredljivi web-stručnjak za sigurnost)
- GWAPT (Tester prodora web aplikacija GIAC)
- CWAPT (Ovlašteni ispitivač prodiranja web aplikacija)
- eWPT (ispitivač prodiranja web aplikacija elearnSecurity)
Zaključak
U ovom uputstvu predstavili smo pregled provođenja ispitivanja penetracije za web aplikacije.
Pomoću ovih podataka ispitivač penetracije može započeti testove ranjivosti.
U idealnom slučaju, testiranje penetracije može nam pomoći u stvaranju sigurnog softvera. To je skupa metoda pa se učestalost može održavati kao jednom godišnje.
Da biste saznali više o ispitivanju penetracije, pročitajte dolje povezane članke:
- Pristup sigurnosnom testiranju web aplikacija
- Ispitivanje penetracijom - Potpuni vodič s uzorcima ispitnih slučajeva
- Kako testirati sigurnost aplikacija - tehnike testiranja sigurnosti weba i radne površine
Molimo podijelite svoje stavove ili iskustva o Pentestu u nastavku.
Preporučena literatura
- Vodič za ispitivanje sigurnosti web aplikacija
- Testiranje mrežne sigurnosti i najbolji alati mrežne sigurnosti
- Najbolji alati za testiranje softvera 2021. (Alati za automatizaciju ispitivanja kvalitete)
- Alfa testiranje i beta testiranje (cjelovit vodič)
- Ispitivanje sigurnosti (cjelovit vodič)
- Cjelovit vodič za ispitivanje prodiranja s uzorcima ispitnih slučajeva
- Alati za testiranje penetracije mobilne aplikacije i pružatelji usluga
- Razlika između testiranja radne površine, klijentskog poslužitelja i web testiranja