complete penetration testing guide with sample test cases
To je postopek za ugotavljanje varnostnih ranljivosti v aplikaciji z ocenjevanjem sistema ali omrežja z različnimi zlonamernimi tehnikami. Šibke točke sistema se v tem postopku izkoristijo s pooblaščenim simuliranim napadom.
Namen tega testa je zaščititi pomembne podatke od tujcev, kot so hekerji, ki imajo nepooblaščen dostop do sistema. Ko je ranljivost prepoznana, se uporablja za izkoriščanje sistema za dostop do občutljivih informacij.
Preskus penetracije je znan tudi kot test peresa, preizkuševalnik penetracije pa se imenuje tudi etični heker.
Kaj se boste naučili:
- Kaj je testiranje penetracije?
- Vzroki ranljivosti
- Orodja in podjetja za preizkušanje penetracije
- Priporočena orodja za testiranje penetracije
- Priporočeno podjetje za testiranje penetracije
- Zakaj testiranje penetracije?
- Kaj je treba preizkusiti?
- Vrste preskušanja penetracije
- Tehnike testiranja s peresom
- Vzorčni primeri preizkušanja penetracije (scenariji preizkusa)
- Zaključek
Kaj je testiranje penetracije?
Ranljivosti računalniškega sistema, spletne aplikacije ali omrežja lahko ugotovimo s testiranjem penetracije.
Prebojni test pove, ali so obstoječi obrambni ukrepi, uporabljeni v sistemu, dovolj močni, da preprečijo kakršne koli kršitve varnosti. Poročila o preizkusih penetracije nakazujejo tudi protiukrepe, ki jih je mogoče sprejeti za zmanjšanje tveganja vdora v sistem.
Vzroki ranljivosti
- Napake pri načrtovanju in razvoju : Pri oblikovanju strojne in programske opreme lahko obstajajo napake. Te napake lahko vaše poslovne podatke kritično ogrozijo.
- Slaba konfiguracija sistema : To je še en vzrok ranljivosti. Če je sistem slabo konfiguriran, lahko uvede vrzeli, skozi katere lahko napadalci vstopijo v sistem in ukradejo informacije.
- Človeške napake : Človeški dejavniki, kot so neustrezno odstranjevanje dokumentov, puščanje dokumentov brez nadzora, napake pri kodiranju, grožnje z notranjimi informacijami, deljenje gesel za spletna mesta z lažnim predstavljanjem itd., Lahko vodijo do kršitev varnosti.
- Povezljivost : Če je sistem povezan z nezaščitenim omrežjem (odprte povezave), je hekerjem na dosegu roke.
- Kompleksnost : Varnostna ranljivost se poveča sorazmerno s kompleksnostjo sistema. Več kot ima sistem funkcij, več možnosti je, da sistem napade.
- Gesla : Gesla se uporabljajo za preprečevanje nepooblaščenega dostopa. Morali bi biti dovolj močni, da nihče ne more uganiti vašega gesla. Gesla ne smete deliti z nikomer za vsako ceno, gesla pa je treba redno spreminjati. Kljub tem navodilom včasih ljudje razkrijejo svoja gesla drugim, jih nekje zapišejo in hranijo enostavna gesla, ki jih je mogoče uganiti.
- Uporabniški vnos : Verjetno ste že slišali za vbrizgavanje SQL, prelivanje medpomnilnika itd. Podatke, ki jih elektronsko prejemajo te metode, lahko uporabimo za napad na sprejemni sistem.
- Upravljanje : Varnost je težko in drago upravljati. Včasih organizacije zaostajajo pri ustreznem obvladovanju tveganj in zato v sistemu nastaja ranljivost.
- Pomanjkanje usposobljenosti osebja : To vodi do človeških napak in drugih ranljivosti.
- Komunikacija : Kanali, kot so mobilna omrežja, internet, telefon, odpirajo obseg varnostne kraje.
Orodja in podjetja za preizkušanje penetracije
Avtomatizirana orodja lahko uporabite za prepoznavanje nekaterih standardnih ranljivosti, ki so prisotne v aplikaciji. Orodja Pentest optično preberejo kodo, da preverijo, ali je prisotna zlonamerna koda, ki lahko povzroči potencialno varnostno kršitev. Orodja Pentest lahko preverijo vrzeli v sistemu, tako da preučijo tehnike šifriranja podatkov in ugotovijo trdno kodirane vrednosti, kot sta uporabniško ime in geslo.
Merila za izbiro najboljšega orodja za prodiranje:
- Morala bi biti enostavna za uvajanje, konfiguriranje in uporabo.
- Preprosto bi moral skenirati vaš sistem.
- Ranljivosti bi moral kategorizirati glede na resnost, ki jo je treba takoj odpraviti.
- Moral bi biti sposoben avtomatizirati preverjanje ranljivosti.
- Ponovno bi moral preveriti predhodno ugotovljene podvige.
- Ustvariti mora podrobna poročila in dnevnike o ranljivosti.
Ko veste, katere teste morate opraviti, lahko bodisi usposobite svoje notranje testne vire bodisi najamete strokovne svetovalce, ki namesto vas opravijo nalogo penetracije.
Priporočena orodja za testiranje penetracije
# 1) Acunetix
Acunetix WVS ponuja varnostnim strokovnjakom in programskim inženirjem vrsto osupljivih funkcij v enostavnem, neposrednem in zelo robustnem paketu.
=> Tukaj preizkusite najboljše orodje za preizkušanje pisala 
# 2) vsiljivec

Vsiljivec je zmogljiv pregledovalnik ranljivosti, ki najde pomanjkljivosti kibernetske varnosti v vaši digitalni nepremičnini, razloži tveganja in pomaga pri njihovi odpravi, preden lahko pride do kršitve. Je popolno orodje za avtomatizacijo vaših prizadevanj za testiranje penetracije.
Ključne funkcije :
- Več kot 9000 samodejnih pregledov celotne vaše IT infrastrukture.
- Preverjanja infrastrukture in spletnih slojev, kot sta vbrizgavanje SQL in skriptiranje na več mestih.
- Samodejno pregleda vaše sisteme, ko se odkrijejo nove grožnje.
- Več integracij: AWS, Azure, Google Cloud, API, Jira, Teams in še več.
- Intruder ponuja 30-dnevno brezplačno preskusno različico Pro načrta.
Priporočeno podjetje za testiranje penetracije
# 1) ImmuniWeb®

ImmuniWeb® je podjetje za testiranje penetracije s sedežem v Ženevi v Švici. Njegova platforma za testiranje penetracije aplikacij, ki jo podpira DevSecOps, združuje ljudi z umetno inteligenco in ima nič lažno pozitivnih SLA, najvišjo zaznavnost ranljivosti in uporabno poročanje.
ImmuniWeb ponuja celovito testiranje penetracije aplikacij v notranjih in zunanjih spletnih in mobilnih aplikacijah, API-jih in spletnih storitvah, poštnih strežnikih, napravah IoT in še več.
Ključne funkcije:
- Neprekinjeno zaznavanje nove kode.
- Hitro in stroškovno učinkovito ročno testiranje.
- Zmogljivosti virtualnih popravkov z enim klikom.
- 24-urni dostop do varnostnih analitikov.
- DevSecOps in integracija CI / CD.
- Takojšnje naročilo in hitra dostava.
- Večnamenska armaturna plošča.
Druga brezplačna orodja:
Komercialne storitve:
Lahko se sklicujete tudi na spodnji seznam STH, ki govori o 37 zmogljivih orodjih za testiranje penetracije => Zmogljiva orodja za preizkušanje penetracije za vsak preizkuševalnik penetracije
kakšen je vaš pristop med testiranjem mobilnih aplikacij
Zakaj testiranje penetracije?
Gotovo ste že slišali za napad na odkupnino WannaCry, ki se je začel maja 2017. Zaklenil je več kot 2 lakh računalnika po vsem svetu in zahteval plačilo odkupnine v kriptovaluti Bitcoin. Ta napad je prizadel številne velike organizacije po vsem svetu.
Zaradi takšnih množičnih in nevarnih kibernetskih napadov, ki se dogajajo danes, je postalo neizogibno redno izvajati testiranje penetracije, da bi zaščitili informacijske sisteme pred kršitvami varnosti.
Torej, testiranje penetracije je potrebno predvsem za:
- Finančne ali kritične podatke je treba zaščititi med prenosom med različnimi sistemi ali prek omrežja.
- Številne stranke zahtevajo testiranje pisala kot del cikla izdaje programske opreme.
- Za zaščito uporabniških podatkov.
- Za iskanje varnostnih ranljivosti v aplikaciji.
- Odkriti vrzeli v sistemu.
- Za oceno poslovnega vpliva uspešnih napadov.
- Izpolnjevanje zahtev glede varnosti informacij v organizaciji.
- Za izvajanje učinkovite varnostne strategije v organizaciji.
Vsaka organizacija mora prepoznati varnostna vprašanja, ki so prisotna v notranjem omrežju in računalnikih. Z uporabo te informacijske organizacije lahko načrtuje obrambo pred kakršnimi koli poskusi vdora. Zasebnost uporabnikov in varnost podatkov sta danes največja skrb.
Predstavljajte si, če kakemu hekerju uspe dobiti uporabniške podatke o spletnem mestu za družabna omrežja, kot je Facebook. Organizacija se lahko sooča s pravnimi težavami zaradi majhne vrzeli v programskem sistemu. Zato velike organizacije iščejo potrdila o skladnosti s PCI (industrija plačilnih kartic), preden poslujejo s tretjimi strankami.
Kaj je treba preizkusiti?

- Programska oprema (operacijski sistem, storitve, aplikacija)
- Strojna oprema
- Omrežje
- Procesi
- Obnašanje končnega uporabnika
Vrste preskušanja penetracije
# 1) Test socialnega inženirstva: V tem testu se poskuša oseba razkriti občutljive podatke, kot so geslo, poslovno pomembni podatki itd. Ti testi se večinoma izvajajo po telefonu ali internetu in ciljajo na določene službe za pomoč, zaposlene in procese.
Človeške napake so glavni vzroki za varnostno ranljivost. Vsi uslužbenci bi morali upoštevati varnostne standarde in politike, da bi se izognili poskusom prodora socialnega inženiringa. Primer teh standardov je, da v e-poštni ali telefonski komunikaciji ne omenjamo občutljivih podatkov. Za odkrivanje in odpravljanje napak v postopku se lahko izvedejo varnostne revizije.
# 2) Preizkus spletne aplikacije: S programskimi metodami lahko preverimo, ali je aplikacija izpostavljena varnostnim ranljivostim. Preveri varnostno ranljivost spletnih aplikacij in programov, nameščenih v ciljnem okolju.
# 3) Preskus fizične penetracije: Za zaščito občutljivih podatkov se uporabljajo močne metode fizične varnosti. To se običajno uporablja v vojaških in vladnih objektih. Vse fizične omrežne naprave in dostopne točke so preizkušene glede morebitnih kršitev varnosti. Ta test ni preveč pomemben za obseg testiranja programske opreme.
# 4) Test omrežnih storitev : To je eden najpogosteje izvedenih preizkusov penetracije, pri katerem se odprtine v omrežju prepoznajo po vnosu v sisteme v omrežju, da se preveri, kakšne ranljivosti obstajajo. To lahko storite lokalno ali na daljavo.
# 5) Test na strani odjemalca : Njegov cilj je iskanje in izkoriščanje ranljivosti v odjemalskih programih.
# 6) Daljinski dial-up vojni klic : V okolju išče modeme in se s pomočjo ugibanja z geslom ali vsiljevanja poskuša prijaviti v sisteme, povezane prek teh modemov.
# 7) Test brezžične varnosti : Odkrije odprta, nepooblaščena in manj zavarovana dostopna mesta ali omrežja Wi-Fi in se prek njih poveže.
Zgornjih 7 kategorij, ki smo jih videli, so eden od načinov kategorizacije vrst peresnikov. Vrste preizkusov penetracije lahko organiziramo tudi v tri dele, kot je prikazano spodaj:

Pogovorimo se o teh pristopih testiranja enega za drugim:
- Testiranje penetracije črne škatle : Pri tem pristopu preizkuševalec oceni ciljni sistem, omrežje ali postopek brez vednosti njegovih podrobnosti. Imajo zelo visoko raven vhodnih podatkov, kot je URL ali ime podjetja, s katerim prodrejo v ciljno okolje. Pri tej metodi ni preučena nobena koda.
- Preskušanje penetracije bele škatle : Pri tem pristopu je preizkuševalec opremljen s popolnimi podrobnostmi o ciljnem okolju - sistemi, omrežje, OS, naslov IP, izvorna koda, shema itd. Preuči kodo in ugotovi napake pri načrtovanju in razvoju. Gre za simulacijo napada na notranjo varnost.
- Testiranje penetracije sive škatle : Pri tem pristopu ima tester omejene podrobnosti o ciljnem okolju. Gre za simulacijo zunanjih varnostnih napadov.
Tehnike testiranja s peresom
- Ročni test penetracije
- Uporaba avtomatiziranih orodij za testiranje penetracije
- Kombinacija ročnega in avtomatiziranega procesa
Tretji postopek je pogostejši za prepoznavanje vseh vrst ranljivosti.
Ročni test penetracije
Z uporabo avtomatiziranih orodij je težko najti vse ranljivosti. Obstaja nekaj ranljivosti, ki jih je mogoče prepoznati samo z ročnim pregledovanjem. Preizkuševalci penetracije lahko izvajajo boljše napade na aplikacije, ki temeljijo na njihovih spretnostih in znanju o sistemu, v katerega prodrejo.
Metode, kot je socialni inženiring, lahko izvajajo samo ljudje. Ročno preverjanje vključuje načrtovanje, poslovno logiko in preverjanje kode.
Preskusni postopek penetracije:
Pogovorimo se o dejanskem postopku, ki ga sledijo testne agencije ali preizkuševalci penetracije. Prepoznavanje ranljivosti v sistemu je prvi pomemben korak v tem procesu. V zvezi s to ranljivostjo se izvedejo korektivni ukrepi in isti preizkusi penetracije se ponavljajo, dokler sistem ni negativen za vse te teste.
Ta postopek lahko razvrstimo na naslednje načine:

# 1) Zbiranje podatkov: Za pridobivanje ciljnih sistemskih podatkov se uporabljajo različne metode, vključno z Googlovim iskanjem. Za pridobitev več informacij o različicah sistema, programske opreme in vtičnikov lahko uporabimo tudi tehniko analize izvorne kode spletne strani.
Na trgu je na voljo veliko brezplačnih orodij in storitev, ki vam lahko dajo informacije, kot so imena baz podatkov ali tabel, različice DB, različice programske opreme, uporabljena strojna oprema in različni vtičniki drugih proizvajalcev, ki se uporabljajo v ciljnem sistemu.
# 2) Ocena ranljivosti: Na podlagi podatkov, zbranih v prvem koraku, je mogoče najti varnostno šibkost v ciljnem sistemu. To pomaga preizkuševalcem penetracije, da začnejo napade z uporabo identificiranih vstopnih točk v sistemu.
# 3) Dejansko izkoriščanje: To je ključni korak. Za napad na ciljni sistem so potrebne posebne spretnosti in tehnike. Izkušeni preizkuševalci penetracije lahko s svojimi veščinami napadijo sistem.
# 4) Rezultat analize in priprave poročila: Po zaključku penetracijskih preskusov se pripravijo podrobna poročila za izvajanje korektivnih ukrepov. V teh poročilih so navedene vse ugotovljene ranljivosti in priporočene korektivne metode. Obliko poročila o ranljivosti (HTML, XML, MS Word ali PDF) lahko prilagodite glede na potrebe vaše organizacije.
Vzorčni primeri preizkušanja penetracije (scenariji preizkusa)
Ne pozabite, da to ni funkcionalno testiranje. V Pentestu je vaš cilj najti varnostne luknje v sistemu. Spodaj je nekaj splošnih testnih primerov, ki niso nujno veljavni za vse aplikacije.
- Preverite, ali spletna aplikacija lahko prepozna napade neželene pošte na obrazce za stike, ki se uporabljajo na spletnem mestu.
- Proxy strežnik - preverite, ali omrežni promet nadzirajo proxy naprave. Proxy strežnik hekerjem otežuje pridobivanje notranjih podrobnosti o omrežju in tako ščiti sistem pred zunanjimi napadi.
- Filtri za neželeno e-pošto - preverite, ali je dohodni in odhodni e-poštni promet filtriran in nezaželena e-poštna sporočila blokirana.
- Številni e-poštni odjemalci imajo vgrajene filtre za neželeno pošto, ki jih je treba konfigurirati glede na vaše potrebe. Ta pravila o konfiguraciji se lahko uporabljajo za glave e-pošte, zadevo ali telo.
- Požarni zid - zagotovite, da je celotno omrežje ali računalniki zaščiteni z požarnimi zidovi. Požarni zid je lahko programska ali strojna oprema za blokiranje nepooblaščenega dostopa do sistema. Požarni zid lahko prepreči pošiljanje podatkov zunaj omrežja brez vašega dovoljenja.
- Poskusite izkoristiti vse strežnike, namizne sisteme, tiskalnike in omrežne naprave.
- Preverite, ali so vsa uporabniška imena in gesla šifrirana in prenesena prek varnih povezav, kot je https.
- Preverite podatke, shranjene v piškotki spletnega mesta . Ne sme biti v berljivi obliki.
- Preverite predhodno najdene ranljivosti in preverite, ali popravek deluje.
- Preverite, ali v omrežju ni odprtih vrat.
- Preverite vse telefonske naprave.
- Preverite varnost omrežja WIFI.
- Preverite vse metode HTTP. Metodi PUT in Delete ne smeta biti omogočeni na spletnem strežniku.
- Preverite, ali geslo ustreza zahtevanim standardom. Geslo mora biti dolgo najmanj 8 znakov in mora vsebovati vsaj eno številko in en poseben znak.
- Uporabniško ime ne sme biti kot 'admin' ali 'administrator'.
- Stran za prijavo v aplikacijo bi morala biti zaklenjena ob nekaj neuspešnih poskusih prijave.
- Sporočila o napakah morajo biti splošna in ne smejo navajati posebnih podrobnosti o napaki, kot sta »Neveljavno uporabniško ime« ali »Neveljavno geslo«.
- Preverite, ali se s posebnimi znaki, oznakami HTML in skripti pravilno ravna kot z vhodno vrednostjo.
- Nobenih podrobnosti o sistemu ne smete razkriti v nobenem sporočilu o napaki ali opozorilu.
- Sporočila o napakah po meri bi morala biti končnim uporabnikom prikazana v primeru zrušitve spletne strani.
- Preverite uporabo vnosov v registru. Občutljivih podatkov ne smete hraniti v registru.
- Vse datoteke je treba pregledati, preden jih naložite na strežnik.
- Občutljivih podatkov se ne sme posredovati v URL-jih med komunikacijo z različnimi notranjimi moduli spletne aplikacije.
- V sistemu ne sme biti nobenega trdo kodiranega uporabniškega imena ali gesla.
- Preverite vsa vnosna polja z dolgim vnosnim nizom s presledki in brez njih.
- Preverite, ali je funkcija ponastavitve gesla varna.
- Preverite prijavo za SQL Injection .
- Preverite prijavo za Cross-Site Scripting .
- Pomembno preverjanje vnosa je treba opraviti na strani strežnika, namesto preverjanja JavaScript na strani odjemalca.
- Kritični viri v sistemu bi morali biti na voljo samo pooblaščenim osebam in servisom.
- Vse dnevnike dostopa je treba vzdrževati z ustreznimi dovoljenji za dostop.
- Preverite, ali se uporabniška seja konča ob odjavi.
- Preverite, ali je brskanje po imeniku na strežniku onemogočeno.
- Preverite, ali so vse aplikacije in različice zbirke podatkov posodobljene.
- Preverite manipulacijo z URL-ji in preverite, ali spletna aplikacija ne prikazuje neželenih informacij.
- Preverite puščanje pomnilnika in preliv medpomnilnika.
- Preverite, ali je pregledan dohodni omrežni promet, da bi našli trojanske napade.
- Preverite, ali je sistem varen pred napadi Brute Force Attack - načinom poskusov in napak za iskanje občutljivih informacij, kot so gesla.
- Preverite, ali sta sistem ali omrežje zaščitena pred napadi DoS (zavrnitev storitve). Hacker lahko cilja na omrežje ali en računalnik z neprekinjenimi zahtevami, zaradi česar se viri v ciljnem sistemu preobremenijo, kar povzroči zavrnitev storitve za zakonite zahteve.
- Preverite aplikacijo za napade vbrizgavanja skriptov HTML.
- Preverite pred napadi COM in ActiveX.
- Prepričajte se, da so napadi prevara. Prevara je lahko več vrst - prevara IP naslova, prevara ID-ja e-pošte,
- Prevara ARP, prevara referenc, prevara identitete klicatelja, zastrupitev omrežij za skupno rabo datotek, prevara GPS.
- Preverite nenadzorovan napad nizov formatov - varnostni napad, ki lahko povzroči zrušitev aplikacije ali izvajanje škodljivega skripta na njej.
- Preveri napad vbrizga XML - uporablja se za spreminjanje predvidene logike aplikacije.
- Preverite pred napadi kanonizacije.
- Preverite, ali so na straneh z napakami prikazane kakršne koli informacije, ki bi lahko bile v pomoč hekerju v sistem.
- Preverite, ali so kakršni koli pomembni podatki, kot je geslo, shranjeni v skrivnih datotekah v sistemu.
- Preverite, ali aplikacija vrne več podatkov, kot je zahtevano.
To so le osnovni testni scenariji za začetek uporabe Pentesta. Obstaja na stotine naprednih metod prodiranja, ki jih je mogoče izvesti ročno ali s pomočjo orodij za avtomatizacijo.
Nadaljnje branje:
Standardi za testiranje pisala
- PCI DSS (Standard varnosti podatkov o plačilnih karticah)
- OWASP (Odpri projekt varnosti spletnih aplikacij)
- ISO / IEC 27002 , OSSTMM (Priročnik za metodologijo odprtokodnega preskušanja varnosti)
Certifikati
- GPEN
- Pridruženi varnostni preizkuševalec ( AST )
- Višji varnostni preizkuševalec (SST)
- Certificirani preizkuševalnik penetracije ( CPT )
Zaključek
Na koncu bi morali kot preizkuševalnik penetracije zbrati in prijaviti vse ranljivosti v sistemu. Ne prezrite nobenega scenarija, saj ga končni uporabniki ne bodo izvedli.
v čem se java razlikuje od c ++
Če ste preizkuševalec penetracije, prosimo, pomagajte našim bralcem s svojimi izkušnjami, nasveti in vzorčnimi testnimi primeri, kako učinkovito izvesti testiranje penetracije.
Priporočeno branje
- 19 Zmogljiva orodja za preizkušanje penetracije, ki so jih leta 2021 uporabili profesionalci
- Priročnik za začetnike do testiranja prodora spletnih aplikacij
- Alfa testiranje in beta testiranje (popoln vodnik)
- Testiranje omrežne varnosti in najboljša orodja za omrežno varnost
- Vodič za preizkušanje varnosti spletnih aplikacij
- Popoln vodnik za preizkus preverjanja gradnje (testiranje BVT)
- Funkcionalno testiranje vs nefunkcionalno testiranje
- Najboljša orodja za testiranje programske opreme 2021 (QA Test Automation Tools)