Provere penetracije predstavljaju idealan način da vaša kompanija ispita efikasnost svojih sigurnosnih protokola.
Kroz simulaciju stvarnih napada, vaš IT tim ima priliku da detektuje ranjivosti u sistemima, iskoristi ih i stekne znanja o tome kako rešavati specifične sigurnosne probleme. Ako želite detaljan pregled svih koraka, pogledajte naš vodič kroz faze testiranja penetracije.
Bez obzira da li je reč o internom ili eksternom testiranju, test penetracije simulira različite vektore napada. Kod eksternog napada, angažuje se spoljni napadač kako bi se otkrilo koje informacije su dostupne neovlašćenim licima. Interni test se sprovodi nakon eksternog i fokusira se na identifikaciju onoga što haker može postići internim pristupom vašem sistemu.
U zavisnosti od ciljeva testa, tester može imati određeno znanje o testiranom okruženju (ili ga ne mora imati). Ako tester poznaje sistem, to se naziva testiranje „bele kutije“. U drugim slučajevima, test penetracije može biti usmeren na aplikacije, mrežne usluge, socijalni inženjering, bežične mreže ili čak fizičku sigurnost.
Bez obzira koji test penetracije odaberete, dobar test će uvek otkriti ranjivosti i pomoći u jačanju slabih tačaka u vašem sistemu. Međutim, odabir pravog testa za vašu organizaciju može zahtevati vreme i napor, posebno imajući u vidu veliki broj opcija koje su dostupne.
Ovaj članak predstavlja pregled različitih tipova testiranja penetracije, objašnjavajući šta svaki od njih podrazumeva i kada bi bilo najbolje koristiti određeni tip. Na kraju ćete naučiti i nekoliko saveta za odabir najprikladnijeg testa za potrebe vaše organizacije.
Testiranje penetracije veb aplikacija
Izvor: synopsys.com
Ovaj tip testa ima za cilj otkrivanje ranjivosti koje se odnose na veb sajtove i veb aplikacije, uključujući sisteme za e-trgovinu, sisteme za upravljanje odnosima sa klijentima i sisteme za upravljanje sadržajem.
Ispitivanjem sigurnosnih aspekata, prilagođenih funkcija i osnovne logičke funkcionalnosti aplikacije, ovaj test otkriva načine za sprečavanje zloupotreba, finansijskih gubitaka i krađe identiteta. Pre samog testiranja, tester dobija na raspolaganje nekoliko aplikacija za testiranje, polja za unos koja treba proveriti, kao i evidenciju statičkih i dinamičkih stranica kako bi se olakšala procena grešaka u dizajnu i razvoju.
Uobičajene ranjivosti u veb aplikacijama uključuju skriptovanje na više lokacija (XSS), ubacivanje baze podataka i neadekvatnu autentifikaciju. Za dublje razumevanje veb sigurnosti, možete se poslužiti bezbednošću otvorenih veb aplikacija (OWASP), koja predstavlja izuzetan izvor informacija. OWASP objavljuje informacije o učestalosti i ozbiljnosti veb grešaka, na osnovu podataka prikupljenih iz hiljada aplikacija.
Ukoliko vaša kompanija poseduje veb resurse, preporučljivo je razmotriti testiranje penetracije veb aplikacija. U mnogim savremenim organizacijama, veb aplikacije su ključne za skladištenje i razmenu informacija. Zbog toga je potreba za veb testiranjem od suštinske važnosti. Prema statistikama, sajber kriminal se povećao nakon pandemije Covid-19.
Testiranje penetracije mreže
Izvor: synopsys.com
Mrežni testovi penetracije predstavljaju sigurnosne provere usmerene na mrežnu infrastrukturu, bilo da se ona nalazi na lokalnim serverima ili u oblaku. Uključujući širok spektar provera, kao što su ranjivosti šifrovanja, nedostajuće sigurnosne zakrpe i nesigurne konfiguracije, ovi testovi verifikuju sigurnost kritičnih poslovnih podataka.
U ovom slučaju, možete imati interno ili eksterno testiranje. U slučaju eksternog testiranja, tester nema prethodno znanje o sistemu i koristi internet kako bi stekao znanje i iskustvo koje bi hakeri koristili pri napadima. Ako je u pitanju interno testiranje, fokus je na dobijanju pristupa vašoj internoj mreži. Na primer, tester može iskoristiti ranjivosti u sistemima okrenutim ka internetu i pokušati da pristupi informacijama ili poremeti rad.
Nakon izvršenih testova mrežne penetracije, vaša kompanija je zaštićena od uobičajenih mrežnih napada, kao što su pogrešna konfiguracija i zaobilaženje zaštitnog zida, napadi na rutere, napadi na DNS servere, napadi na baze podataka i napadi na proxy servere. Mrežno testiranje će biti adekvatno za vas ako poslovanje vaše kompanije uključuje prenos velikih količina podataka. S obzirom na kritičnu važnost mrežnih usluga za poslovanje, preporučljivo je izvršavati mrežne testove barem jednom godišnje.
Testiranje penetracije mobilnih aplikacija
U kontekstu mobilnih aplikacija, testovi penetracije ispituju aplikacije na različitim operativnim sistemima (Android i iOS) i njihovu interakciju sa API-jima. Dobri testovi dekompiliraju izvorni kod aplikacije kako bi se došlo do što više informacija.
Fokus u ovom slučaju je na arhitekturi aplikacije – dekodiranje pre izvođenja ručnih testova za otkrivanje nesigurnog dizajna i mrežne komunikacije – ispitivanje načina na koji podaci putuju, skladištenja podataka i privatnosti – kako bi se obezbedila usklađenost, jer većina aplikacija čuva kritične podatke, kao što su lozinke i API ključevi, pohranjene u string.xml datotekama, autentifikacija i upravljanje sesijama – gde testovi treba da nadziru procese upravljanja sesijom, kao što su završetak sesije, validnost tokena, ažuriranje lozinki i pogrešna konfiguracija u višefaktorskoj autentifikaciji.
Ukoliko se vaša kompanija u velikoj meri oslanja na razvoj mobilnih aplikacija, kao što su igre, finansijske usluge i aplikacije za kupovinu, razmislite o testovima penetracije pre nego što proizvod objavite za javnu upotrebu ili implementirate nova ažuriranja.
Testiranje bežične penetracije
Bežično testiranje cilja na bežičnu mrežu vaše organizacije i uređaje koji su povezani na nju. Takvi uređaji uključuju pametne telefone, tablete, računare i druge uređaje Interneta stvari (IoT).
Kroz testove penetracije, možete proceniti nivoe sigurnosti bežičnih sigurnosnih programa, otkriti i iskoristiti ranjivosti, razumeti pretnje prisutne na svakoj pristupnoj tački i generisati strategije zasnovane na podacima za rešavanje ranjivosti.
Pre testiranja, trebalo bi da obuhvatite angažman tako što ćete definisati gostujuće i bežične mreže, kao i identifikatore skupa usluga (SSID) kojima će se pristupiti. Iako je ovaj proces više baziran na hardveru, može se obaviti i korišćenjem softverskih alata na operativnim sistemima otvorenog koda, kao što je Kali Linux. Za postizanje dobre sigurnosne kulture, preduzeća mogu obavljati bežične testove dva puta godišnje.
Testiranje penetracije API-ja
API testiranje penetracije (ponekad u paketu sa mikroservisima) se koristi za identifikaciju slabosti API-ja. Trenutno je sve popularnije jer mnoge kompanije omogućavaju trećim stranama pristup nekim od svojih podataka i usluga.
Ovim testiranjem se potvrđuje da su GraphQL, REST, veb servisi i drugi API-ji sigurni i da su provereni u odnosu na poznate ranjivosti. Prilikom testiranja API-ja, proces je sličan onom kod veb aplikacija. To omogućava upotrebu sličnih alata. Međutim, mogu se koristiti i novi alati, kao što su Postman i Swagger.
Ako želite da saznate više, pogledajte našu listu alata za razvoj i testiranje API-ja. Često se ovi alati napajaju nacrtom API-ja, a zatim se kreira okvir API zahteva i prilagođava proizvodu.
Ukoliko vaše preduzeće poseduje veb ili mobilne aplikacije sa pozadinskim API-jem, često sprovođenje API testova može pomoći u otkrivanju izloženosti ili lošeg dizajna kodiranja koji mogu poslužiti kao ulazne tačke za napadače.
Testiranje penetracije socijalnog inženjeringa
Za razliku od drugih tehnika koje se fokusiraju na tehnološke nedostatke, socijalni inženjering koristi ljudsku psihologiju kako bi narušio sigurnost vaše organizacije.
Ovi testovi su korisni jer identifikuju ranjivosti, mere svest o bezbednosti, podižu svest zaposlenih, ublažavaju rizike, poboljšavaju odgovor na incidente, usklađuju se sa propisima, grade poverenje zainteresovanih strana i osiguravaju isplativo upravljanje rizikom.
Najčešće metode napada uključuju „pretexting“, „phishing“, odlaganje medija/fizičke taktike i „tailgating“. Testovi socijalnog inženjeringa se oslanjaju na informacije prikupljene u fazi izviđanja; pri čemu se koristi obaveštavanje iz otvorenih izvora.
Tester može da stvori tačnu sliku mete kako bi prilagodio napad odgovarajućim metodama. Iako nije uobičajeno kao veb testiranje, socijalni inženjering može biti odličan način za identifikaciju slabosti u vašem načinu rada.
Testiranje penetracije fizičke sigurnosti
Testiranje fizičke sigurnosti podrazumeva dobijanje pristupa fizičkom prostoru objekta radi validacije efikasnosti postojećih zaštitnih mera i provere ranjivosti. Za razliku od drugih testova penetracije, ovi se bave fizičkim sigurnosnim merama, kao što su alarmni sistemi, kontrole pristupa i različiti delovi objekta sa osetljivim informacijama.
Da biste sproveli ovaj test, možete koristiti tehnike kao što su fizički zaobilazni put, „tailgating“ i socijalni inženjering. Rezultati dobijeni testom se zatim koriste za postavljanje plana za rešavanje ranjivosti i poboljšanje postojećih sigurnosnih mera.
Ukoliko vaša organizacija ili preduzeće ima fizičko prisustvo, na primer, prodavnice sa podacima i drugim osetljivim informacijama, preporučljivo je koristiti testove penetracije kako bi se ojačala sigurnost. U ovom slučaju, mnogi timovi mogu imati koristi, kao što su banke i finansijske institucije, centri podataka, objekti državnih službi, bolnice i zdravstveni programi, maloprodajni objekti i tržni centri, proizvodni pogoni i organizacije za držanje sertifikata.
Testiranje prodora u oblak
Testovi penetracije u oblak uključuju identifikaciju i iskorišćavanje ranjivosti u aplikacijama i infrastrukturi, na primer, SaaS, na cloud rešenjima, kao što su Microsoft Azure, Amazon Web Services (AWS) i Google Cloud Platform.
Za razliku od drugih testova, penetracija u oblak zahteva duboko razumevanje usluga u oblaku. Na primer, slabost SSRF-a u AWS aplikacijama može ugroziti celu vašu infrastrukturu u oblaku.
Sa drugim rešenjima u oblaku, uključujući Azure AD i AWS Cognito, možete naići na njihove probleme i pogrešne konfiguracije. Uobičajene ranjivosti u oblaku uključuju nesigurne API-je, slabe akreditive, pogrešnu konfiguraciju servera, zastareli softver i nesigurne prakse kodiranja.
Testovi penetracije u oblak mogu poboljšati sigurnost u oblaku ukoliko vaša kompanija pruža usluge u oblaku. S obzirom na to da se većina poslodavaca u oblaku odlučuje za model zajedničke odgovornosti, testovi u oblaku mogu se baviti ranjivostima u platformi, njenim mrežama i skladištenju podataka.
Testiranje penetracije kontejnera
Kontejneri su poznati po svom profilisanju vizuelizacije operativnog sistema. Oni mogu pokretati mikroservise, softverske procese, pa čak i velike aplikacije. Osim posmatranja kontejnera iz perspektive hakera, testovi kontejnera vam omogućavaju primenu prilagođenih okruženja za testiranje.
Prilikom skeniranja ranjivosti, postoje dve opcije. Prvo, statička analiza skenira slike kontejnera u potrazi za ranjivostima. Drugo, dinamička analiza ispituje ponašanje kontejnera u toku rada. Za bolje rezultate, preporučljivo je izvršiti obe analize.
Ranjivosti kontejnera obuhvataju aplikacije, konfiguraciju, mrežu i operativni sistem slika. Ako se vaš DevOps vrti oko Docker-a za testiranje penetracije, možete prilagoditi svoje kontejnere, opremiti ih svim potrebnim alatima, smanjiti ranjivosti i pojednostaviti ukupnu funkcionalnost.
Testiranje penetracije baze podataka
Baze podataka su neprocenjive za preduzeća. Sadrže osetljive podatke, kao što su detalji o plaćanju, podaci o kupcima i podaci o proizvodima i cenama. Baze podataka dovode preduzeća u opasnost ukoliko budu ugrožene. Kako bi se potvrdila adekvatna sigurnost, testovi se sprovode pre objavljivanja nove baze podataka o proizvodima i redovno za postojeće.
Pokušavajući da pristupite bazi podataka, poput hakera, koristeći najbolje prakse u industriji, testovi baze podataka vam daju smernice kako da se nosite sa stvarnim napadima.
Uobičajene pretnje bazama podataka uključuju SQL injekcije, neograničene privilegije, loše revizijske tragove, izložene rezervne kopije, pogrešne konfiguracije, uskraćivanje usluge (DoS) i loše upravljanje podacima. Testovi otkrivaju ranjivosti u vašoj bazi podataka i osiguravaju da su sve osetljive informacije zaštićene od neovlašćenih lica. Zbog toga preduzeća treba da ulažu u bezbednost baze podataka.
Testiranje penetracije Interneta stvari
Internet stvari (IoT) se sastoji od međusobnog povezivanja veb uređaja koji komuniciraju i razmenjuju podatke putem interneta. Ovi uređaji uključuju fizičke objekte, vozila i zgrade, a ugrađeni su sa softverom, senzorima, elektronikom i mrežnim vezama.
Sa porastom popularnosti IoT-a, fokus je na ispitivanju mreže i IoT uređaja kako bi se otkrili nedostaci. Pored toga, sigurnosni testovi prevazilaze uređaje i uključuju njihovu komunikacionu mrežu, na primer, platforme za računarstvo u oblaku.
Dominantni sigurnosni nedostaci u IoT uređajima su nešifrovani podaci, nesiguran firmver, slabe lozinke i loša kontrola autentifikacije/pristupa. Kako organizacije prihvataju sve više IoT uređaja, IoT revizije jačaju upravljanje imovinom, performansama i rizikom, i ispunjavaju potrebe usklađenosti.
Testiranje penetracije „bele kutije“
U slučaju testova „bele kutije“, posedujete detaljno znanje o ciljnom sistemu, uključujući arhitekturu aplikacije, izvorni kod, akreditive, belu listu, različite uloge naloga i dokumentaciju.
Ovaj pristup smanjuje troškove angažmana. Testiranje „bele kutije“ je posebno korisno za složene sisteme koji zahtevaju visok nivo sigurnosti, kao što su finansijske institucije i vladine organizacije. Uvođenjem potpune pokrivenosti kodom, moći ćete da uočite interne greške.
U slučaju povrede sigurnosti, testovi „bele kutije“ bi bili najpogodniji za ispitivanje sigurnosti aplikacija, mrežnog stanja, fizičke i bežične sigurnosti. U drugim slučajevima, možete razmotriti testiranje „bele kutije“ u ranim fazama razvoja softvera i pre prelaska na proizvodnju.
Testiranje penetracije „crne kutije“
Kod testiranja „crne kutije“ nemate nikakvo predznanje o sistemu i koristite pristup hakera. S obzirom na to da nemate pristup izvornom kodu ili dijagramu arhitekture, koristite pristup spoljnog lica kako biste pokušali da iskoristite mrežu. To znači da se test oslanja na dinamičku analizu sistema i izvršavanja programa u ciljnoj mreži.
Za uspeh, morate biti dobro upućeni u automatizovane alate za skeniranje i metode ručnog testiranja penetracije. Takođe ćete morati da kreirate sopstvenu mapu cilja na osnovu svojih zapažanja. To je brz način pokretanja testova, a potrebno vreme zavisi od vaše sposobnosti da pronađete i iskoristite ranjivosti. Međutim, ako ne uspete da probijete sistem, ranjivosti će ostati neotkrivene.
Iako je jedan od najizazovnijih testova, on pruža najbolji način za procenu ukupne sigurnosti vašeg sistema. Ponekad se to naziva metodom „pokušaja i greške“. Ali, to zahteva visok nivo tehničke stručnosti.
Test „crvenog tima“
Testovi „crvenog tima“ su slični testovima penetracije. Međutim, oni idu korak dalje, oponašajući hakere iz stvarnog života, bez vremenskih ograničenja. U ovim testovima kombinuju se alati, taktike i tehnike kako bi se pristupilo ciljnom sistemu ili podacima.
Svi ostali testovi penetracije su usmereni ka otkrivanju ranjivosti. Testovi „crvenog tima“, međutim, procenjuju sposobnost branilaca da otkriju pretnje i reaguju na njih. Otkrivanje bi moglo biti zasnovano na pokazateljima ugroženih sistema za praćenje, testovima fizičke procene ili čak socijalnom inženjeringu. Testove „crvenog tima“ možete smatrati opsežnijim od testova penetracije.
S druge strane, testovi „crvenog tima“ ne nude širinu testova penetracije. Oni su usmereni na pristup sistemu ili podacima. Kada se njihov cilj postigne, oni ne traže druge slabosti. U testovima penetracije, vi identifikujete sve ranjivosti.
Odabir pravog testa penetracije
Najbolje bi bilo da budete dobro upoznati sa svim postojećim modelima kako biste odabrali pravi test penetracije za svoju organizaciju. Sa ovim znanjem, možete upariti svoju organizaciju sa preduzećem koje joj najbolje odgovara, na osnovu vašeg toka posla.
Ukoliko pokrećete veb aplikacije, veb testovi bi bili najbolji izbor. API testovi su adekvatna opcija ako nudite API-je i pozadinski razvoj. I tako dalje, testovima u oblaku za dobavljače usluga u oblaku.
Gornja lista bi trebalo da predstavlja dobru polaznu tačku. Trebalo bi da vam pomogne da razlikujete sve testove penetracije, da vas edukuje o njima i da steknete uvid u najbolji način upotrebe svakog od njih. Proširite svoje znanje ovim i drugim informacijama.
Nakon toga, pogledajte i vrhunski softver za testiranje penetracije za veb aplikacije.