Penetracijsko testiranje nije jedna usluga, nego obitelj usluga koje ciljaju različite mete. Mreža, web aplikacija, API, mobilna aplikacija, bežična mreža, cloud okruženje, fizički prostor i ljudi traže različite vještine, alate i metodologije. Tester koji odlično probija web aplikaciju ne mora znati zaobići bežičnu mrežu ili ući kroz recepciju. Zato izraz "naručili smo pentest" sam po sebi ne govori ništa o tome što je stvarno provjereno, a što je ostalo netaknuto.
Za reguliranu tvrtku u financijama, zdravstvu, kritičnoj infrastrukturi ili SaaS-u to nije akademsko pitanje. Ako naručite vanjsko mrežno testiranje i mislite da je aplikacija pokrivena, ostajete izloženi tamo gdje vas najviše boli. Ako naručite black box na složenoj aplikaciji s ograničenim budžetom, tester potroši vrijeme na uvodno snimanje umjesto na dubinu. Ovaj tekst objašnjava sve glavne vrste penetracijskog testiranja, po čemu se razlikuju, koju odabrati prema riziku i koju čestu grešku izbjeći pri naručivanju.
Ovo je dio našeg pregleda ofenzivne sigurnosti. Sve navedene vrste pružamo kroz ofenzivnu sigurnost.
Mrežno testiranje: vanjsko i unutarnje
Mrežno penetracijsko testiranje cilja infrastrukturu, dakle poslužitelje, servise, mrežne uređaje i njihove konfiguracije. Dijeli se na dvije jasno odvojene vrste koje odgovaraju na različita pitanja. Vanjsko mrežno testiranje gleda sve što je dostupno s interneta: javne IP adrese, izložene servise, VPN pristupne točke, poštanske poslužitelje i web servere na razini mreže. Odgovara na pitanje što napadač može postići bez ikakvog početnog pristupa, samo s vaše javne adrese.
Unutarnje mrežno testiranje polazi od pretpostavke da je napadač već unutra, bilo kroz uspješan phishing, kompromitirani laptop ili zlonamjernog djelatnika. Odgovara na drugo pitanje: koliko štete napadač može napraviti nakon prvog proboja. Tu se gleda lateralno kretanje, eskalacija privilegija, napadi na Active Directory, slabe lozinke i segmentacija mreže. Ove dvije vrste nisu zamjenjive. Tvrtka koja je solidno zaštićena prema vani može iznutra biti potpuno ravna, gdje jedan kompromitirani račun vodi do domenskog administratora u nekoliko koraka. Mrežno testiranje provodimo kroz penetracijsko testiranje mreže.
Testiranje web aplikacija
Web aplikacija je za većinu tvrtki najizloženija pojedinačna meta jer je dostupna svima, danonoćno, iz cijelog svijeta. Penetracijsko testiranje web aplikacije cilja samu aplikaciju i njezinu logiku, a ne mrežu na kojoj se vrti. Testeri pokušavaju zaobići autentifikaciju, zlouporabiti poslovnu logiku, ukrasti tuđe podatke kroz greške u kontroli pristupa i proširiti ovlasti.
Ovdje se nalaze klase ranjivosti koje automatski skeneri sustavno promašuju: nesigurna izravna referenca na objekt, kvarna kontrola pristupa između korisnika, mane u tijeku plaćanja ili registracije i logičke greške koje su specifične za vašu aplikaciju. Dobar test web aplikacije slijedi OWASP Web Security Testing Guide i daje potvrđene nalaze s koracima za reprodukciju, a ne sirovi izvještaj alata. Ovo je usluga koju pružamo kroz testiranje web aplikacija.
Testiranje API-ja
API-ji su postali zasebna meta jer moderne aplikacije sve više rade kroz sučelja koja razmjenjuju podatke između sustava, mobilnih klijenata i partnera. Web sučelje koje korisnik vidi često je samo tanak sloj iznad API-ja koji nosi svu logiku. API se ne može valjano testirati kroz korisničko sučelje jer mnoge krajnje točke nisu vidljive u pregledniku, a baš tamo se kriju problemi.
Testiranje API-ja gleda autentifikaciju i autorizaciju na razini svake krajnje točke, kontrolu pristupa između korisnika, ograničavanje brzine, izloženost podataka i mane u poslovnoj logici. Klasičan nalaz je krajnja točka koja vraća tuđe podatke ako promijenite identifikator u zahtjevu, jer aplikacija provjerava da ste prijavljeni ali ne i da smijete vidjeti baš taj zapis. Više o obrambenoj strani naći ćete u tekstu o sigurnosti API-ja, a uslugu pružamo kroz API testiranje.
Mobilno i bežično testiranje
Testiranje mobilnih aplikacija pokriva i samu aplikaciju na uređaju i komunikaciju prema pozadinskim servisima. Testeri gledaju kako aplikacija pohranjuje podatke lokalno, koristi li sigurnu pohranu za tokene i ključeve, provjerava li valjanost certifikata i ima li zaštitu od izmjene koda na rootanom ili jailbreaknutom uređaju. Velik dio rizika kod mobilnih aplikacija zapravo leži u API-ju iza njih, pa se ova dva testa često rade zajedno.
Bežično testiranje cilja Wi-Fi mreže i njihovu konfiguraciju. Tester provjerava jačinu enkripcije, odvojenost gostujuće mreže od poslovne, otpornost na lažne pristupne točke i moguće prelaženje iz bežične mreže u internu žičanu infrastrukturu. Za tvrtke s uredima i fizičkim lokacijama bežična mreža je čest, a podcijenjen ulaz, jer napadač ne mora ni ući u zgradu da bi bio nadomak vaše mreže s parkirališta.
Cloud procjena
Cloud procjena se razlikuje od klasičnog mrežnog testa jer se rizik kod AWS-a, Azurea ili Google Clouda najčešće ne krije u nezakrpanom poslužitelju, nego u konfiguraciji i dozvolama. Najčešći uzroci proboja u oblaku su preširoke IAM uloge, javno dostupni storage spremnici, izloženi upravljački pristupi i loše postavljene sigurnosne grupe. Tu odgovornost dijeli i pružatelj usluge i korisnik, prema modelu podijeljene odgovornosti, a većina incidenata pada na stranu korisnika.
Cloud procjena kombinira pregled konfiguracije prema priznatim mjerilima i aktivno testiranje gdje je dopušteno ugovorom s pružateljem. Cilj je pronaći putove kojima napadač eskalira od jedne kompromitirane komponente do širokog pristupa cijelom okruženju. Ovu uslugu pružamo kroz procjenu sigurnosti u oblaku, a šira slika rizika je u tekstu o sigurnosti u oblaku.
Socijalni inženjering i fizičko testiranje
Tehnologija je sve teža meta, pa napadači ciljaju ljude. Socijalni inženjering testira otpornost djelatnika na phishing, lažne pozive, poruke i pokušaje manipulacije. Cilj nije osramotiti zaposlenike, nego izmjeriti koliko realistično napadač može doći do pristupnih podataka ili navesti nekoga na štetnu radnju, te dati podatke za ciljanu edukaciju. Više o samoj prijetnji je u tekstu o phishingu i socijalnom inženjeringu, a edukaciju pružamo kroz trening sigurnosne svijesti.
Fizičko testiranje provjerava kontrole pristupa prostorima. Tester pokušava ući u zgradu, prostorije s opremom ili podatkovni centar bez ovlaštenja, koristeći praćenje zaposlenika kroz vrata, lažne identitete ili slabosti u kontroli ulaza. Za tvrtke s lokalnom infrastrukturom i osjetljivim podacima fizički pristup je često najkraći put do potpune kompromitacije, jer onaj tko stoji ispred poslužitelja zaobilazi većinu mrežnih kontrola.
Red teaming kao zaseban pristup
Red teaming nije još jedna vrsta mete, nego zaseban pristup koji kombinira sve navedeno u jednu simulaciju stvarnog napada s konkretnim ciljem. Umjesto da provjeri sve ranjivosti na jednoj meti, red tim si postavi cilj poput "dođi do baze klijenata" ili "izvrši lažni nalog za plaćanje" i zatim koristi bilo koju kombinaciju phishinga, mrežnog proboja, fizičkog ulaza i zlouporabe aplikacija da do njega dođe, tiho i bez najave većini organizacije.
Razlika prema klasičnom pentestu je u cilju. Pentest mjeri pokrivenost i nalazi što više ranjivosti na zadanoj meti. Red teaming mjeri otkrivanje i odgovor, dakle hoće li vaš sigurnosni tim uopće primijetiti napad i kako će reagirati. Zato red teaming ima smisla tek kada organizacija ima zrele osnovne kontrole. Tvrtka koja još nije provela osnovne pentestove dobit će više vrijednosti od ciljanog testiranja pojedinih meta.
Black box, grey box i white box
Druga važna podjela nije po meti, nego po tome koliko tester unaprijed zna. Ta razina informacija određuje koliko je test realističan i koliko temeljit, i izravno utječe na trošak i trajanje. Ista meta može se testirati u sve tri varijante, s vrlo različitim rezultatom.
| Pristup | Što tester zna | Realističnost | Dubina i učinkovitost |
|---|---|---|---|
| Black box | Nema unaprijed informacija, samo ime mete, kao stvarni vanjski napadač. | Najviša, oponaša napad izvana. | Najsporiji, vrijeme odlazi na snimanje, manja pokrivenost po budžetu. |
| Grey box | Ograničene informacije, primjerice korisnički račun ili osnovna dokumentacija. | Visoka, oponaša napadača s početnim uporištem. | Dobar omjer realizma i pokrivenosti, najčešći izbor. |
| White box | Pun uvid, uključujući kod, arhitekturu i konfiguraciju. | Niža kao oponašanje vanjskog napada. | Najtemeljitiji i najučinkovitiji, najveća pokrivenost po budžetu. |
Za većinu reguliranih tvrtki grey box daje najbolji omjer jer simulira realistični scenarij gdje napadač ima neko početno uporište, a tester ne troši cijeli budžet na uvodno snimanje. White box je najbolji izbor kada je cilj maksimalna pokrivenost prije važnog izdanja ili revizije, a black box kada želite iskreno izmjeriti koliko ste izloženi izvana.
Kako odrediti opseg prema riziku
Izbor vrste i razine ne smije polaziti od kataloga usluga, nego od vašeg rizika. Sljedeći koraci vode od imovine do konkretnog opsega koji ima smisla.
- 01Popišite što štititeOdredite najvažniju imovinu i najizloženije sustave: aplikacija s podacima klijenata, mreža, cloud okruženje ili fizičke lokacije.
- 02Povežite imovinu s rizikomProcijenite čiji bi proboj najviše naštetio poslovanju, kroz prihod, reputaciju ili regulatorne posljedice. Ovdje pomaže formalna procjena rizika.
- 03Odaberite vrste prema toj imoviniWeb aplikaciji odgovara web i API test, uredu s Wi-Fijem bežično i fizičko, cloud okruženju cloud procjena. Ne uzimajte sve odjednom, nego najrizičnije prvo.
- 04Odredite razinu informacijaBlack, grey ili white box prema cilju i budžetu. Za većinu meta krenite od grey boxa.
- 05Pisano definirajte opsegJasno navedite što je unutar, a što izvan dosega, vremenske prozore i kontakte. Sve izvan opsega ostaje neprovereno i to mora biti svjesna odluka.
Nije bitno jeste li naručili pentest, nego jeste li testirali ono što vas može srušiti.
Pentest ili procjena ranjivosti
Vrijedi razlikovati i penetracijsko testiranje od procjene ranjivosti, jer se često brkaju i kupuju jedno umjesto drugog. Procjena ranjivosti je široko, najčešće automatizirano skeniranje koje nabraja poznate ranjivosti na mnogo sustava. Penetracijsko testiranje je dublje, ručno i ciljano, te potvrđuje što se od tih ranjivosti stvarno može iskoristiti i dokle se dolazi.
Obje imaju mjesto. Procjena ranjivosti je dobra za redovit, čest pregled cijele površine. Pentest je za dubinsku provjeru najvažnijih meta i za dokazivanje stvarnog rizika. Detaljnu usporedbu, uključujući kada koju koristiti, naći ćete u tekstu o procjeni ranjivosti i pentestu. Na trošak utječu vrsta, opseg i razina informacija, o čemu pišemo u tekstu o cijeni penetracijskog testiranja.
Kako Raptoric pomaže
Kao neovisna tvrtka prvo pomažemo odrediti koje vrste testiranja stvarno trebate prema vašem riziku, bez gurnja prema najvećem paketu. Zatim ih provodimo prema priznatim metodologijama, OWASP-u za aplikacije i NIST SP 800-115 za infrastrukturu,12 kroz ofenzivnu sigurnost, uz potvrđene nalaze, redoslijed ispravaka po riziku i ponovni test. Dogovorite uvodni razgovor i krenut ćemo od onoga što vas najviše izlaže.
