FixVibe
Covered by FixVibehigh

ക്രോസ്-സൈറ്റ് സ്ക്രിപ്റ്റിംഗ് (XSS) കേടുപാടുകൾ കണ്ടെത്തുകയും തടയുകയും ചെയ്യുക

Cross-Site Scripting (XSS) occurs when an application includes untrusted data in a web page without proper validation or encoding. ഇരയുടെ ബ്രൗസറിൽ ക്ഷുദ്രകരമായ സ്ക്രിപ്റ്റുകൾ എക്സിക്യൂട്ട് ചെയ്യാൻ ഇത് ആക്രമണകാരികളെ അനുവദിക്കുന്നു, ഇത് സെഷൻ ഹൈജാക്കിംഗ്, അനധികൃത പ്രവർത്തനങ്ങൾ, സെൻസിറ്റീവ് ഡാറ്റ എക്സ്പോഷർ എന്നിവയിലേക്ക് നയിക്കുന്നു.

CWE-79

ആഘാതം

ക്രോസ്-സൈറ്റ് സ്‌ക്രിപ്റ്റിംഗ് (XSS) അപകടസാധ്യത വിജയകരമായി ചൂഷണം ചെയ്യുന്ന ഒരു ആക്രമണകാരിക്ക് ഇരയായ ഉപയോക്താവായി വേഷമിടാനും ഉപയോക്താവിന് ചെയ്യാൻ അധികാരമുള്ള ഏത് പ്രവർത്തനവും നടത്താനും ഉപയോക്താവിൻ്റെ ഏതെങ്കിലും ഡാറ്റ [S1] ആക്‌സസ് ചെയ്യാനും കഴിയും. അക്കൗണ്ടുകൾ ഹൈജാക്ക് ചെയ്യുന്നതിനായി സെഷൻ കുക്കികൾ മോഷ്ടിക്കുന്നത്, വ്യാജ ഫോമുകൾ വഴി ലോഗിൻ ക്രെഡൻഷ്യലുകൾ പിടിച്ചെടുക്കൽ, അല്ലെങ്കിൽ വെർച്വൽ ഡിഫേസ്മെൻ്റ് [S1][S2] നടത്തൽ എന്നിവ ഇതിൽ ഉൾപ്പെടുന്നു. ഇരയ്ക്ക് അഡ്മിനിസ്ട്രേറ്റീവ് പ്രത്യേകാവകാശങ്ങൾ ഉണ്ടെങ്കിൽ, ആക്രമണകാരിക്ക് ആപ്ലിക്കേഷൻ്റെയും അതിൻ്റെ ഡാറ്റയുടെയും [S1] യുടെ മേൽ പൂർണ്ണ നിയന്ത്രണം നേടാനാകും.

മൂലകാരണം

XSS എന്നത് ശരിയായ ന്യൂട്രലൈസേഷനോ എൻകോഡിംഗോ കൂടാതെ [S2] ഇല്ലാതെ ഒരു ആപ്ലിക്കേഷൻ ഉപയോക്തൃ-നിയന്ത്രണ ഇൻപുട്ട് സ്വീകരിക്കുകയും ഒരു വെബ് പേജിൽ ഉൾപ്പെടുത്തുകയും ചെയ്യുമ്പോൾ സംഭവിക്കുന്നു. ഇത് ഇൻപുട്ടിനെ സജീവമായ ഉള്ളടക്കമായി (JavaScript) വ്യാഖ്യാനിക്കാൻ ഇരയുടെ ബ്രൗസർ അനുവദിക്കുന്നു, [S1][S2] എന്നതിൽ നിന്ന് വെബ്‌സൈറ്റുകളെ വേർപെടുത്താൻ രൂപകൽപ്പന ചെയ്‌തിരിക്കുന്ന ഒരേ ഒറിജിൻ പോളിസിയെ മറികടക്കുന്നു.

ദുർബലത തരങ്ങൾ

  • പ്രതിഫലിക്കുന്ന XSS: ക്ഷുദ്രകരമായ സ്‌ക്രിപ്റ്റുകൾ ഇരയുടെ ബ്രൗസറിലേക്ക് ഒരു വെബ് ആപ്ലിക്കേഷനിൽ നിന്ന് പ്രതിഫലിക്കുന്നു, സാധാരണയായി ഒരു URL പാരാമീറ്റർ [S1] വഴി.
  • സംഭരിച്ച XSS: സ്ക്രിപ്റ്റ് സെർവറിൽ ശാശ്വതമായി സംഭരിക്കുകയും (ഉദാ. ഒരു ഡാറ്റാബേസിലോ അഭിപ്രായ വിഭാഗത്തിലോ) ഉപയോക്താക്കൾക്ക് പിന്നീട് [S1][S2] നൽകുകയും ചെയ്യുന്നു.
  • DOM-അടിസ്ഥാനത്തിലുള്ള XSS: innerHTML innerHTML-ലേക്ക് എഴുതുന്നത് പോലെ, വിശ്വസനീയമല്ലാത്ത ഉറവിടത്തിൽ നിന്നുള്ള ഡാറ്റ സുരക്ഷിതമല്ലാത്ത രീതിയിൽ പ്രോസസ്സ് ചെയ്യുന്ന ക്ലയൻ്റ് സൈഡ് കോഡിലാണ് ഈ കേടുപാടുകൾ പൂർണ്ണമായും നിലനിൽക്കുന്നത്.

കോൺക്രീറ്റ് ഫിക്സുകൾ

  • ഔട്ട്‌പുട്ടിൽ ഡാറ്റ എൻകോഡ് ചെയ്യുക: റെൻഡർ ചെയ്യുന്നതിന് മുമ്പ് ഉപയോക്തൃ-നിയന്ത്രിത ഡാറ്റ ഒരു സുരക്ഷിത രൂപത്തിലേക്ക് പരിവർത്തനം ചെയ്യുക. HTML ബോഡിക്കായി HTML എൻ്റിറ്റി എൻകോഡിംഗും ആ പ്രത്യേക സന്ദർഭങ്ങൾക്ക് അനുയോജ്യമായ JavaScript അല്ലെങ്കിൽ CSS എൻകോഡിംഗും ഉപയോഗിക്കുക [S1][S2].
  • വരുമ്പോൾ ഇൻപുട്ട് ഫിൽട്ടർ ചെയ്യുക: പ്രതീക്ഷിക്കുന്ന ഇൻപുട്ട് ഫോർമാറ്റുകൾക്കായി കർശനമായ അനുവദനീയ ലിസ്റ്റുകൾ നടപ്പിലാക്കുകയും [S1][S2] അനുരൂപമല്ലാത്ത എന്തും നിരസിക്കുകയും ചെയ്യുക.
  • സെക്യൂരിറ്റി ഹെഡറുകൾ ഉപയോഗിക്കുക: JavaScript [S2] വഴിയുള്ള ആക്സസ് തടയാൻ സെഷൻ കുക്കികളിൽ HttpOnly ഫ്ലാഗ് സജ്ജമാക്കുക. പ്രതികരണങ്ങളെ എക്സിക്യൂട്ടബിൾ കോഡ് [S1] ആയി ബ്രൗസറുകൾ തെറ്റായി വ്യാഖ്യാനിക്കുന്നില്ലെന്ന് ഉറപ്പാക്കാൻ Content-Type, X-Content-Type-Options: nosniff എന്നിവ ഉപയോഗിക്കുക.
  • ഉള്ളടക്ക സുരക്ഷാ നയം (CSP): സ്‌ക്രിപ്റ്റുകൾ ലോഡുചെയ്യാനും എക്‌സിക്യൂട്ട് ചെയ്യാനും കഴിയുന്ന ഉറവിടങ്ങളെ നിയന്ത്രിക്കുന്നതിന് ശക്തമായ CSP വിന്യസിക്കുക, ഇത് ഒരു പ്രതിരോധ-ആഴത്തിലുള്ള പാളി നൽകുന്നു.

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

FixVibe സ്ഥാപിത സ്കാനിംഗ് രീതികളെ അടിസ്ഥാനമാക്കി ഒരു മൾട്ടി-ലേയേർഡ് സമീപനത്തിലൂടെ XSS കണ്ടെത്താനാകും:

  • നിഷ്‌ക്രിയ സ്‌കാനുകൾ: Content-Security-Policy അല്ലെങ്കിൽ X-Content-Type-Options പോലുള്ള നഷ്‌ടമായതോ ദുർബലമായതോ ആയ സുരക്ഷാ തലക്കെട്ടുകൾ തിരിച്ചറിയുന്നു, അവ XSS [S1]FIXVIBETOKEN2.
  • ആക്ടീവ് പ്രോബുകൾ: ശരിയായ എൻകോഡിംഗ് [S1] ഇല്ലാതെ പ്രതികരണ ബോഡിയിൽ പ്രതിഫലിക്കുന്നുണ്ടോ എന്ന് നിർണ്ണയിക്കാൻ URL പാരാമീറ്ററുകളിലേക്കും ഫോം ഫീൽഡുകളിലേക്കും തനതായതും ക്ഷുദ്രകരമല്ലാത്തതുമായ ആൽഫാന്യൂമെറിക് സ്ട്രിംഗുകൾ കുത്തിവയ്ക്കുന്നു.
  • Repo സ്കാനുകൾ: innerHTML, document.write, അല്ലെങ്കിൽ ZXCVFIXVIBETOKEN2ZXCEV എന്നിവയെ അടിസ്ഥാനമാക്കിയുള്ള, വിശ്വസനീയമല്ലാത്ത ഡാറ്റ സുരക്ഷിതമല്ലാത്ത രീതിയിൽ കൈകാര്യം ചെയ്യുന്ന "സിങ്കുകൾ"ക്കായി ക്ലയൻ്റ് സൈഡ് JavaScript വിശകലനം ചെയ്യുന്നു. XSS [S1].