Kaj je test penetracije (pen test)?
S pomočjo testov penetracije (pogosto imenovanih tudi »pen testi«) je mogoče ugotoviti verjetnost napada na vaše omrežje, vključno s posameznimi sistemi znotraj omrežja ter posameznimi aplikacijami. Preberite, kako se taki testi izvajajo in kaj pomenijo za omrežje, ki je že v uporabi.
Kaj je testiranje varnosti?
V informacijsko-tehnološkem sektorju je penetracijski test načrtovan napad na omrežje katere koli velikosti ali posamezne računalnike, katerega cilj je odkriti ranljivosti. Za dosego tega cilja se uporabljajo različna orodja za simulacijo različnih vzorcev napadov, ki so zasnovani na pogostih metodah napadov. Tipične komponente, na katerih se izvaja penetracijski test, so:
- Omrežni povezovalni elementi, kot so usmerjevalniki, stikala in prehodi
- Varnostna vrata, kot so programski in strojni požarni zidovi, filtri paketov, protivirusni skenerji, porazdeljevalniki obremenitve, IDS in IPS itd.
- Strežniki, kot so spletni strežniki, strežniki baz podatkov, datotečni strežniki itd.
- Telekomunikacijski sistemi
- Vse vrste spletnih aplikacij
- Infrastrukturne naprave, npr. mehanizmi za nadzor dostopa
- Brezžična omrežja, ki so del sistema, kot sta WiFi ali Bluetooth
Testiranje se običajno deli na testiranje črne škatle, bele škatle in sive škatle: pri testiranju črne škatle imajo penetracijski testirani na voljo le podatke o naslovu ciljnega omrežja ali sistema. Pri testiranju bele škatle imajo testirani obsežno znanje o sistemih, ki jih bodo testirali. Poleg IP-naslova prejmejo tudi podatke o uporabljenih programskih in strojnih komponentah. Testiranje sive škatle, ki je najpogostejša oblika penetracijskega testiranja, združuje metode testiranja črne in bele škatle. Na voljo so osnovne informacije o IT-infrastrukturi, kot so namen sistemov in njihova splošna sestava.
Kaj potrebujem za testiranje varnosti?
Kako lahko pripravite prilagojen test vdorov za svoje omrežje? V nadaljevanju boste našli ključne informacije o tem, kaj morate upoštevati pri izvajanju testa vdorov.
Kako se lahko pripravim na testiranje varnosti?
Za uspešno izvedbo penetracijskega testiranja je pomembno, da najprej pripravite jasen načrt. Ugotovite, katere komponente je treba testirati, ali imate na voljo vsa potrebna orodja ter kakšen je časovni okvir za vsak posamezni test in za celotno oceno vašega omrežja.
Pripravljalna faza je še toliko bolj pomembna, če najemate zunanje preizkuševalce in želite uporabiti metodo »white box« testiranja. Če se odločite za to metodo, boste morali preizkuševalni ekipi posredovati vse informacije o vašem omrežju in sistemih ter vso dokumentacijo, ki jo imate za svoj sistem. Pri »black box« testiranju je postopek drugačen. Pri tej metodi boste morali razkriti le ciljne naslove komponent, ki jih je treba preizkusiti.
Osebje, zadolženo za testiranje varnosti, mora imeti strokovno znanje na ključnih tehničnih področjih, kot so sistemsko upravljanje, omrežni protokoli, programski jeziki, izdelki za informacijsko varnost, aplikacijski sistemi in omrežne komponente.
Katera so najboljša orodja za testiranje varnosti?
Ker obstaja toliko različnih vrst napadov, je smiselno, da imamo na voljo veliko različnih orodij za testiranje varnosti. Med najpomembnejšimi so:
- Skenerji vrat: skenerji vrat uporabljajo specializirana orodja za odkrivanje odprtih vrat v sistemu.
- Skenerji ranljivosti: skenerji ranljivosti pregledujejo sisteme, da bi odkrili obstoječe varnostne ranljivosti, napačne konfiguracije ter neustrezne politike glede gesel in uporabnikov.
- Snifferji: sniffer se uporablja za analizo omrežnega prometa. Močnejše je šifriranje, manj informacij bo lahko zbral.
- Generatorji paketov: generatorji paketov so orodja, ki se uporabljajo za generiranje ali simulacijo podatkov omrežnega prometa. To omogoča posnemanje omrežnega prometa med testom penetracije.
- Lomilci gesel: penetracijski testerji uporabljajo lomilce gesel kot način za pridobivanje gesel, ki niso varna.
Mnoga od zgoraj navedenih orodij so bila izrecno razvita za testiranje varnosti omrežij in so zato prilagojena posebnim področjem testiranja. Čeprav velika večina teh programov izhaja iz odprtokodnega sektorja, obstajajo tudi nekatere komercialne varnostne aplikacije, ki so na splošno bolje dokumentirane in vključujejo celovito IT-podporo.
Kateri so posamezni koraki pri testiranju varnosti?
Postopek testiranja pri penetracijskem testiranju lahko razdelimo na naslednje štiri korake:
Pregled koncepta omrežja
Test penetracije lahko že v pripravljalni fazi odkrije neskladja ali šibke točke v zasnovi omrežja ali posameznih komponent. Če so na primer več aplikacij konfigurirane z različnimi skupinami dostopa, lahko to hitro povzroči zaplete in predstavlja varnostno tveganje za celotno omrežje, četudi so omrežje in posamezni gostovani programi ustrezno zaščiteni. Nekatere od teh težav je mogoče rešiti že med predhodnim pogovorom, druge pa je mogoče potrditi šele z izvedbo praktičnega testa.
Ukrepi za zaščito pred zlorabo
Zagotavljanje čim večje varnosti sistemov v omrežju je ključnega pomena za varnost podjetniškega omrežja. Med penetracijskim testiranjem je pomembno preveriti že sprejete zaščitne ukrepe. To vključuje preverjanje nameščene programske opreme, kot so operacijski sistemi, sistemske storitve in aplikacije, ki morajo biti vedno posodobljene. Če se zaradi združljivosti z drugimi aplikacijami uporabljajo starejše različice, morate sprejeti alternativne varnostne ukrepe za zaščito sistema. Poleg tega imajo pomembno vlogo tudi zahteve glede dostopa in avtentifikacije za posamezne sisteme in programe. Pri tem se penetracijsko testiranje ukvarja z vprašanji, kot so:
- Dostopne pravice
- Uporaba gesla in šifriranje
- Uporaba obstoječih vmesnikov in odprtih vrat
- Določena pravila (npr. pravila požarnega zidu)
Iskanje znanih ranljivosti
Odkrivanje varnostnih ranljivosti ponavadi ne traja dolgo, zato so testarji penetracijskih testov običajno seznanjeni z ranljivostmi testiranih sistemov. Na podlagi podatkov o stanju različic in stopnji posodobitev, ki so jih testarji zbrali med preučevanjem zaščite omrežnih komponent, lahko hitro ugotovijo, katere aplikacije predstavljajo varnostno tveganje. Če je treba v kratkem času analizirati veliko sistemov, je lahko uporaba skenerjev ranljivosti v pomoč, čeprav ti ne zagotavljajo vedno natančnih rezultatov.
Ciljna uporaba varnostnih ranljivosti
Preizkuševalec lahko ugotovi, ali je mogoče odkrite ranljivosti izkoristiti ali ne, le tako, da jih dejansko izkoristi. Zaporedja ukazov, ki se uporabljajo za takšne izkoriščanja, so običajno skripti, pridobljeni iz različnih internetnih virov. Ti pa niso vedno varno napisani. Če se izvede nezavarovano izkoriščanje, obstaja tveganje, da bo aplikacija ali sistem, ki se testira, doživel sesutje, v najslabšem primeru pa se lahko pomembni podatki prepišejo. Zato morajo penetracijski testerji biti previdni in uporabljati le zanesljive skripte iz uglednih virov ali pa se testiranja ranljivosti sploh vzdržati.
Ekipa za testiranje mora zabeležiti vse korake in rezultate penetracijskega testa. Tako boste imeli najboljšo podlago za razumevanje posameznih korakov in oceno stanja. Na podlagi priporočenih seznamov prednostnih nalog lahko postopek zaščite vašega sistema postopoma optimizirate. Na splošno se priporoča, da penetracijski test izvedete vsaj enkrat letno.
Kakšne so prednosti in slabosti testiranja varnosti s prodorom?
Enotne računalniške strukture so stvar preteklosti. Današnje decentralizirane IT-strukture lahko vsak dan povzročajo nove ranljivosti in napake. Čeprav lahko razvijalci programske opreme te napake včasih hitro odpravijo, jim včasih za rešitev takšnih težav vzame malo več časa.
Prav tu se pokažejo prednosti testiranja varnosti, ki prinaša naslednje prednosti:
- Penetracijski testi sisteme preučijo veliko podrobneje kot običajni varnostni pregledi.
- Osnovni cilj penetracijskega testiranja je preveriti, kako dobro posamezne komponente delujejo skupaj.
- Z zunanjim preizkuševalcem dobite dodatno mnenje ter drugačen pogled na vaš osnovni varnostni koncept.
- Profesionalni penetracijski testerji so posebej usposobljeni in se vašega sistema lotevajo tako, kot bi to storil heker.
Testi penetracije, zlasti pa sodelovanje z zunanjimi preizkuševalci, pa prinašajo tudi svoje slabosti:
- Med izvajanjem penetracijskega testiranja ima testna ekipa dostop do notranjih podatkov in procesov.
- Pri penetracijskih testih vedno obstaja možnost, da test povzroči nepopravljivo škodo.
- Penetracijski testi zagotavljajo le trenutni vpogled v vaše omrežne sisteme in zato nikoli ne smejo biti razlog za opustitev običajnih varnostnih ukrepov.
Prav tako je pomembno upoštevati, da tradicionalni testi varnosti ne ocenjujejo tveganj, povezanih s socialnim inženiringom. Mnoga podjetja ponujajo storitve za odkrivanje takšnih ranljivosti ter organizirajo posebna usposabljanja o tem, kako preprečiti napade socialnega inženiringa.