FixVibe
Covered by FixVibehigh

CSRF vernd: verjast óviðkomandi ástandsbreytingum

Cross-Site Request Forgery (CSRF) er enn veruleg ógn við vefforrit. Þessi rannsókn kannar hvernig nútíma ramma eins og Django innleiðir vernd og hvernig eiginleikar á vafrastigi eins og SameSite veita ítarlegar varnir gegn óheimilum beiðnum.

CWE-352

Áhrif

Cross-Site Request Forgery (CSRF) gerir árásarmanni kleift að blekkja vafra fórnarlambs til að framkvæma óæskilegar aðgerðir á annarri vefsíðu þar sem fórnarlambið er auðkennt. Vegna þess að vafrar innihalda sjálfkrafa umhverfisskilríki eins og vafrakökur í beiðnum, getur árásarmaður falsað aðgerðir sem breyta ástandi - eins og að breyta lykilorðum, eyða gögnum eða hefja viðskipti - án vitundar notandans.

Orsök

Grundvallarorsök CSRF er sjálfgefin hegðun vafrans að senda vafrakökur tengdar léni í hvert sinn sem beiðni er gerð til þess léns, óháð uppruna beiðninnar [S1]. Án sérstakrar staðfestingar á því að beiðni hafi verið kveikt viljandi frá eigin notendaviðmóti forritsins getur þjónninn ekki greint á milli lögmætrar notendaaðgerðar og fölsunar.

Django CSRF verndarkerfi

Django býður upp á innbyggt varnarkerfi til að draga úr þessari áhættu með millihugbúnaði og samþættingu sniðmáta [S2].

Miðlabúnaðarvirkjun

django.middleware.csrf.CsrfViewMiddleware er ábyrgur fyrir CSRF vernd og er venjulega virkt sjálfgefið [S2]. Það verður að vera staðsett áður en hvaða miðlunarhugbúnaður sem gerir ráð fyrir að CSRF árásir hafi þegar verið meðhöndlaðar [S2].

Sniðmátsútfærsla

Fyrir öll innri POST eyðublöð verða þróunaraðilar að hafa {% csrf_token %} merkið inni í <form> frumefninu [S2]. Þetta tryggir að einstakt, leynilegt tákn sé innifalið í beiðninni, sem þjónninn staðfestir síðan gegn lotu notandans.

Táknlekahætta

Mikilvæg útfærsluatriði er að {% csrf_token %} ætti aldrei að vera með í eyðublöðum sem miða á ytri vefslóðir [S2]. Að gera það myndi leka leynilegum CSRF-táknum til þriðja aðila, sem gæti haft áhrif á setuöryggi notandans [S2].

Vörn á vafrastigi: SameSite vafrakökur

Nútíma vafrar hafa kynnt SameSite eigindina fyrir Set-Cookie hausinn til að bjóða upp á lag af varnar-í-dýpt [S1].

  • Strangt: Fótsporið er aðeins sent í samhengi frá fyrsta aðila, sem þýðir að vefsíðan á vefslóðastikunni passar við lén kökunnar [S1].
  • Lax: Kexið er ekki sent á undirbeiðnum þvert á vefsvæði (svo sem myndir eða ramma) heldur er það sent þegar notandi fer á upprunasíðuna, svo sem með því að fylgja stöðluðum hlekk [S1].

Hvernig FixVibe prófar það

FixVibe felur nú í sér CSRF vernd sem virk eftirlit með hliði. Eftir staðfestingu á léni skoðar active.csrf-protection uppgötvuð eyðublöð sem breytast í ástandi, athugar hvort CSRF-táknlaga inntak og SameSite vafrakökumerki séu uppgötvuð, reynir síðan að senda inn fölsuð uppruna með litlum áhrifum og tilkynnir aðeins þegar þjónninn samþykkir það. Vafrakökur merkja einnig veika SameSite eiginleika sem draga úr CSRF vörn í dýpt.