FixVibe
Covered by FixVibehigh

CSRF സംരക്ഷണം: അനധികൃത സംസ്ഥാന മാറ്റങ്ങൾക്കെതിരെ പ്രതിരോധം

ക്രോസ്-സൈറ്റ് റിക്വസ്റ്റ് ഫോർജറി (CSRF) വെബ് ആപ്ലിക്കേഷനുകൾക്ക് ഒരു പ്രധാന ഭീഷണിയായി തുടരുന്നു. ജാംഗോ പോലുള്ള ആധുനിക ചട്ടക്കൂടുകൾ എങ്ങനെയാണ് പരിരക്ഷ നടപ്പിലാക്കുന്നത് എന്നും SameSite പോലുള്ള ബ്രൗസർ ലെവൽ ആട്രിബ്യൂട്ടുകൾ അനധികൃത അഭ്യർത്ഥനകൾക്കെതിരെ ആഴത്തിലുള്ള പ്രതിരോധം നൽകുന്നത് എങ്ങനെ എന്നും ഈ ഗവേഷണം പര്യവേക്ഷണം ചെയ്യുന്നു.

CWE-352

ആഘാതം

ക്രോസ്-സൈറ്റ് റിക്വസ്റ്റ് ഫോർജറി (CSRF) ഇരയുടെ ബ്രൗസറിനെ കബളിപ്പിച്ച് ഇരയെ നിലവിൽ ആധികാരികമാക്കിയ മറ്റൊരു വെബ്‌സൈറ്റിൽ അനാവശ്യ പ്രവർത്തനങ്ങൾ നടത്താൻ അനുവദിക്കുന്നു. അഭ്യർത്ഥനകളിൽ കുക്കികൾ പോലുള്ള ആംബിയൻ്റ് ക്രെഡൻഷ്യലുകൾ ബ്രൗസറുകൾ സ്വയമേവ ഉൾക്കൊള്ളുന്നതിനാൽ, ആക്രമണകാരിക്ക് ഉപയോക്താവിൻ്റെ അറിവില്ലാതെ പാസ്‌വേഡുകൾ മാറ്റുകയോ ഡാറ്റ ഇല്ലാതാക്കുകയോ ഇടപാടുകൾ ആരംഭിക്കുകയോ പോലുള്ള അവസ്ഥ മാറ്റുന്ന പ്രവർത്തനങ്ങൾ ഉണ്ടാക്കാൻ കഴിയും.

മൂലകാരണം

അഭ്യർത്ഥനയുടെ ഉത്ഭവം [S1] പരിഗണിക്കാതെ, ഒരു ഡൊമെയ്‌നിലേക്ക് ഒരു അഭ്യർത്ഥന നടത്തുമ്പോഴെല്ലാം ഒരു ഡൊമെയ്‌നുമായി ബന്ധപ്പെട്ട കുക്കികൾ അയയ്‌ക്കുന്ന വെബ് ബ്രൗസറിൻ്റെ ഡിഫോൾട്ട് സ്വഭാവമാണ് CSRF-ൻ്റെ അടിസ്ഥാന കാരണം. ആപ്ലിക്കേഷൻ്റെ സ്വന്തം ഉപയോക്തൃ ഇൻ്റർഫേസിൽ നിന്ന് ഒരു അഭ്യർത്ഥന മനഃപൂർവ്വം ട്രിഗർ ചെയ്‌തതാണെന്ന് പ്രത്യേക മൂല്യനിർണ്ണയം കൂടാതെ, സെർവറിന് നിയമാനുസൃതമായ ഉപയോക്തൃ പ്രവർത്തനവും വ്യാജവും തമ്മിൽ വേർതിരിച്ചറിയാൻ കഴിയില്ല.

ജാംഗോ CSRF സംരക്ഷണ സംവിധാനങ്ങൾ

മിഡിൽവെയർ, ടെംപ്ലേറ്റ് സംയോജനം [S2] എന്നിവയിലൂടെ ഈ അപകടസാധ്യതകൾ ലഘൂകരിക്കുന്നതിന് Django ഒരു ബിൽറ്റ്-ഇൻ പ്രതിരോധ സംവിധാനം നൽകുന്നു.

മിഡിൽവെയർ സജീവമാക്കൽ

django.middleware.csrf.CsrfViewMiddleware CSRF പരിരക്ഷയ്ക്ക് ഉത്തരവാദിയാണ്, സാധാരണ [S2]-ൽ ഇത് പ്രവർത്തനക്ഷമമാക്കുന്നു. CSRF ആക്രമണങ്ങൾ ഇതിനകം [S2] കൈകാര്യം ചെയ്തിട്ടുണ്ടെന്ന് അനുമാനിക്കുന്ന മിഡിൽവെയറിന് മുമ്പായി ഇത് സ്ഥാപിക്കണം.

ടെംപ്ലേറ്റ് നടപ്പിലാക്കൽ

ഏതെങ്കിലും ആന്തരിക POST ഫോമുകൾക്കായി, ഡവലപ്പർമാർ <form> ഘടകത്തിനകത്ത് {% csrf_token %} ടാഗ് ഉൾപ്പെടുത്തണം. അഭ്യർത്ഥനയിൽ ഒരു അദ്വിതീയവും രഹസ്യവുമായ ടോക്കൺ ഉൾപ്പെടുത്തിയിട്ടുണ്ടെന്ന് ഇത് ഉറപ്പാക്കുന്നു, അത് സെർവർ ഉപയോക്താവിൻ്റെ സെഷനുമായി സാധൂകരിക്കുന്നു.

ടോക്കൺ ചോർച്ച അപകടസാധ്യതകൾ

ബാഹ്യ URL-കൾ [S2] ലക്ഷ്യമിടുന്ന ഫോമുകളിൽ {% csrf_token %} ഒരിക്കലും ഉൾപ്പെടുത്തരുത് എന്നതാണ് നിർണായകമായ നടപ്പാക്കൽ വിശദാംശം. അങ്ങനെ ചെയ്യുന്നത് ഉപയോക്താവിൻ്റെ സെഷൻ സുരക്ഷ [S2]-യിൽ വിട്ടുവീഴ്ച ചെയ്യാൻ സാധ്യതയുള്ള ഒരു മൂന്നാം കക്ഷിക്ക് രഹസ്യ CSRF ടോക്കൺ ചോർത്തും.

ബ്രൗസർ-ലെവൽ ഡിഫൻസ്: SameSite കുക്കികൾ

ആധുനിക ബ്രൗസറുകൾ, Set-Cookie തലക്കെട്ടിനായി SameSite ആട്രിബ്യൂട്ട് അവതരിപ്പിച്ചു.

  • കണിശമായത്: കുക്കി ഒരു ഫസ്റ്റ്-പാർട്ടി സന്ദർഭത്തിൽ മാത്രമേ അയച്ചിട്ടുള്ളൂ, അതായത് URL ബാറിലെ സൈറ്റ് കുക്കിയുടെ ഡൊമെയ്‌നുമായി പൊരുത്തപ്പെടുന്നു [S1].
  • Lax: ക്രോസ്-സൈറ്റ് ഉപഅഭ്യർത്ഥനകളിൽ (ചിത്രങ്ങളോ ഫ്രെയിമുകളോ പോലുള്ളവ) കുക്കി അയയ്‌ക്കില്ല, എന്നാൽ ഒരു സാധാരണ ലിങ്ക് പിന്തുടരുന്നത് പോലെ ഒരു ഉപയോക്താവ് ഒറിജിനൽ സൈറ്റിലേക്ക് നാവിഗേറ്റ് ചെയ്യുമ്പോൾ അയയ്‌ക്കുന്നതാണ് [S1].

എങ്ങനെയാണ് FixVibe അതിനായി പരീക്ഷിക്കുന്നത്

FixVibe ഇപ്പോൾ ഒരു ഗേറ്റഡ് ആക്റ്റീവ് ചെക്ക് എന്ന നിലയിൽ CSRF പരിരക്ഷ ഉൾക്കൊള്ളുന്നു. ഡൊമെയ്ൻ പരിശോധിച്ചുറപ്പിച്ചതിന് ശേഷം, active.csrf-protection, കണ്ടെത്തിയ അവസ്ഥ മാറുന്ന ഫോമുകൾ പരിശോധിക്കുന്നു, CSRF-ടോക്കൺ ആകൃതിയിലുള്ള ഇൻപുട്ടുകളും SameSite കുക്കി സിഗ്നലുകളും പരിശോധിക്കുന്നു, തുടർന്ന് കുറഞ്ഞ സ്വാധീനമുള്ള വ്യാജ-ഒറിജിൻ സമർപ്പണത്തിന് ശ്രമിക്കുന്നു, സെർവർ അത് സ്വീകരിക്കുമ്പോൾ മാത്രം റിപ്പോർട്ട് ചെയ്യുന്നു. CSRF പ്രതിരോധത്തെ ആഴത്തിൽ കുറയ്ക്കുന്ന ദുർബലമായ SameSite ആട്രിബ്യൂട്ടുകളും കുക്കി പരിശോധനകൾ ഫ്ലാഗ് ചെയ്യുന്നു.