ielaušanāstests

Melnā, pelēkā un baltā kaste: testēšanas veidi

Atjaunināts 5 min lasīšanai

Testu var veikt ar dažādu informācijas apjomu. Izvēle nemaina to, ko meklē, bet gan to, cik daudz no tā paspēj atrast – un cik ļoti tests atgādina īstu uzbrukumu.

Ko īsti nosaka pieejas izvēle

Informācijas apjoms, ko testētājs saņem pirms darba, nosaka, cik liela laika daļa aiziet izpētei. Melnās kastes testā izpēte var aizņemt lielāko daļu no visa laika; baltās kastes testā tā ir minimāla, un praktiski viss laiks paliek pašai pārbaudei. Tāpēc pie vienāda budžeta dažādas pieejas dod atšķirīgu pārklājumu.

Otrs, retāk pieminēts efekts ir atkārtojamība. Ja testētājs nezina, kas atrodas aiz robežas, viņš arī nevar apliecināt, ka konkrētā sistēmas daļa ir pārbaudīta. Baltās kastes tests dod tieši šo – pārliecību par pārklājumu.

Trīs pieejas salīdzinājumā

Melnā, pelēkā un baltā kaste
KritērijsMelnā kastePelēkā kasteBaltā kaste
Sākotnējā informācijaNekāda vai tikai domēnsLietotāja konts un pamataprakstsPilna dokumentācija, bieži pirmkods
Laiks izpēteiLielsVidējsMazs
PārklājumsNevienmērīgsLabsVislielākais
Realitātes pakāpeVisaugstākāAugstaZemāka
Ko atrod vislabākĀrējo uzbrukuma virsmuTiesību un loģikas kļūdasKodā slēptas kļūdas, kriptogrāfiju
Ko visbiežāk nokavēIekšējo funkcionalitātiRetāk lietotus ceļusReālas pamanāmības pārbaudi
Tipisks lietojumsĀrējā tīkla testsWeb-lietotņu un API testsKritiska lietotne pirms izlaišanas
Pieejas nav savstarpēji izslēdzošas – tās bieži kombinē vienā projektā, sākot ar melno kasti un turpinot ar pelēko.

Melnā kaste

Testētājs sāk no tā, ko var atrast jebkurš cilvēks internetā: domēnu vārdiem, publiskiem reģistriem, sertifikātu žurnāliem, darbinieku profiliem un noplūdušām parolēm. Tas visprecīzāk atbild uz jautājumu “kas ir redzams no ārpuses”, un bieži tieši šeit atklājas aizmirstas testa vides vai apakšdomēni, par kuriem neviens vairs neatbild.

Trūkums ir laika sadalījums. Ja divas dienas aizņem uzbrukuma virsmas kartēšana, tās vairs nav pieejamas pašai pārbaudei. Tāpēc melnā kaste ir spēcīga ārējiem testiem, bet neefektīva sarežģītām iekšējām lietotnēm.

Pelēkā kaste

Testētājs saņem parasta lietotāja kontu un pamatinformāciju par sistēmu. Tas atbilst visbiežāk sastopamajam reālajam scenārijam: uzbrucējs jau ir ieguvis vienu paroli vai vienu darbinieka piekļuvi. No šejienes tiek pārbaudīts tas, kas praksē salūst visbiežāk – vai lietotājs var redzēt svešus datus, vai var izpildīt darbības, kurām nav tiesību, un vai var paaugstināt savas tiesības.

Baltā kaste

Testētājs saņem pilnu informāciju: arhitektūras aprakstu, tiesību modeli, konfigurāciju un bieži arī pirmkodu. Tā ir vienīgā pieeja, kas ļauj sistemātiski pārbaudīt visus ceļus, ieskaitot tos, kurus no ārpuses vienkārši nevar uzminēt – piemēram, administratora funkcijas, retās kļūdu apstrādes zarus vai kriptogrāfijas ieviešanu.

Pretī tiek zaudēta viena lieta: tests vairs neatgādina īstu uzbrukumu un neko nepasaka par to, vai uzbrucēju pamanītu. Ja svarīgs ir tieši pamanīšanas jautājums, tas jārisina atsevišķi.

Divi citi dalījumi, kurus bieži sajauc

Informācijas apjoms nav vienīgā ass. NIST SP 800-115 nošķir arī ārējo un iekšējo testēšanu: ārējā sākas no interneta, iekšējā – no vietas tīkla iekšienē, jau aiz perimetra aizsardzības. Ja tiek veikti abi, ārējais parasti notiek pirmais.

Otrs dalījums ir atklāts un slēpts tests. Atklātā (angļu val. overt) testā IT komanda zina, ka tests notiek, un sadarbojas; slēptā (covert) testā to zina tikai daži cilvēki, un mērķis ir pārbaudīt arī pamanīšanu un reaģēšanu. NIST norāda, ka atklāta testēšana ir lētāka, ar mazāku risku un tāpēc biežāk izmantota, savukārt slēptā ir laikietilpīga un dārgāka, bet parāda reālo uzbrukuma ietekmi.

Piemērs: viena lietotne, trīs pieejas

Iedomāsimies tipisku e-komercijas lietotni ar klientu kontiem, pasūtījumiem, atlaižu kodiem un administratora paneli. Vienāds piecu dienu budžets trijās pieejās dod trīs atšķirīgus rezultātus.

  • Melnā kaste. Divas dienas aiziet apakšdomēnu un pakalpojumu kartēšanai. Rezultātā atklājas aizmirsts testa serveris ar veco lietotnes versiju un publiski pieejams administratora paneļa pieteikšanās logs. Pašai lietotnei paliek trīs dienas, un pārbaudīta tiek galvenokārt neautentificētā daļa.
  • Pelēkā kaste. Testētājs sāk ar diviem klientu kontiem. Atklājas, ka viena klienta pasūtījumu var atvērt ar cita klienta sesiju, mainot identifikatoru, un ka atlaides kodu var izmantot atkārtoti, sūtot pieprasījumus paralēli. Abas ir loģikas kļūdas, ko skeneris neatrod.
  • Baltā kaste. Ar pirmkodu un tiesību modeli atklājas tas pats, kas pelēkajā kastē, un papildus – ka atlaižu kodus ģenerē paredzams algoritms un ka paroļu atjaunošanas žetons neizbeidzas. Toties nekas netiek pateikts par aizmirsto testa serveri, jo tas nebija apjomā.

Secinājums ir praktisks: melnā kaste atrada infrastruktūras problēmu, pelēkā – tiesību problēmu, baltā – ieviešanas problēmu. Neviena no tām nav “pareizākā”; katra atbild uz citu jautājumu, un tieši tāpēc lielākās vides testē vairākos ciklos ar dažādām pieejām.

Kā pieeja ietekmē ilgumu

Vienkāršs orientieris plānošanai: melnās kastes tests pie viena un tā paša apjoma parasti prasa vairāk dienu nekā pelēkās kastes tests, jo izpēte ir jāveic no nulles. Baltās kastes tests prasa mazāk testētāja laika, bet vairāk pasūtītāja laika – kāds no komandas sagatavo dokumentāciju, piekļuves un atbild uz jautājumiem.

Tāpēc pasūtītāja sagatavošanās izmaksas ir jāieskaita kopējā rēķinā. Ja neviens uzņēmuma pusē nespēj veltīt laiku dokumentācijai, kontiem un jautājumiem, formāli izvēlētā baltā kaste testa gaitā neizbēgami pārtaps pelēkajā – tikai par baltās kastes cenu un ar zaudētām pirmajām testa dienām.

Kā izvēlēties

  1. Sāc ar jautājumu, uz ko tests atbild: “kas redzams no ārpuses”, “ko paveiktu viens uzlauzts konts” vai “vai šī lietotne ir droša pirms izlaišanas”.
  2. Ja atbilde ir pirmā – melnā kaste; ja otrā – pelēkā; ja trešā – baltā.
  3. Salīdzini ar budžetu: jo mazāk informācijas, jo lielāka laika daļa aiziet izpētei, nevis pārbaudei.
  4. Izlem atsevišķi, vai aizsardzības komandai jāzina par testu – tas ir cits jautājums nekā informācijas apjoms.
  5. Fiksē izvēli rakstiski kopā ar apjomu un noteikumiem; kā to izdarīt, aprakstīts ceļvedī kā sagatavoties ielaušanās testam.

Vēl viens praktisks solis: vienojies jau iepriekš, ko darīt, ja testētājs pelēkās kastes testā iegūst administratora tiesības jau pirmajā dienā. Vai tests turpinās ar jauniem, ierobežotiem kontiem, vai pāriet uz dziļāku izpēti ar iegūtajām tiesībām? Bez šīs vienošanās vērtīgākā testa daļa var aiziet sarakstei.

Biežākās kļūdas

  • Melnā kaste izvēlēta “reālisma dēļ” ar mazu budžetu. Rezultāts – samaksāts par izpēti, nevis par atradumiem.
  • Testētājam nedod kontus pelēkās kastes testā. Kontu izveide testa vidū parasti aizņem dienas un samazina pārbaudes laiku.
  • Baltās kastes tests bez pirmkoda. Ja koda nav, tā praksē ir pelēkā kaste ar labāku dokumentāciju.
  • Pieejas maiņa testa vidū. Tas parasti nozīmē, ka mērķis nebija skaidrs jau sākumā.

Avoti

  1. SP 800-115: Technical Guide to Information Security Testing and AssessmentNIST · 20082.4. nodaļa – ārējā un iekšējā, kā arī atklātā (overt) un slēptā (covert) testēšana un to izmaksu salīdzinājums.
  2. Web Security Testing Guide (stable)OWASPMetodika, kas nosaka konkrētas pārbaudes neatkarīgi no izvēlētās informācijas pieejas.

Biežāk uzdotie jautājumi

Saistītie jautājumi

Kura pieeja ir labākā?

Nav vienas labākās – tas atkarīgs no mērķa. Pelēkā kaste ir biežākā lietotņu testos, jo līdzsvaro realitāti un pārklājumu; ārējiem testiem biežāk der melnā kaste.

Vai melnā kaste ir drošāka?

Tā ir realistiskāka, bet ne visaptverošāka. Ierobežotā laikā liela daļa jaudas aiziet izpētei, tāpēc daļa vājo vietu var palikt neatklāta.

Ar ko baltā kaste atšķiras no koda audita?

Koda audits pārbauda kodu kā tekstu. Baltās kastes ielaušanās tests kodu izmanto kā palīglīdzekli, bet atradumus pārbauda darbojošos sistēmā, tāpēc apstiprina reālu izmantojamību.

Vai vienā projektā var apvienot vairākas pieejas?

Jā, un bieži tā ir efektīvākā izvēle: sākt ar melno kasti, lai redzētu ārējo ainu, pēc noteikta laika saņemt kontus un turpināt kā pelēkās kastes testu.