Lietuvių

Įsiskverbimo testavimo vadovas pradedantiesiems, apimantis esmines koncepcijas, metodikas, įrankius ir gerąsias praktikas kibernetinio saugumo profesionalams visame pasaulyje.

Saugumo testavimas: įsiskverbimo testavimo pagrindai

Šiandieniniame tarpusavyje susijusiame pasaulyje kibernetinis saugumas yra svarbiausias dalykas įvairaus dydžio organizacijoms, nepriklausomai nuo jų geografinės padėties. Duomenų pažeidimai gali sukelti didelių finansinių nuostolių, pakenkti reputacijai ir sukelti teisinę atsakomybę. Įsiskverbimo testavimas (dažnai vadinamas „pentestingu“ arba etiniu programavimu) yra kritiškai svarbi saugumo praktika, padedanti organizacijoms aktyviai nustatyti ir šalinti pažeidžiamumus, kol piktavaliai dar negali jais pasinaudoti. Šiame vadove pateikiamas pagrindinis supratimas apie įsiskverbimo testavimą, apimantis jo pagrindines sąvokas, metodikas, įrankius ir geriausias praktikas, skirtas pasaulinei auditorijai.

Kas yra įsiskverbimo testavimas?

Įsiskverbimo testavimas – tai imituota kibernetinė ataka prieš kompiuterinę sistemą, tinklą ar žiniatinklio programą, atliekama siekiant nustatyti saugumo trūkumus, kuriais galėtų pasinaudoti užpuolikai. Skirtingai nuo pažeidžiamumo vertinimo, kuris pirmiausia orientuotas į galimų pažeidžiamumų nustatymą, įsiskverbimo testavimas žengia žingsnį toliau, aktyviai bandydamas išnaudoti tuos pažeidžiamumus, kad įvertintų realų poveikį. Tai praktinis, tiesioginis požiūris į saugumo vertinimą.

Įsivaizduokite, kad pasamdote etinių programišių komandą, kuri bandytų įsilaužti į jūsų sistemas, bet su jūsų leidimu ir kontroliuojamomis sąlygomis. Tikslas – atskleisti saugumo trūkumus ir pateikti praktiškas rekomendacijas dėl jų pašalinimo.

Kodėl įsiskverbimo testavimas yra svarbus?

Įsiskverbimo testavimo tipai

Įsiskverbimo testavimą galima skirstyti į kategorijas pagal apimtį, tikslą ir testuotojams suteiktos informacijos lygį.

1. „Juodosios dėžės“ (Black Box) testavimas

Atliekant „juodosios dėžės“ testavimą, testuotojai neturi jokių išankstinių žinių apie tikslinę sistemą ar tinklą. Jie turi pasikliauti viešai prieinama informacija ir žvalgybos metodais, kad surinktų informaciją apie tikslą ir nustatytų galimus pažeidžiamumus. Šis metodas imituoja realaus pasaulio atakos scenarijų, kai užpuolikas neturi vidinės informacijos.

Pavyzdys: Įsiskverbimo testuotojas yra pasamdytas įvertinti žiniatinklio programos saugumą, jam nepateikiant jokio išeities kodo, prisijungimo duomenų ar tinklo schemų. Testuotojas turi pradėti nuo nulio ir naudoti įvairius metodus pažeidžiamumams nustatyti.

2. „Baltosios dėžės“ (White Box) testavimas

Atliekant „baltosios dėžės“ testavimą, testuotojai turi visas žinias apie tikslinę sistemą, įskaitant išeities kodą, tinklo schemas ir prisijungimo duomenis. Šis metodas leidžia atlikti išsamesnį ir gilesnį sistemos saugumo vertinimą. „Baltosios dėžės“ testavimas dažnai naudojamas nustatyti pažeidžiamumus, kuriuos būtų sunku aptikti naudojant „juodosios dėžės“ metodus.

Pavyzdys: Įsiskverbimo testuotojui pateikiamas žiniatinklio programos išeities kodas ir prašoma nustatyti galimus pažeidžiamumus, tokius kaip SQL injekcijos trūkumai ar tarpvietinio scenarijaus (XSS) pažeidžiamumai.

3. „Pilkosios dėžės“ (Gray Box) testavimas

„Pilkosios dėžės“ testavimas yra hibridinis metodas, jungiantis tiek „juodosios dėžės“, tiek „baltosios dėžės“ testavimo elementus. Testuotojai turi tam tikrų žinių apie tikslinę sistemą, pavyzdžiui, tinklo schemas ar vartotojo prisijungimo duomenis, bet neturi visiškos prieigos prie išeities kodo. Šis metodas leidžia atlikti labiau sufokusuotą ir efektyvesnį sistemos saugumo vertinimą.

Pavyzdys: Įsiskverbimo testuotojui pateikiami žiniatinklio programos vartotojo prisijungimo duomenys ir prašoma nustatyti pažeidžiamumus, kuriais galėtų pasinaudoti autentifikuotas vartotojas.

4. Kiti įsiskverbimo testavimo tipai

Be anksčiau minėtų kategorijų, įsiskverbimo testavimą taip pat galima klasifikuoti pagal tikslinę sistemą:

Įsiskverbimo testavimo metodikos

Keletas nusistovėjusių metodikų suteikia struktūrizuotą požiūrį į įsiskverbimo testavimą. Štai keletas dažniausiai naudojamų:

1. Įsiskverbimo testavimo vykdymo standartas (PTES)

PTES yra išsami sistema, teikianti detalų vadovą, kaip atlikti įsiskverbimo testavimo užduotis. Ji apima visus įsiskverbimo testavimo proceso etapus, nuo sąveikos prieš pradedant darbus iki ataskaitų teikimo ir veiksmų po testavimo. PTES metodiką sudaro septyni pagrindiniai etapai:

  1. Sąveika prieš pradedant darbus: Įsiskverbimo testo apimties, tikslų ir taisyklių apibrėžimas.
  2. Informacijos rinkimas: Informacijos apie tikslinę sistemą, įskaitant tinklo infrastruktūrą, žiniatinklio programas ir darbuotojus, rinkimas.
  3. Grėsmių modeliavimas: Galimų grėsmių ir pažeidžiamumų nustatymas remiantis surinkta informacija.
  4. Pažeidžiamumo analizė: Pažeidžiamumų nustatymas ir patikrinimas naudojant automatinius skenavimo įrankius ir rankinius metodus.
  5. Išnaudojimas: Bandymas išnaudoti nustatytus pažeidžiamumus siekiant gauti prieigą prie tikslinės sistemos.
  6. Veiksmai po išnaudojimo: Prieigos prie tikslinės sistemos palaikymas ir tolesnės informacijos rinkimas.
  7. Ataskaitų teikimas: Įsiskverbimo testo išvadų dokumentavimas ir rekomendacijų dėl taisymo teikimas.

2. Atvirojo kodo saugumo testavimo metodikos vadovas (OSSTMM)

OSSTMM yra kita plačiai naudojama metodika, teikianti išsamią saugumo testavimo sistemą. Ji orientuota į įvairius saugumo aspektus, įskaitant informacijos saugumą, procesų saugumą, interneto saugumą, ryšių saugumą, belaidžio tinklo saugumą ir fizinį saugumą. OSSTMM yra žinoma dėl savo griežto ir detalaus požiūrio į saugumo testavimą.

3. NIST kibernetinio saugumo sistema

NIST kibernetinio saugumo sistema yra plačiai pripažinta sistema, sukurta Nacionalinio standartų ir technologijų instituto (NIST) Jungtinėse Amerikos Valstijose. Nors tai nėra griežtai įsiskverbimo testavimo metodika, ji suteikia vertingą sistemą kibernetinio saugumo rizikoms valdyti ir gali būti naudojama kaip gairės įsiskverbimo testavimo pastangoms. NIST kibernetinio saugumo sistemą sudaro penkios pagrindinės funkcijos:

  1. Nustatyti: Supratimo apie organizacijos kibernetinio saugumo rizikas ugdymas.
  2. Apsaugoti: Apsaugos priemonių, skirtų apsaugoti kritiškai svarbius turtus ir duomenis, įgyvendinimas.
  3. Aptikti: Mechanizmų, skirtų aptikti kibernetinio saugumo incidentus, įgyvendinimas.
  4. Reaguoti: Plano, skirto reaguoti į kibernetinio saugumo incidentus, kūrimas ir įgyvendinimas.
  5. Atkurti: Plano, skirto atsigauti po kibernetinio saugumo incidentų, kūrimas ir įgyvendinimas.

4. OWASP (Atvirojo žiniatinklio programų saugumo projektas) testavimo vadovas

OWASP testavimo vadovas yra išsamus šaltinis žiniatinklio programų saugumui testuoti. Jame pateikiamos išsamios gairės apie įvairius testavimo metodus ir įrankius, apimančios tokias temas kaip autentifikavimas, autorizavimas, sesijų valdymas, įvesties patvirtinimas ir klaidų tvarkymas. OWASP testavimo vadovas yra ypač naudingas žiniatinklio programų įsiskverbimo testavimui.

5. CREST (Registruotų etinių saugumo testuotojų taryba)

CREST yra tarptautinė akreditavimo įstaiga organizacijoms, teikiančioms įsiskverbimo testavimo paslaugas. CREST suteikia etiško ir profesionalaus elgesio sistemą įsiskverbimo testuotojams ir užtikrina, kad jos nariai atitiktų griežtus kompetencijos ir kokybės standartus. Naudojimasis CREST akredituoto teikėjo paslaugomis gali suteikti garantiją, kad įsiskverbimo testas bus atliktas pagal aukštus standartus.

Įsiskverbimo testavimo įrankiai

Yra daugybė įrankių, padedančių įsiskverbimo testuotojams nustatyti ir išnaudoti pažeidžiamumus. Šiuos įrankius galima plačiai suskirstyti į:

Svarbu pažymėti, kad naudojant šiuos įrankius reikalinga patirtis ir etiniai svarstymai. Netinkamas naudojimas gali sukelti nenumatytų pasekmių ar teisinę atsakomybę.

Įsiskverbimo testavimo procesas: žingsnis po žingsnio vadovas

Nors konkretūs žingsniai gali skirtis priklausomai nuo pasirinktos metodikos ir užduoties apimties, tipiškas įsiskverbimo testavimo procesas paprastai apima šiuos etapus:

1. Planavimas ir apimties nustatymas

Pradinis etapas apima įsiskverbimo testo apimties, tikslų ir taisyklių apibrėžimą. Tai apima tikslinių sistemų nustatymą, atliekamų testų tipus ir apribojimus ar suvaržymus, į kuriuos reikia atsižvelgti. Svarbiausia, kad prieš pradedant bet kokį testavimą būtinas *raštiškas* kliento leidimas. Tai teisiškai apsaugo testuotojus ir užtikrina, kad klientas supranta ir pritaria atliekamai veiklai.

Pavyzdys: Įmonė nori įvertinti savo elektroninės prekybos svetainės saugumą. Įsiskverbimo testo apimtis apsiriboja svetaine ir su ja susijusiais duomenų bazių serveriais. Taisyklėse nurodoma, kad testuotojams neleidžiama vykdyti paslaugos trikdymo (denial-of-service) atakų ar bandyti pasiekti jautrių klientų duomenų.

2. Informacijos rinkimas (žvalgyba)

Šiame etape renkama kuo daugiau informacijos apie tikslinę sistemą. Tai gali apimti tinklo infrastruktūros, žiniatinklio programų, operacinių sistemų, programinės įrangos versijų ir vartotojų paskyrų nustatymą. Informacijos rinkimas gali būti atliekamas naudojant įvairius metodus, tokius kaip:

Pavyzdys: Naudojant „Shodan“ nustatyti viešai prieinamas interneto kameras, susijusias su tiksline įmone, arba naudojant „LinkedIn“ nustatyti darbuotojus ir jų pareigas.

3. Pažeidžiamumo skenavimas ir analizė

Šiame etape naudojami automatiniai skenavimo įrankiai ir rankiniai metodai, siekiant nustatyti galimus pažeidžiamumus tikslinėje sistemoje. Pažeidžiamumo skeneriai gali nustatyti žinomus pažeidžiamumus remdamiesi parašų duomenų baze. Rankiniai metodai apima sistemos konfigūracijos, kodo ir elgsenos analizę siekiant nustatyti galimus trūkumus.

Pavyzdys: „Nessus“ paleidimas prieš tinklo segmentą, siekiant nustatyti serverius su pasenusia programine įranga ar netinkamai sukonfigūruotomis ugniasienėmis. Rankinis žiniatinklio programos išeities kodo peržiūrėjimas, siekiant nustatyti galimus SQL injekcijos pažeidžiamumus.

4. Išnaudojimas

Šiame etape bandoma išnaudoti nustatytus pažeidžiamumus, siekiant gauti prieigą prie tikslinės sistemos. Išnaudojimas gali būti atliekamas naudojant įvairius metodus, tokius kaip:

Pavyzdys: Naudojant „Metasploit“ išnaudoti žinomą pažeidžiamumą žiniatinklio serverio programinėje įrangoje, siekiant gauti nuotolinį kodo vykdymą. Siunčiant sukčiavimo el. laišką (phishing) darbuotojui, siekiant apgauti jį ir priversti atskleisti savo slaptažodį.

5. Veiksmai po išnaudojimo

Gavus prieigą prie tikslinės sistemos, šiame etape renkama tolesnė informacija, palaikoma prieiga ir galbūt keliamos privilegijos. Tai gali apimti:

Pavyzdys: Naudojant privilegijų eskalavimo išnaudojimo kodą gauti root prieigą pažeistame serveryje. Klientų duomenų kopijavimas iš duomenų bazės serverio. Užpakalinių durų diegimas žiniatinklio serveryje, siekiant išlaikyti prieigą net ir pataisius pažeidžiamumą.

6. Ataskaitų teikimas

Paskutinis etapas apima įsiskverbimo testo išvadų dokumentavimą ir rekomendacijų dėl taisymo teikimą. Ataskaitoje turėtų būti pateiktas išsamus nustatytų pažeidžiamumų aprašymas, veiksmai, kurių buvo imtasi jiems išnaudoti, ir pažeidžiamumų poveikis. Ataskaitoje taip pat turėtų būti pateiktos praktiškos rekomendacijos, kaip pataisyti pažeidžiamumus ir pagerinti bendrą organizacijos saugumo būklę. Ataskaita turėtų būti pritaikyta auditorijai, su techninėmis detalėmis programuotojams ir valdymo santraukomis vadovams. Apsvarstykite galimybę įtraukti rizikos balą (pvz., naudojant CVSS), kad būtų galima nustatyti taisymo darbų prioritetus.

Pavyzdys: Įsiskverbimo testo ataskaitoje nustatomas SQL injekcijos pažeidžiamumas žiniatinklio programoje, leidžiantis užpuolikui pasiekti jautrius klientų duomenis. Ataskaitoje rekomenduojama pataisyti žiniatinklio programą, kad būtų išvengta SQL injekcijos atakų, ir įdiegti įvesties patvirtinimą, kad būtų išvengta kenksmingų duomenų įterpimo į duomenų bazę.

7. Taisymas ir pakartotinis testavimas

Šis (dažnai pamirštamas) kritinis paskutinis žingsnis apima nustatytų pažeidžiamumų šalinimą organizacijoje. Pataisius ar sušvelninus pažeidžiamumus, įsiskverbimo testavimo komanda turėtų atlikti pakartotinį testą, kad patikrintų taisymo pastangų veiksmingumą. Tai užtikrina, kad pažeidžiamumai buvo tinkamai pašalinti ir kad sistema nebėra pažeidžiama atakai.

Etiniai aspektai ir teisinės problemos

Įsiskverbimo testavimas apima prieigą prie kompiuterinių sistemų ir galimą jų pažeidimą. Todėl labai svarbu laikytis etikos gairių ir teisinių reikalavimų. Pagrindiniai aspektai apima:

Įgūdžiai ir sertifikatai įsiskverbimo testuotojams

Norint tapti sėkmingu įsiskverbimo testuotoju, reikia techninių įgūdžių, analitinių gebėjimų ir etinio sąmoningumo derinio. Esminiai įgūdžiai apima:

Atitinkami sertifikatai gali parodyti jūsų įgūdžius ir žinias potencialiems darbdaviams ar klientams. Kai kurie populiarūs sertifikatai įsiskverbimo testuotojams apima:

Įsiskverbimo testavimo ateitis

Įsiskverbimo testavimo sritis nuolat vystosi, kad neatsiliktų nuo naujų technologijų ir besikeičiančių grėsmių. Kai kurios pagrindinės tendencijos, formuojančios įsiskverbimo testavimo ateitį, apima:

Išvada

Įsiskverbimo testavimas yra esminė saugumo praktika organizacijoms visame pasaulyje. Aktyviai nustatydamos ir šalindamos pažeidžiamumus, organizacijos gali apsaugoti savo duomenis, reputaciją ir finansinius rezultatus. Šiame vadove buvo pateiktas pagrindinis supratimas apie įsiskverbimo testavimą, apimantis jo pagrindines sąvokas, metodikas, įrankius ir geriausias praktikas. Kadangi grėsmių aplinka ir toliau vystosi, organizacijoms labai svarbu investuoti į įsiskverbimo testavimą ir neatsilikti nuo naujovių. Atliekant įsiskverbimo testavimo veiklą, visada prisiminkite, kad etiniai aspektai ir teisiniai reikalavimai yra prioritetas.