complete penetration testing guide with sample test cases
To je postupak za identificiranje sigurnosnih ranjivosti u aplikaciji procjenom sustava ili mreže različitim zlonamjernim tehnikama. Slabe točke sustava koriste se u ovom procesu kroz ovlašteni simulirani napad.
Svrha ovog testa je osigurati važne podatke od strana, poput hakera koji mogu imati neovlašteni pristup sustavu. Jednom kada se ranjivost identificira, koristi se za iskorištavanje sustava kako bi se dobio pristup osjetljivim informacijama.
Test penetracije poznat je i kao test olovke, a ispitivač penetracije naziva se i etičkim hakerom.
Što ćete naučiti:
- Što je ispitivanje penetracije?
- Uzroci ranjivosti
- Alati i tvrtke za ispitivanje prodora
- Preporučeni alati za ispitivanje prodora
- Preporučena tvrtka za ispitivanje prodora
- Zašto ispitivanje penetracije?
- Što treba testirati?
- Vrste ispitivanja penetracije
- Tehnike ispitivanja olovkom
- Ispitni slučajevi ispitivanja penetracije (scenariji ispitivanja)
- Zaključak
Što je ispitivanje penetracije?
Ranjivosti računalnog sustava, web aplikacije ili mreže možemo utvrditi probojnim testiranjem.
Test penetracije pokazuje jesu li postojeće obrambene mjere primijenjene na sustavu dovoljno jake da spriječe bilo kakve sigurnosne provale. Izvješća o ispitivanju penetracije također sugeriraju protumjere koje se mogu poduzeti kako bi se smanjio rizik od hakiranja sustava.
Uzroci ranjivosti
- Pogreške u dizajnu i razvoju : Mogu postojati nedostaci u dizajnu hardvera i softvera. Ove programske pogreške mogu vaše poslovne podatke kritično izložiti.
- Loša konfiguracija sustava : Ovo je još jedan uzrok ranjivosti. Ako je sustav loše konfiguriran, tada može uvesti rupe kroz koje napadači mogu ući u sustav i ukrasti informacije.
- Ljudske pogreške : Ljudski čimbenici poput nepropisnog zbrinjavanja dokumenata, ostavljanja dokumenata bez nadzora, pogrešaka u kodiranju, prijetnji upućenih osoba, dijeljenja lozinki preko phishing stranica itd. Mogu dovesti do narušavanja sigurnosti.
- Povezivost : Ako je sustav povezan s nezaštićenom mrežom (otvorene veze), onda je dostupan na domak hakera.
- Složenost : Sigurnosna ranjivost raste proporcionalno složenosti sustava. Što više funkcija sustav ima, to je više šansi da sustav bude napadnut.
- Lozinke : Lozinke se koriste za sprečavanje neovlaštenog pristupa. Trebali bi biti dovoljno jaki da nitko ne može pogoditi vašu lozinku. Lozinke se ni pod koju cijenu ne smiju dijeliti ni s kim, a lozinke treba povremeno mijenjati. Unatoč ovim uputama, ponekad ljudi otkriju svoje lozinke drugima, negdje ih zapišu i čuvaju jednostavne lozinke koje se mogu pogoditi.
- Unos korisnika : Sigurno ste čuli za ubrizgavanje SQL-a, preljeve međuspremnika itd. Podaci primljeni elektroničkim putem ovih metoda mogu se koristiti za napad na sustav primanja.
- Upravljanje : Sigurnošću je teško i skupo upravljati. Ponekad organizacije zaostaju u pravilnom upravljanju rizicima, a time i ranjivost u sustavu.
- Nedostatak obuke osoblja : To dovodi do ljudskih pogrešaka i drugih ranjivosti.
- Komunikacija : Kanali poput mobilnih mreža, interneta i telefona otvaraju opseg sigurnosne krađe.
Alati i tvrtke za ispitivanje prodora
Automatizirani alati mogu se koristiti za identificiranje nekih standardnih ranjivosti prisutnih u aplikaciji. Pentest alati skeniraju kôd kako bi provjerili postoji li zlonamjerni kôd koji može dovesti do potencijalnog narušavanja sigurnosti. Pentest alati mogu provjeriti sigurnosne rupe prisutne u sustavu ispitivanjem tehnika šifriranja podataka i otkrivanjem čvrsto kodiranih vrijednosti poput korisničkog imena i lozinke.
Kriteriji za odabir najboljeg alata za prodiranje:
- Trebalo bi ga biti lako implementirati, konfigurirati i koristiti.
- Trebao bi lako skenirati vaš sustav.
- Trebao bi kategorizirati ranjivosti na temelju ozbiljnosti koja treba trenutno popraviti.
- Trebao bi biti u mogućnosti automatizirati provjeru ranjivosti.
- Trebao bi ponovno provjeriti prethodno otkrivene eksploatacije.
- Trebao bi generirati detaljna izvješća i zapisnike o ranjivosti.
Jednom kada znate koje testove trebate provesti, možete ili osposobiti svoje interne resurse za testiranje ili angažirati stručne savjetnike koji će za vas obaviti zadatak prodora.
Preporučeni alati za ispitivanje prodora
# 1) Acunetix
Acunetix WVS nudi sigurnosnim profesionalcima i softverskim inženjerima niz zapanjujućih značajki u laganom, neposrednom i vrlo robusnom paketu.
=> Isprobajte najbolji alat za testiranje olovke ovdje
# 2) uljez
Uljez moćan je skener ranjivosti koji pronalazi slabosti cyber sigurnosti u vašem digitalnom okruženju, objašnjava rizike i pomaže u njihovom otklanjanju prije nego što se dogodi kršenje. Savršen je alat koji vam pomaže automatizirati napore za testiranje prodora.
Ključne značajke :
- Preko 9000 automatiziranih provjera kroz cijelu vašu IT infrastrukturu.
- Provjere infrastrukture i web-sloja, poput ubrizgavanja SQL-a i skriptiranja na više lokacija.
- Automatski skenira vaše sustave kada se otkriju nove prijetnje.
- Višestruke integracije: AWS, Azure, Google Cloud, API, Jira, timovi i još mnogo toga.
- Intruder nudi 30-dnevno besplatno probno razdoblje svog Pro plana.
Preporučena tvrtka za ispitivanje prodora
# 1) ImmuniWeb®
ImmuniWeb® je tvrtka za ispitivanje penetracije sa sjedištem u Ženevi, Švicarska. Njegova platforma za testiranje penetracije aplikacija s omogućenom DevSecOps kombinira ljude s umjetnom inteligencijom i dolazi s nula lažno pozitivnih SLA, otkrivanjem najveće ranjivosti i aktivnim izvješćivanjem.
ImmuniWeb nudi sveobuhvatno testiranje penetracije aplikacija unutarnjih i vanjskih web i mobilnih aplikacija, API-ja i web usluga, poslužitelja pošte, IoT uređaja i još mnogo toga.
Ključne značajke:
- Kontinuirano otkrivanje novog koda.
- Brzo i isplativo ručno testiranje.
- Kapaciteti virtualnih zakrpa jednim klikom.
- 24-satni pristup sigurnosnim analitičarima.
- DevSecOps i CI / CD integracija.
- Trenutna narudžba i brza dostava.
- Višenamjenska nadzorna ploča.
Ostali besplatni alati:
Komercijalne usluge:
Također se možete pozvati na donji popis dostupan na STH koji govori o 37 moćnih alata za ispitivanje penetracije => Moćni alati za ispitivanje penetracije za svaki ispitivač penetracije
swf datoteke se ne reproduciraju u pregledniku
Zašto ispitivanje penetracije?
Sigurno ste čuli za napad otkupnine WannaCry koji je započeo u svibnju 2017. Zaključao je više od 2 lakh računala širom svijeta i zahtijevao plaćanja otkupnine u bitcoin kriptovaluti. Ovaj napad pogodio je mnoge velike organizacije širom svijeta.
S takvim masovnim i opasnim cyber-napadima koji se događaju ovih dana, postalo je neizbježno provoditi testiranje penetracije u redovitim intervalima kako bi zaštitili informacijske sustave od sigurnosnih kršenja.
Dakle, ispitivanje prodiranja je uglavnom potrebno za:
- Financijski ili kritični podaci moraju se osigurati tijekom njihovog prijenosa između različitih sustava ili putem mreže.
- Mnogi klijenti traže testiranje olovke kao dio ciklusa izdavanja softvera.
- Da biste osigurali korisničke podatke.
- Da biste pronašli sigurnosne ranjivosti u aplikaciji.
- Otkriti rupe u sustavu.
- Za procjenu poslovnog utjecaja uspješnih napada.
- Kako bi se ispunila usklađenost s informacijskom sigurnošću u organizaciji.
- Provesti učinkovitu sigurnosnu strategiju u organizaciji.
Svaka organizacija mora prepoznati sigurnosne probleme prisutne u unutarnjoj mreži i računalima. Korištenjem ove informacijske organizacije može planirati obranu od bilo kakvog pokušaja hakiranja. Privatnost korisnika i sigurnost podataka danas su najveća briga.
Zamislite ako bilo koji haker uspije dobiti korisničke detalje o web mjestu za društvene mreže poput Facebooka. Organizacija se može suočiti s pravnim problemima zbog male rupe u softverskom sustavu. Stoga velike organizacije traže certifikate o usklađenosti s PCI-jem (industrija platnih kartica) prije nego što posluju s klijentima trećih strana.
Što treba testirati?
- Softver (operativni sustav, usluge, aplikacija)
- Hardver
- Mreža
- Procesi
- Ponašanje krajnjeg korisnika
Vrste ispitivanja penetracije
# 1) Test socijalnog inženjerstva: U ovom testu pokušavaju se učiniti da osoba otkrije osjetljive podatke poput lozinke, poslovnih podataka, itd. Ti se testovi uglavnom provode putem telefona ili interneta i ciljaju određene službe za pomoć, zaposlenike i procese.
Ljudske pogreške glavni su uzroci sigurnosne ranjivosti. Sve članove osoblja trebaju slijediti sigurnosne standarde i politike kako bi se izbjegli pokušaji prodora socijalnog inženjeringa. Primjer ovih standarda uključuje ne spominjanje bilo kakvih osjetljivih podataka u komunikaciji e-poštom ili telefonom. Revizije sigurnosti mogu se provesti kako bi se identificirale i ispravile nedostatke procesa.
# 2) Test web aplikacija: Pomoću softverskih metoda može se provjeriti je li aplikacija izložena sigurnosnim ranjivostima. Provjerava sigurnosnu ranjivost web aplikacija i softverskih programa smještenih u ciljanom okruženju.
# 3) Test fizičke penetracije: Za zaštitu osjetljivih podataka primjenjuju se jake metode fizičke sigurnosti. To se obično koristi u vojnim i državnim objektima. Svi fizički mrežni uređaji i pristupne točke testirani su na mogućnost bilo kakvog narušavanja sigurnosti. Ovaj test nije mnogo relevantan za opseg testiranja softvera.
# 4) Test mrežnih usluga : Ovo je jedan od najčešće provedenih testova penetracije u kojem se utvrđuju otvori u mreži pomoću kojih se vrši unos u sustave na mreži kako bi se provjerilo kakve ranjivosti postoje. To se može učiniti lokalno ili na daljinu.
# 5) Test na strani klijenta : Cilj mu je pretraživati i iskorištavati ranjivosti u softverskim programima na strani klijenta.
# 6) Daljinski dial-up ratni broj : Traži modeme u okolini i pokušava se prijaviti na sustave povezane putem tih modema pogađanjem lozinke ili forsiranjem grube forme.
# 7) Test bežične sigurnosti : Otkriva otvorena, neovlaštena i manje osigurana žarišna mjesta ili Wi-Fi mreže i povezuje se putem njih.
Gornjih 7 kategorija koje smo vidjeli jedan je od načina kategorizacije vrsta olova. Također možemo organizirati vrste ispitivanja penetracije u tri dijela kako je prikazano u nastavku:
Razgovarajmo o pristupima testiranja jedan po jedan:
- Ispitivanje prodora crne kutije : U ovom pristupu ispitivač procjenjuje ciljni sustav, mrežu ili proces bez znanja njegovih detalja. Oni samo imaju vrlo visoku razinu podataka kao što su URL ili naziv tvrtke pomoću kojih prodiru u ciljno okruženje. Ovom se metodom ne ispituje nijedan kod.
- Ispitivanje prodora bijele kutije : U ovom pristupu ispitivač je opremljen cjelovitim pojedinostima o ciljanom okruženju - sustavima, mreži, OS-u, IP adresi, izvornom kodu, shemi itd. Ispituje kôd i otkriva pogreške u dizajnu i razvoju. To je simulacija napada na unutarnju sigurnost.
- Ispitivanje prodora sive kutije : U ovom pristupu ispitivač ima ograničene detalje o ciljanom okruženju. To je simulacija vanjskih sigurnosnih napada.
Tehnike ispitivanja olovkom
- Ispitivanje ručnog prodiranja
- Korištenje automatiziranih alata za ispitivanje penetracije
- Kombinacija ručnog i automatiziranog procesa
Treći je postupak uobičajeniji za identificiranje svih vrsta ranjivosti.
Ispitivanje ručnog prodiranja
Pomoću automatiziranih alata teško je pronaći sve ranjivosti. Postoje neke ranjivosti koje se mogu prepoznati samo ručnim skeniranjem. Tester za prodiranje može izvoditi bolje napade na aplikacije na temelju svojih vještina i znanja o sustavu u koji se prodire.
Metode poput socijalnog inženjeringa mogu raditi samo ljudi. Ručna provjera uključuje dizajn, poslovnu logiku kao i provjeru koda.
Postupak ispitivanja prodiranja:
Razgovarajmo o stvarnom procesu koji slijede ispitne agencije ili ispitivači penetracije. Prepoznavanje ranjivosti prisutnih u sustavu prvi je važan korak u ovom procesu. Poduzimaju se korektivne mjere protiv ove ranjivosti i ponavljaju se isti testovi penetracije dok sustav ne bude negativan na sve te testove.
Ovaj postupak možemo kategorizirati na sljedeće metode:
# 1) Prikupljanje podataka: Za dobivanje podataka o ciljanom sustavu koriste se razne metode, uključujući Google pretragu. Također se može koristiti tehnikom analize izvornog koda web stranice kako bi se dobilo više informacija o inačicama sustava, softvera i dodataka.
Na tržištu je dostupno mnogo besplatnih alata i usluga koji vam mogu pružiti informacije kao što su nazivi baza podataka ili tablica, verzije DB-a, verzije softvera, korišteni hardver i različiti dodaci trećih strana koji se koriste u ciljnom sustavu.
# 2) Procjena ranjivosti: Na temelju podataka prikupljenih u prvom koraku može se pronaći sigurnosna slabost u ciljnom sustavu. To pomaže testerima penetracije da pokreću napade koristeći identificirane ulazne točke u sustavu.
# 3) Stvarni exploit: Ovo je presudan korak. Potrebne su posebne vještine i tehnike za pokretanje napada na ciljni sustav. Iskusni ispitivači penetracije mogu upotrijebiti svoje vještine za pokretanje napada na sustav.
# 4) Rezultat analize i pripreme izvještaja: Nakon završetka testova penetracije pripremaju se detaljna izvješća za poduzimanje korektivnih radnji. U tim su izvješćima navedene sve identificirane ranjivosti i preporučene korektivne metode. Možete prilagoditi format izvješća o ranjivosti (HTML, XML, MS Word ili PDF) prema potrebama vaše organizacije.
Ispitni slučajevi ispitivanja penetracije (scenariji ispitivanja)
Zapamtite da ovo nije funkcionalno testiranje. U Pentestu vam je cilj pronaći sigurnosne rupe u sustavu. Ispod su neki generički test slučajevi koji nisu nužno primjenjivi na sve aplikacije.
- Provjerite može li web aplikacija prepoznati neželjene napade na obrasce za kontakt koji se koriste na web mjestu.
- Proxy poslužitelj - provjerite nadziru li mrežni promet proxy uređaji. Proxy poslužitelj otežava hakerima dobivanje internih detalja mreže čime sustav štiti od vanjskih napada.
- Filtri za neželjenu e-poštu - provjerite filtrira li se dolazni i odlazni promet e-pošte i blokiraju li se neželjene e-adrese.
- Mnogi klijenti e-pošte dolaze s ugrađenim filtrima za neželjenu poštu koji trebaju biti konfigurirani prema vašim potrebama. Ta se konfiguracijska pravila mogu primijeniti na zaglavlja e-pošte, temu ili tijelo.
- Vatrozid - Provjerite jesu li cijela mreža ili računala zaštićeni vatrozidima. Vatrozid može biti softverski ili hardverski za blokiranje neovlaštenog pristupa sustavu. Vatrozid može spriječiti slanje podataka izvan mreže bez vašeg dopuštenja.
- Pokušajte iskoristiti sve poslužitelje, stolne sustave, pisače i mrežne uređaje.
- Provjerite jesu li sva korisnička imena i lozinke šifrirani i preneseni putem sigurnih veza poput https.
- Provjerite podatke pohranjene u web kolačići . Ne bi trebao biti u čitljivom formatu.
- Provjerite ranije pronađene ranjivosti kako biste provjerili radi li popravak.
- Provjerite nema li otvorenih priključaka u mreži.
- Provjerite sve telefonske uređaje.
- Provjerite sigurnost WIFI mreže.
- Provjerite sve HTTP metode. Metode PUT i Delete ne smiju biti omogućene na web poslužitelju.
- Provjerite zadovoljava li lozinka tražene standarde. Lozinka treba sadržavati najmanje 8 znakova koji sadrže barem jedan broj i jedan poseban znak.
- Korisničko ime ne smije biti poput 'admin' ili 'administrator'.
- Stranica za prijavu aplikacije trebala bi biti zaključana nakon nekoliko neuspješnih pokušaja prijave.
- Poruke o pogreškama trebale bi biti generičke i ne bi trebale spominjati određene detalje pogreške poput 'Nevažeće korisničko ime' ili 'Nevažeća lozinka'.
- Provjerite postupaju li pravilno sa specijalnim znakovima, HTML oznakama i skriptama kao s ulaznom vrijednošću.
- Pojedinosti o unutarnjem sustavu ne smiju se otkrivati niti u jednoj poruci o pogrešci ili upozorenju.
- Poruke prilagođenih pogrešaka trebale bi se prikazati krajnjim korisnicima u slučaju pada web stranice.
- Provjerite upotrebu unosa u registru. Osjetljive informacije ne smiju se čuvati u registru.
- Sve datoteke moraju se skenirati prije slanja na poslužitelj.
- Osjetljivi podaci ne smiju se prosljeđivati u URL-ovima tijekom komunikacije s različitim internim modulima web aplikacije.
- U sustavu ne bi trebalo biti nikakvo kodirano korisničko ime ili lozinka.
- Provjerite sva polja za unos s dugim ulaznim nizom sa i bez razmaka.
- Provjerite je li funkcionalnost resetiranja lozinke sigurna.
- Potvrdite prijavu za SQL ubrizgavanje .
- Potvrdite prijavu za Cross-Site skriptiranje .
- Važne provjere ulaznih podataka treba izvršiti na strani poslužitelja umjesto JavaScript provjera na strani klijenta.
- Kritični izvori u sustavu trebali bi biti dostupni samo ovlaštenim osobama i službama.
- Svi zapisnici pristupa trebaju se održavati s odgovarajućim dozvolama za pristup.
- Provjerite završava li sesija korisnika nakon odjave.
- Provjerite je li pregledavanje direktorija onemogućeno na poslužitelju.
- Provjerite jesu li sve aplikacije i verzije baze podataka ažurne.
- Provjerite manipulaciju URL-om da biste provjerili prikazuje li web aplikacija neželjene informacije.
- Provjerite curenje memorije i preljev međuspremnika.
- Provjerite skenira li se dolazni mrežni promet kako bi se pronašli napadi trojanaca.
- Provjerite je li sustav siguran od napada Brute Force - metodom pokušaja i pogrešaka za pronalaženje osjetljivih podataka poput lozinki.
- Provjerite jesu li sustav ili mreža zaštićeni od DoS (odbijanje usluge) napada. Haker može ciljati mrežu ili jedno računalo s kontinuiranim zahtjevima zbog kojih se resursi na ciljnom sustavu preopterećuju što rezultira uskraćivanjem usluge za opravdane zahtjeve.
- Potvrdite prijavu za napade ubrizgavanja HTML skripte.
- Provjerite protiv COM i ActiveX napada.
- Provjerite protiv napada lažnog predstavljanja. Lažiranje može biti više vrsta - lažno predstavljanje IP adrese, lažno predstavljanje ID-a e-pošte,
- ARP lažno predstavljanje, lažno upućivanje referenta, lažno predstavljanje pozivatelja, trovanje mreža za razmjenu datoteka, GPS lažno predstavljanje.
- Provjerite nekontrolirani napad niza formata - sigurnosni napad koji može dovesti do pada programa ili izvršavanja štetne skripte na njemu.
- Provjerite napad XML ubrizgavanjem - koristi se za promjenu namjeravane logike aplikacije.
- Provjerite protiv napada kanonizacijom.
- Provjerite prikazuju li stranice s pogreškama informacije koje bi mogle biti korisne za ulazak hakera u sustav.
- Provjerite jesu li neki kritični podaci poput lozinke pohranjeni u tajnim datotekama na sustavu.
- Provjerite vraća li aplikacija više podataka nego što je potrebno.
Ovo su samo osnovni testni scenariji za početak rada s Pentestom. Postoje stotine naprednih metoda prodiranja koje se mogu izvesti ručno ili uz pomoć alata za automatizaciju.
Daljnje čitanje:
Standardi ispitivanja olovke
- PCI DSS (Standard zaštite podataka industrije platnih kartica)
- OWASP (Otvoreni projekt sigurnosti web aplikacija)
- ISO / IEC 27002 , OSSTMM (Priručnik za metodologiju sigurnosnog ispitivanja otvorenog koda)
Potvrde
- GPEN
- Suradnik sigurnosnog ispitivača ( AST )
- Viši sigurnosni ispitivač (SST)
- Ovlašteni ispitivač penetracije ( CPT )
Zaključak
Napokon, kao ispitivač penetracije, trebali biste prikupiti i evidentirati sve ranjivosti u sustavu. Ne zanemarujte nijedan scenarij s obzirom na to da ga krajnji korisnici neće izvršiti.
najbolja špijunska aplikacija za mobitel
Ako ste ispitivač penetracije, pomozite našim čitateljima svojim iskustvom, savjetima i primjerima testnih slučajeva kako učinkovito izvršiti ispitivanje penetracije.
Preporučena literatura
- 19 Snažni alati za ispitivanje prodora koje su profesionalci koristili 2021. godine
- Vodič za početnike za ispitivanje prodora web aplikacija
- Alfa testiranje i beta testiranje (cjelovit vodič)
- Testiranje mrežne sigurnosti i najbolji alati mrežne sigurnosti
- Vodič za ispitivanje sigurnosti web aplikacija
- Kompletni vodič za testiranje provjere izrade (BVT testiranje)
- Funkcionalno ispitivanje vs nefunkcionalno testiranje
- Najbolji alati za testiranje softvera 2021. (Alati za automatizaciju ispitivanja kvalitete)