Is-sottodominju tal-amministrazzjoni ma jwaqqafx is-CSRF: erba verifiki qabel it-tnedija
Isem ta host ġdid huwa oriġini ġdida, spiss l-istess sit, għalhekk il-cookies same-site u l-forom sempliċi jaqsmuha. Ivverifika t-tokens, il-bieb u l-awtorizzazzjoni.
It-tmexxija tal-interface tal-amministrazzjoni lejn admin.example.com hija titjib reali: iżżomm il-cookies tal-amministrazzjoni ’il bogħod mill-paġni pubbliċi, tagħti liż-żewġ applikazzjonijiet cache separat u tħallik tiddirieġi politika tan-netwerk aktar stretta lejn isem ta host wieħed. Iżda mhijiex kontroll tas-CSRF, u ma tagħmilx il-kodiċi tas-sit pubbliku sigur biex jibqa’ miftuħ quddiem amministratur illogjat. Is-separazzjoni tbiddel dak li l-browser iqis bħala fruntiera, mhux dak li jivverifika s-server, għalhekk agħmel dawn l-erba verifiki qabel ma tgħid li spiċċa.
Aqra oriġini u sit bħala żewġ kliem differenti
Oriġini hija skema, host u port, għalhekk https://www.example.com u https://admin.example.com huma oriġini differenti. Sit, fis-sens ta SameSite, hija skema flimkien ma dominju reġistrabbli, għalhekk dawk iż-żewġ ismijiet ta host huma normalment l-istess sit. Din id-differenza hija n-nassa kollha: l-attribut SameSite mhux se jgħinek bejn sottodominji aħwa, għax il-browser lanqas biss iqis it-talba bħala bejn is-siti. Idderieġi l-interface tal-amministrazzjoni lejn dominju reġistrabbli verament differenti, bħal admin-example.net, u t-talba tassew issir bejn is-siti, u hemmhekk SameSite=Lax jew Strict jibda jagħmel xogħol li tista’ tafdah.
Ippruvah fil-browser minflok ma tirraġuna dwaru.
Ħejja s-sit pubbliku, iftaħ l-għodod tal-iżviluppatur u ara liema cookies il-browser iqabbad mat-talba lejn il-host tal-amministrazzjoni. Jekk il-cookie m’għandhiex attribut Domain, hija biss għall-host u tibqa’ fuq isimha; jekk iġġorr Domain=example.com, tmur għand kull aħwa, u s-sottodominju l-ġdid ma tak xejn għal dik il-cookie.
Issepara l-qari tat-tweġiba mit-tbagħit tat-talba
Il-politika tal-istess oriġini tillimita l-qari ta’ tweġibiet bejn oriġini. Ma twaqqafx talba milli tintbagħat, u ma tipprevjenix form milli jġorr kredenzjali li l-browser diġà għandu. Talba sempliċi, b’tip ta’ kontenut ta’ form jew GET sempliċi, titwassal mingħajr verifika minn qabel; imbagħad CORS jiddeċiedi jekk l-iskript li jsejjaħ jistax jaqra t-tweġiba. CSRF jgħix kollu fuq in-naħa tat-tbagħit.
Għalhekk is-server jeħtieġ verifika espliċita għal operazzjonijiet li jbiddlu l-istat. Token ta’ sinkronizzazzjoni marbut mas-sessjoni, jew cookie ta’ sottomissjoni doppja mqabbla fis-server, ikopru l-każ; tqabbil ta’ Origin jew Referer jistħoqqlu jiġi miżjud bħala t-tieni bieb imma mhux bħala l-uniku, għax mhux kull talba ġġorr il-header u mhux kull proxy jħarsu. Il-gwida tal-OWASP għall-prevenzjoni tas-CSRF tqis SameSite bħala saff wieħed fost diversi proprju għal din ir-raġuni.
Iddeċiedi x’ tipprova verament il-bieb tan-netwerk
Lista ta’ permess tal-ħruġ VPN quddiem il-host tal-amministrazzjoni hija kontroll tajjeb u talba ta’ identità dgħajfa. Turi li t-talba ġiet minn indirizz li jagħti l-VPN, li jistgħu jaqsmu kulħadd fuq dak il-ħruġ, u ma tgħid xejn dwar liema persuna jew apparat hemm warajh. Ittrattaha bħala filtru tad-dħul, mhux bħala awtentikazzjoni.
Żommha indipendenti mill-verifiki fil-livell tat-talba. Jekk il-lista hija l-unika ħaġa bejn attakkant u punt tat-tmiem li jbiddel l-istat, rotta waħda konfigurata ħażin, klijent split-tunnel wieħed jew laptop misluf wieħed ineħħi l-kontroll kollu.
Irreġistra wkoll ir-rifjuti minn barra l-firxiet mistennija. Il-qtigħ il-qalb tagħhom huwa l-aktar sinjal utli li xi ħadd qed jiskopri l-fruntiera li għadek kif bnejt, u s-skiet huwa s-sinjal li l-filtru lanqas biss qed jiġi milħuq.
Żomm cookies, login u awtorizzazzjoni espliċiti
L-ambitu tal-cookie jiddeċiedi l-biċċa l-kbira tar-riżultat. Cookie tad-dominju ġenitur tinbagħat lill-host tal-amministrazzjoni, għalhekk injezzjoni ta’ skript fuq is-sit pubbliku tista’ taġixxi bis-sessjoni ta’ amministratur; cookie biss għall-host ma tistax. Ippreferi l-forma biss għall-host, żid l-attribut Secure u uża l-prefiss __Host- fejn il-pjattaforma tappoġġjah, għax dak il-prefiss jeħtieġ Secure, Path=/ u l-ebda attribut Domain. Aqra l-header tat-tweġiba u mhux il-ġarra tal-cookies: Set-Cookie: __Host-admin_session=...; Secure; Path=/; HttpOnly; SameSite=Lax, mingħajr attribut Domain. Il-browser jarmi cookie __Host- li ġġorr Domain, għalhekk cookie li għadha tidher fuq hosts aħwa hija prova li l-prefiss qatt ma ġie applikat.
Imbagħad żomm l-awtorizzazzjoni fis-server, għal kull talba, f’ kull punt tat-tmiem amministrattiv, mhux biss fil-login. Talba minn netwerk permess xorta trid tiġi awtentikata u awtorizzata għall-operazzjoni li titlob; l-isem tal-host mhuwiex attur. Jekk l-applikazzjoni pubblika u dik amministrattiva jaqsmu fluss ta’ login jew maħżen ta’ sessjonijiet, ikteb dik ir-relazzjoni, għax hija l-iqsar triq minn bug fis-sit pubbliku għal azzjoni amministrattiva.
Erġa’ vverifika l-fruntiera wara s-separazzjoni
Mexxi l-provi negattivi, mhux biss it-triq ferrieħa: form bejn is-siti mingħajr token trid tiġi miċħuda, token minn sessjoni oħra trid tiġi miċħuda, u l-ebda GET m’għandu jbiddel l-istat. Iċċekkja l-attributi tal-cookies fl-għodod tal-iżviluppatur, ikkonferma li l-verifika tal-Origin tinxtegħel fuq talba li ma taqbilx, u pprova l-host tal-amministrazzjoni minn barra l-firxa tal-VPN biex tara l-filtru jaħdem.
Xejn minn dan ma jneħħi difett XSS ġewwa l-applikazzjoni amministrattiva stess. Isem ta’ host separat huwa fruntiera ta’ iżolament fuq in-naħa tal-browser b’valur reali, u mhuwiex sostitut għall-prevenzjoni ta’ eżekuzzjoni ta’ kodiċi mhux sigur jew għall-protezzjoni tat-talbiet fuq in-naħa tas-server. Wara s-separazzjoni il-lista hija iqsar milli tidher: oriġini distinta, cookies biss għall-host, token fuq kull bidla, filtru tad-dħul li ma tafdax bħala identità, u awtorizzazzjoni deċiża għal kull talba.