Garantuojama, kad programinėje įrangoje bus klaidų. Programinėje įrangoje gali būti daug tūkstančių kodo eilučių, o žmogaus klaidingumas reiškia, kad bent kai kurios iš jų nebus visos, kaip numatyta. Programinės įrangos kūrimo gyvavimo ciklas yra procesas, skirtas bandyti sumažinti šias problemas reguliariai tikrinant.
Problema ta, kad testavimą dažnai atlieka kūrėjai, kurie galbūt išmoko ką nors koduoti, bet galbūt neišmoko saugaus kodavimo praktikos. Net ir kruopščiai patikrintose sistemose išorinis stebėtojas gali padėti nustatyti naujas problemas.
Įprastas būdas tai padaryti yra įsiskverbimo testas, kuris paprastai sutrumpinamas iki pentesto. Tai reiškia, kad profesionalus, etiškas įsilaužėlis, pentesteris, pažvelgtų į sistemą ir surastų visas saugumo problemas.
Patarimas: tai „pentest“ ir „pentester“, o ne „rašiklio testas“. Pentesteris netikrina rašiklių. „Rašiklio testas“ yra šiek tiek priimtinesnis nei „rašiklio testas“, tačiau paprastai jo taip pat reikėtų vengti.
Pentesto tikslas
Bet kurio pentesto tikslas yra nustatyti visas testuojamos sistemos saugumo spragas ir pranešti apie jas klientui. Tačiau paprastai įsipareigojimai yra šiek tiek riboti, atsižvelgiant į išlaidas. Jei įmonėje yra vidinė pentester arba pentest komanda, jie gali nuolat dirbti įmonėje. Vis dėlto daugelis įmonių, turinčių tam skirtą mastą, turi platų sistemų, kurias reikia išbandyti, portfelį. Tai apima ir parduodamus produktus, ir įmonės verslo sistemas.
Todėl jie negali skirti viso savo laiko vieno dalyko išbandymui. Daugelis kompanijų nori samdyti išorinę bandomąją bendrovę, kuri atliktų užduotis. Tai vis dar yra ribotas laikas, atsižvelgiant į išlaidas. Išlaidas lemia tai, kad pentestas yra labai rankinis procesas, o įgūdžių trūksta.
Paprastai pentestas bus taikomas tam tikram laikotarpiui. Tai daroma atsižvelgiant į atitinkamą tikslą ir tai, kiek laiko turėtų praeiti, kad būtų galima pagrįstai įsitikinti, kad viską radote. Pažeidžiamumų radimo laikas paprastai yra varpelio kreivė. Nedaug randama iš karto, kai pentesteris apžiūri programą. Tada didžioji dauguma išvadų gali būti pasiekta per tam tikrą laikotarpį, o po to mažėja. Tam tikru momentu išlaidos, praleistos daugiau laiko ieškodamos, nėra verta tikimybės, kad nėra ko daugiau rasti.
Kartais net nurodyta kaina už rekomenduojamą laiką yra per didelė. Tokiu atveju testas gali būti „laiko langelis“. Čia klientas sutinka, kad testuoja ne tiek daug, kiek rekomenduojama, bet nori, kad besimokantys asmenys padarytų viską, ką gali per trumpesnį laiką. Paprastai tai įtraukiama į ataskaitą kaip įspėjimas.
Rankinis procesas
Yra keletas įrankių, leidžiančių automatiškai atlikti saugos testus. Tai gali būti naudinga. Tačiau jie dažnai turi aukštus klaidingų teigiamų ir klaidingai neigiamų rodiklius. Tai reiškia, kad turite praleisti laiką tikrindami problemas, žinodami, kad tai gali būti ne visapusiška. Dauguma šių įrankių ieško konkrečių rodiklių, pvz., žinomų pažeidžiamų programinės įrangos versijų arba žinomų pažeidžiamų funkcijų. Tačiau yra daugybė būdų, kaip praktiškai tai nesukelti tikrosios problemos arba sušvelninti.
Saugumo spragos gali atsirasti iš daugybės iš pažiūros nekenksmingų dalių. Geriausias būdas tai pastebėti yra žmogaus rankų darbas. Pentesters naudoja įrankius, bet žino, kaip interpretuoti rezultatus, rankiniu būdu juos patikrinti ir atlikti nepriklausomus rankinius veiksmus. Šios rankinės pastangos atskiria pentestą nuo pažeidžiamumo nuskaitymo arba pažeidžiamumo įvertinimo.
Pentesto tipai
Paprastai pentestas apima viso produkto testavimą taip, kaip jis būtų įdiegtas. Idealiu atveju tai vyksta tikroje gamybos aplinkoje. Tačiau tai ne visada praktiška. Pirma, yra baimė, kad pentestas gali numušti taikinį neprisijungus. Apskritai ši baimė iš esmės yra nepagrįsta. Pentestai paprastai nesukuria per daug tinklo srauto, galbūt prilygsta keletui papildomų aktyvių vartotojų. Pentesters taip pat sąmoningai netikrins dėl atsisakymo teikti paslaugas tipo problemų, ypač gamybinėje aplinkoje. Vietoj to, paprastai jie praneš apie įtariamas atsisakymo teikti paslaugas problemas, kad klientas galėtų pats tai ištirti.
Be to, verta paminėti, kad jei sistema yra prijungta prie interneto, ji nuolat yra „nemokamų pentestų“ iš tikrų juodosios kepurės įsilaužėlių ir jų robotų. Kita priežastis vengti gamybos aplinkų yra privatumo problemos, susijusios su tiesioginiais vartotojo duomenimis. Pentestuotojai yra etiški įsilaužėliai pagal NDA ir sutartis, tačiau jei testavimo aplinka yra ir yra panaši, ją galima naudoti.
Patarimas: „nemokamas pentestas“ yra juokingas būdas nusakyti, kad internete esate užpultas juodųjų skrybėlių.
Pentestai gali būti atliekami prieš iš esmės bet kokią technologijų sistemą. Svetainės ir tinklo infrastruktūra yra labiausiai paplitę testų tipai. Taip pat gausite API testus, „storo kliento“ testus, mobiliuosius testus, aparatinės įrangos testus ir kt.
Variacijos tema
Tiesą sakant, sukčiavimo, OSINT ir raudonosios komandos pratimai yra susiję, bet šiek tiek skiriasi. Tikriausiai žinote apie sukčiavimo grėsmę. Kai kurie bandymai apima bandymus, siekiant išsiaiškinti, kaip darbuotojai reaguoja į sukčiavimo el. laiškus. Stebint, kaip vartotojai sąveikauja – ar ne – su sukčiavimu, galima sužinoti, kaip pritaikyti būsimus sukčiavimo mokymus.
OSINT reiškia atvirojo kodo intelektą. OSINT testas sukasi apie viešai prieinamos informacijos rinkimą, siekiant išsiaiškinti, kaip galima surinkti vertingų duomenų ir kaip juos panaudoti. Tai dažnai apima darbuotojų sąrašų generavimą iš tokių vietų kaip LinkedIn ir įmonės svetainė. Tai gali padėti užpuolikui atpažinti vyresnius asmenis, kurie gali būti tinkami taikiniai sukčiavimo išpuoliams, specialiai pritaikytiems konkrečiam gavėjui.
Raudonosios komandos dalyvavimas paprastai yra daug išsamesnis ir gali apimti kai kuriuos arba visus kitus komponentus. Tai taip pat gali apimti fizinio saugumo ir saugumo politikos laikymosi patikrinimą. Kalbant apie politiką, tai susiję su socialine inžinerija. Taip bandoma įtikinti jūsų kelią į pastatą. Tai gali būti taip paprasta, kaip pabūti rūkymo zonoje ir sugrįžti su rūkaliais po dūmų pertraukos.
Tai gali būti apsimetimas pareigūnu arba prašymas, kad kas nors atneštų jums duris, nešantis kavos puodelio padėklą. Kalbant apie fizinį saugumą, tai gali būti netgi bandymas fiziškai įsilaužti, kameros aprėpties, spynų kokybės ir panašiai testavimas. Raudonosios komandos įsipareigojimai paprastai apima žmonių komandą ir gali trukti daug ilgiau nei įprasti pentestai.
Raudonosios komandos
Raudonosios komandos pratimas gali atrodyti mažiau etiškas nei įprastas pentestas. Bandytojas aktyviai grobia nieko neįtariančius darbuotojus. Svarbiausia, kad jie turėtų įmonės vadovybės leidimą, paprastai valdybos lygmeniu. Tai yra vienintelė priežastis, kodėl raudonasis komandos narys gali iš tikrųjų bandyti įsilaužti. Tačiau niekas neleidžia jam smurtauti. Raudonosios komandos pratybose niekada nebus bandoma sužaloti ar pavergti apsaugos darbuotojo, jo apeiti ar apgauti.
Kad raudonasis komandos narys nebūtų suimtas, jie paprastai su savimi turės pasirašytą sutartį su patvirtinančių valdybos narių parašais. Jei sugauti, tai gali būti naudojama įrodyti, kad jie turėjo leidimą. Žinoma, kartais tai naudojamas kaip dvigubas blefas. Raudonasis komandos narys gali turėti du leidimo lapelius, vieną tikrą ir vieną padirbtą.
Sugauti jie iš pradžių įteikia suklastotą leidimo lapelį, kad pamatytų, ar gali įtikinti saugumą, kad tai teisėta, net jei taip nėra. Tuo tikslu joje dažnai bus naudojami tikrieji įmonės valdybos pavadinimai, tačiau pateikiamas patvirtinimo telefono numeris, kuris siunčiamas kitam raudonajam komandos nariui, informuotam patikrinti viršelio istoriją. Žinoma, jei saugumas tai mato, įteikiamas tikrasis leidimo lapelis. Tačiau tada tai gali būti vertinama labai įtariai.
Priklausomai nuo to, kaip raudonasis komandos narys buvo sugautas, gali būti įmanoma tęsti testą, darant prielaidą, kad jie aplenkė juos sugavusį apsaugos darbuotoją. Tačiau gali būti, kad bandytojo tapatybė gali būti „išpūsta“, iš esmės pašalinant juos nuo bet kokio tolesnio asmeninio testavimo. Šiuo metu kitas komandos narys gali apsikeisti, informuodamas apsaugą arba be jo.
Išvada
Pentestas – tai užsiėmimas, kurio metu kibernetinio saugumo specialisto prašoma patikrinti kompiuterinės sistemos saugumą. Bandymas apima rankinį pažeidžiamumų paiešką ir patikrinimą. Tam gali būti naudojami automatiniai įrankiai. Bandymo pabaigoje pateikiama ataskaita, kurioje išsamiai aprašomos rastos problemos ir pateikiami patarimai dėl ištaisymo.
Svarbu, kad ši ataskaita būtų ne tik automatizuota įrankio išvestis, bet ir būtų rankiniu būdu išbandyta ir patikrinta. Galima patikrinti bet kurią kompiuterio sistemą, aparatinę įrangą, tinklą, programą ar įrenginį. Kiekvienam reikalingi įgūdžiai skiriasi, tačiau dažnai papildo vienas kitą.