Administrazio azpidomeinuak ez du CSRF gelditzen: lau egiaztapen abiarazi aurretik
Ostalari-izen berria jatorri berria da, sarritan gune bera, beraz same-site cookieek eta formulario arruntek zeharkatzen dute. Egiaztatu tokenak, atea eta baimena.
Administrazio-interfazea admin.example.com-era eramatea hobekuntza erreala da: administrazio-cookieak orrialde publikoetatik urrun mantentzen ditu, bi aplikazioei cache bereiziak ematen dizkie eta sare-politika zorrotzagoa ostalari-izen bakarrera zuzentzeko aukera ematen du. Baina ez da CSRF kontrol bat, eta ez du webgune publikoaren kodea seguru bihurtzen saioa hasita duen administratzaile baten aurrean irekita edukitzeko. Bereizketak aldatzen du nabigatzaileak muga gisa zer jotzen duen, ez zer egiaztatzen duen zerbitzariak, beraz egin itzazu lau egiaztapen hauek amaitu dela esan aurretik.
Irakurri jatorria eta gunea bi hitz ezberdin gisa
Jatorria eskema, ostalaria eta ataka da, beraz https://www.example.com eta https://admin.example.com jatorri ezberdinak dira. Gunea, SameSite zentzuan, eskema gehi erregistra daitekeen domeinua da, beraz bi ostalari-izen horiek normalean gune bera dira. Aldea da tranpa osoa: SameSite atributuak ez dizu lagunduko ahizpa azpidomeinuen artean, nabigatzaileak ez baitu eskaera gunekako kontuan hartzen. Zuzendu administrazio-interfazea benetan bestelako erregistra daitekeen domeinu batera, adibidez admin-example.net, eta eskaera bai bilakatzen da gunekako, eta hor hasiko da SameSite=Lax edo Strict fidatu zaitezkeen lana egiten.
Probatu nabigatzailean, horren gainean arrazoitu beharrean.
Kargatu webgune publikoa, ireki garatzaile-tresnak eta ikusi zein cookie eransten dion nabigatzaileak administrazio-ostalarira joaten den eskaerari. Cookieak Domain atributurik ez badu, ostalariarena bakarrik da eta bere izenean geratzen da; Domain=example.com badarama, ahizpa bakoitzera joaten da, eta azpidomeinu berriak ez dizu ezer eman cookie horretarako.
Bereizi erantzuna irakurtzeko ahalmena eskaera bidaltzeko ahalmenetik
Jatorri beraren politikak jatorrien arteko erantzunak irakurtzea mugatzen du. Ez du eskaera bidaltzea eragozten, ez eta nabigatzaileak dagoeneko dituen kredentzialak formulario batek eramatea ere. Eskaera sinple bat, formulario-mota duen edukia edo GET arrunta duena, aurretiazko egiaztapenik gabe entregatzen da; CORSek erabakitzen du gero deitzen duen scriptak erantzuna irakur dezakeen. CSRF bidaltze-aldean bizi da erabat.
Horregatik behar du zerbitzariak berariazko egiaztapen bat egoera aldatzen duten eragiketetarako. Saisioari lotutako sinkronizazio-token batek, edo zerbitzarian alderatzen den bidalketa bikoitzeko cookie batek, kasua estaltzen du; Origin edo Referer alderatzea bigarren ate gisa gehitzea merezi du, baina ez bakarra, ez baita eskaera guztiek goiburua eramaten eta ez baita proxy guztiek gordetzen. OWASPren CSRF prebenitzeko gidak SameSite beste hainbat geruzen artean bat bezala hartzen du horregatik zehazki.
Erabaki sareko ateak benetan zer frogatzen duen
Administrazio-ostalariaren aurrean VPN irteeren baimen-zerrenda ondo kontrol bat eta identitate-adiarazpen ahula da. Eskaera VPNak ematen duen helbide batetik etorri zela frogatzen du, irteera horretan dauden guztiek parteka dezaketena, eta ez du ezer esaten atzean nor edo zein gailu dagoen. Ate-filtro gisa hartu, ez autentifikazio gisa.
Mantendu eskaera-mailako egiaztapenetatik independente. Zerrenda erasotzaile baten eta egoera aldatzen duen amaiera-puntu baten artean dagoen gauza bakarra bada, gaizki konfiguratutako bide batek, split-tunnel bezero batek edo mailegatutako ordenagailu batek kontrola erabat kentzen du.
Erregistratu espero diren tarteetatik kanpoko ukapenak ere. Haien uholde bat eraiki berri duzun muga norbait ari dela miatzen dioen seinale erabilgarriena da, eta isiltasuna filtroa inola ere iristen ez dela dioen seinalea da.
Mantendu cookieak, saioa hastea eta baimena esplizitu
Cookiearen hedadurak erabakitzen du emaitzaren zatirik handiena. Guraso-domeinuko cookie bat administrazio-ostalarira bidaltzen da, beraz webgune publikoan script-injekzio batek administratzaile baten saioarekin joka dezake; ostalari soilik den cookieak ezin du. Nahiago izan ostalari soilik forma, gehitu Secure atributua eta erabili __Host- aurrizkia plataformak onartzen duen tokian, aurrizki horrek Secure, Path=/ eta Domain atributurik eza eskatzen baitu. Irakurri erantzunaren goiburua, ez cookie-ontzia: Set-Cookie: __Host-admin_session=...; Secure; Path=/; HttpOnly; SameSite=Lax, Domain atributurik gabe. Nabigatzaileak Domain duen __Host- cookie bat baztertzen du, beraz ahizpa ostalarietan oraindik agertzen den cookie bat aurrizkia inoiz aplikatu ez zela frogatzen du.
Gero mantendu baimena zerbitzarian, eskaerako, administrazio-amaiera-puntu bakoitzean, ez soilik saioa hastean. Baimendutako sare batetik datorren eskaerak oraindik autentifikatu eta eskatzen duen eragiketarako baimendu behar du; ostalari-izena ez da aktore bat. Aplikazio publikoak eta administrazioak saioa hasteko fluxua edo saio-biltegi bat partekatzen badute, idatzi harreman hori, webgune publikoko akats batetik administrazio-ekintza batera doan bide laburrena delako.
Berrikusi muga bereizketaren ondoren
Exekutatu proba negatiboak, ez soilik bide zoriontsua: tokenik gabeko gunekako formulario bat baztertu behar da, beste saio bateko token bat baztertu behar da eta GET batek ere ez du egoera aldatu behar. Egiaztatu cookieen atributuak garatzaile-tresnetan, berretsi Origin egiaztapena bat ez datorren eskaera batean pizten dela, eta probatu administrazio-ostalaria VPN tartetik kanpo filtroa lanean ikusteko.
Horietako ezerk ez du ezabatzen administrazio-aplikazioaren barruko XSS akats bat. Ostalari-izen bereizi bat nabigatzaile-aldeko isolamendu-muga da, balio erreala duena, eta ez da kode ez-seguruaren exekuzioa saihesteko edo zerbitzari-aldeko eskaeren babeserako ordezko. Bereizketaren ondoren zerrenda dirudiena baino laburragoa da: jatorri ezberdina, ostalari soilik cookieak, token bat aldaketa bakoitzean, identitate gisa fidatzen ez zaren ate-filtroa eta eskaerako erabakitako baimena.