Īslaicīgas IP atļauto saraksta saites: ko atļauja patiešām ielaiž
Saite, kas atver ugunsmūra portu, ielaiž adresi, nevis personu. Nosakiet apjomu, pieprasiet apzinātu apstiprinājumu un pārbaudiet atkārtošanu, derīguma beigas un IPv6.
Viena klikšķa pārvēršana īslaicīgā ugunsmūra noteikumā ir ērta, un tā vienlaikus veido autorizācijas sistēmu, kas izlemj, kurš drīkst sasniegt pakalpojumu. Tā izsniedz adresi, nevis personu, un šī atšķirība kļūst svarīga brīdī, kad divi cilvēki dala vienu NAT. Ierobežojiet atļaujas apjomu, apstipriniet to apzināti un piešķiriet derīguma beigām nozīmi pirms saites izveides. Lēmums jūsu priekšā ir kur novietot robežu, nevis vai tai vispār jābūt.
Izlemiet, uz kuru jautājumu atļauja atbild
Sāciet ar prasību. Ja nosauktai personai jāsasniedz pakalpojums un lietojumprogramma jau autentificē šo personu, autentificēti vārti saglabā identitāti izpildes punktā un vispār neprasa adreses ielaišanu. Ja mērķis ir būvēšanas aģents, administratīvais lēciena ports vai ierīce, kas nevar piedalīties lietotāja pieteikšanās procesā, ierobežota apjoma adreses atļauja var būt vienīgā praktiskā kontrole.
Izvēloties adreses ielaišanu lietotājiem vērstai lietojumprogrammai, īstā autorizācijas problēma pārvietojas citur, un tad portāls manto vainu par robu, ko tas nekad nav aizvēris.
Ierobežojiet pieprasījumu serverī
Pārlūkam nav jāizvēlas galamērķis, ports vai prefikss. Portāls nosaka pakalpojumu no saviem ierakstiem un pārbauda tiesības ar servera puses testu, kas ir tas pats princips, ko OWASP autorizācijas vadlīnijas piemēro katram pieprasījumam. Arī adreses atvasināšana pieder pie aizsargātās robežas: kad apgrieztais starpniekserveris ziņo klienta adresi, pieņemiet tikai konfigurēto starpniekserveru ķēdi un tās dokumentēto galveņu apstrādi. Apmeklētāja nodrošinātā pāradresācijas galvene ir apgalvojums par izcelsmi, nevis tās pierādījums.
Pēc tam pārbaudiet, vai portāls un pakalpojums redz vienu un to pašu avotu. Sadalīts tunelis, viens starpniekservera lēciens un IPv4 pret IPv6 var dot diviem galamērķiem divas dažādas adreses, tāpēc atļauja, kas aktivizēta pa vienu ceļu, var neaptvert nākamo pieprasījumu.
Parādiet atļauju pirms tās instalēšanas
Saites atvēršanai vajadzētu parādīt piedāvāto pakalpojumu, novēroto avotu un ilgumu, un pagaidām neko nemainīt. Šis vienīgais solis pārvērš e-pastā saņemto saiti no darbības par priekšlikumu, un tas neļauj priekšskatījuma botam vai pasta skenerim piešķirt piekļuvi, vienkārši to ielādējot.
Apstiprinājumam jābūt stāvokli mainošam pieprasījumam ar parastajām starp vietnēm un izcelsmes aizsardzībām. Žetonam jābūt vienreizlietojamam un atomiski jāiztērē tajā brīdī, kad noteikums tiek instalēts, un ierakstam jāfiksē īpašnieks, pakalpojums, adrese, atļaujas identifikators un derīguma beigas, nekad neierakstot žurnālā neapstrādāto žetonu.
Žetona piegāde pelna tādu pašu rūpību kā pats noteikums. Beigusies vai jau iztērēta saite, kas joprojām rada noteikumu, ir otrās durvis ar to pašu atslēgu.
Adrese tiek koplietota arī tad, kad atļauja ir spēkā
Biroja NAT, operatora NAT un koplietota VPN izeja katra novieto vairākus cilvēkus aiz vienas adreses. Šīs adreses ielaišana ielaiž visus aiz tās — ciktāl tas attiecas uz nākamo pakalpojuma robežu —, vienlaikus neko nepierādot par to, kam pieder konts, kuru pakalpojums gaida.
Noteikuma noņemšana arī nav universāla atvienošana. Izveidotie savienojumi, kešatmiņā saglabātie lietojumprogrammas žetoni un ilglaicīgas sesijas var pārdzīvot noteikumu par minūtēm vai daudz ilgāk, tāpēc izvēlētajam mūžam vajadzētu atspoguļot to, ko pakalpojums dara pēc ielaišanas, nevis tikai to, cik ilgi noteikums pastāv.
Pārbaudiet četrus gadījumus un abas adrešu saimes
Atļauja ir tik laba, cik četri gadījumi, ko tā pārdzīvo: jauns atļauts pieprasījums, neapstiprināts pieprasītājs, tās pašas saites atkārtošana un tas pats pieprasījums pēc derīguma beigām.
Pēc tam pārbaudiet katru saimi atsevišķi, jo avota adrese, ko pakalpojums novēro, var atšķirties starp tām.
dig +short A service.example.com
dig +short AAAA service.example.com
curl -4 -sS -o /dev/null -w "%{http_code}\n" https://service.example.com
curl -6 -sS -o /dev/null -w "%{http_code}\n" https://service.example.com
Noderīgais rezultāts ir īslaicīgs, auditējams ielaišanas lēmums parastas lietotāja autorizācijas ietvaros, nevis pastāvīga atvēršana, kas nes pirmā noklikšķinātāja vārdu.