FixVibe
Covered by FixVibehigh

CSRF babesa: baimenik gabeko estatu aldaketen aurka defendatzea

Cross-Site Request Forgery (CSRF) mehatxu garrantzitsua izaten jarraitzen du web-aplikazioentzat. Ikerketa honek Django bezalako esparru modernoek babesa nola ezartzen duten aztertzen du eta SameSite bezalako arakatzaile-mailako atributuek baimenik gabeko eskaeren aurka nola babesten duten.

CWE-352

Eragina

Cross-Site Request Forgery (CSRF) erasotzaileak biktima baten arakatzailea engainatu dezake nahi ez diren ekintzak egiteko unean biktima autentifikatuta dagoen beste webgune batean. Arakatzaileek automatikoki barne hartzen dituzten inguruneko kredentzialak eskaeretan cookieak bezalakoak, erasotzaileak egoera aldatzeko eragiketak egin ditzake (adibidez, pasahitzak aldatzea, datuak ezabatzea edo transakzioak abiatzea, erabiltzaileak jakin gabe).

Arrazoia

CSRF-ren oinarrizko arrazoia web-arakatzailearen portaera lehenetsia domeinu bati lotutako cookieak bidaltzea da, domeinu horretara eskaera egiten zaion bakoitzean, eskaeraren jatorria edozein dela ere [S1]. Eskaera aplikazioaren erabiltzaile-interfazetik nahita abiarazi izanaren baliozkotze zehatzik gabe, zerbitzariak ezin du bereizi erabiltzailearen ekintza legitimoa eta faltsututako bat.

Django CSRF Babesteko Mekanismoak

Django-k defentsa-sistema integratua eskaintzen du arrisku horiek arintzeko middleware eta txantiloien integrazioaren bidez [S2].

Middlewarearen aktibazioa

django.middleware.csrf.CsrfViewMiddleware da CSRF babesaren arduraduna eta normalean [S2] gaituta dago. [S2] CSRF erasoak dagoeneko kudeatu direla suposatzen duen edozein ikuspegiren middleware aurretik kokatu behar da.

Txantiloiaren ezarpena

Barneko POST inprimakietarako, garatzaileek {% csrf_token %} etiketa sartu behar dute <form> [S2] elementuaren barruan. Horrek bermatzen du eskaeran token esklusibo esklusibo bat sartzen dela, eta zerbitzariak erabiltzailearen saioaren aurrean baliozkotzen du.

Token Leakage Arriskuak

Ezarpenaren xehetasun kritikoa da {% csrf_token %} ez dela inoiz sartu behar kanpoko URLetara zuzendutako inprimakietan [S2]. Hori eginez gero, CSRF token sekretua hirugarren bati isuriko litzateke, eta baliteke erabiltzailearen saio-segurtasuna arriskuan jarriz [S2].

Arakatzaile-mailako defentsa: gune bereko cookieak

Arakatzaile modernoek SameSite atributua sartu dute Set-Cookie goibururako defentsa-geruza sakona [S1] eskaintzeko.

  • Zorrotza: Cookiea lehenen testuinguruan soilik bidaltzen da, hau da, URL barrako gunea cookiearen [S1] domeinuarekin bat dator.
  • Lax: cookiea ez da bidaltzen guneen arteko azpieskaeretan (adibidez, irudiak edo markoak), baina erabiltzailea jatorriko gunera nabigatzen denean bidaltzen da, adibidez, [S1] esteka estandar bati jarraituz.

FixVibe probak nola egiten dituen

FixVibe-k CSRF babesa barne hartzen du kontrol aktibo itxi gisa. Domeinua egiaztatu ondoren, active.csrf-protection-k aurkitutako egoera aldatzen duten inprimakiak ikuskatzen ditu, CSRF-token formako sarrerak eta SameSite cookie-seinaleak egiaztatzen ditu, gero eragin txikiko faltsutze-jatorria bidaltzen saiatzen da eta zerbitzariak onartzen duenean soilik ematen du txostena. Cookie-egiaztapenek CSRF defentsa sakona murrizten duten SameSite-ren atributu ahulak ere adierazten dituzte.