FixVibe
Covered by FixVibehigh

CORS തെറ്റായ കോൺഫിഗറേഷൻ: അമിതമായി അനുവദനീയമായ നയങ്ങളുടെ അപകടസാധ്യതകൾ

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

CWE-942

ആഘാതം

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

മൂലകാരണം

CORS എന്നത് ഒരു HTTP-ഹെഡർ അധിഷ്‌ഠിത മെക്കാനിസമാണ്, അത് ഏത് ഉറവിടങ്ങളാണ് (ഡൊമെയ്ൻ, സ്‌കീം അല്ലെങ്കിൽ പോർട്ട്) [S1] ലോഡുചെയ്യാൻ അനുവദിച്ചിരിക്കുന്നതെന്ന് വ്യക്തമാക്കാൻ സെർവറുകളെ അനുവദിക്കുന്നു. ഒരു സെർവറിൻ്റെ CORS നയം വളരെ അയവുള്ളതോ മോശമായി നടപ്പിലാക്കിയതോ ആയ [S2] ആണെങ്കിൽ സാധാരണയായി കേടുപാടുകൾ ഉണ്ടാകുന്നു:

  • പ്രതിഫലിക്കുന്ന ഒറിജിൻ ഹെഡർ: ചില സെർവറുകൾ ഒരു ക്ലയൻ്റ് അഭ്യർത്ഥനയിൽ നിന്ന് Origin തലക്കെട്ട് വായിക്കുകയും Access-Control-Allow-Origin (ACAO) പ്രതികരണ തലക്കെട്ടിൽ [S2]-ൽ വീണ്ടും പ്രതിധ്വനിക്കുകയും ചെയ്യുന്നു. [S2] എന്ന റിസോഴ്‌സ് ആക്‌സസ് ചെയ്യാൻ ഇത് ഏത് വെബ്‌സൈറ്റിനെയും ഫലപ്രദമായി അനുവദിക്കുന്നു.
  • തെറ്റായ വൈൽഡ്കാർഡുകൾ: * വൈൽഡ്കാർഡ് ഏതെങ്കിലും ഉറവിടം ഒരു ഉറവിടം ആക്സസ് ചെയ്യാൻ അനുവദിക്കുമ്പോൾ, ക്രെഡൻഷ്യലുകൾ (കുക്കികൾ അല്ലെങ്കിൽ ഓതറൈസേഷൻ തലക്കെട്ടുകൾ പോലെ) ആവശ്യമുള്ള അഭ്യർത്ഥനകൾക്ക് ഇത് ഉപയോഗിക്കാൻ കഴിയില്ല [S3]. [S2] എന്ന അഭ്യർത്ഥനയുടെ അടിസ്ഥാനത്തിൽ ACAO തലക്കെട്ട് ചലനാത്മകമായി സൃഷ്ടിച്ചുകൊണ്ട് ഡെവലപ്പർമാർ പലപ്പോഴും ഇത് മറികടക്കാൻ ശ്രമിക്കുന്നു.
  • 'null' വൈറ്റ്‌ലിസ്റ്റിംഗ്: ചില ആപ്ലിക്കേഷനുകൾ null ഉത്ഭവം വൈറ്റ്‌ലിസ്റ്റ് ചെയ്യുന്നു, ഇത് റീഡയറക്‌ടുചെയ്‌ത അഭ്യർത്ഥനകളോ ലോക്കൽ ഫയലുകളോ ഉപയോഗിച്ച് പ്രവർത്തനക്ഷമമാക്കാം, ക്ഷുദ്ര സൈറ്റുകളെ ആക്‌സസ്സ് നേടുന്നതിന് null ഉറവിടമായി മാറാൻ അനുവദിക്കുന്നു. [S2][S3].
  • പാഴ്‌സിംഗ് പിശകുകൾ: Origin ഹെഡർ സാധൂകരിക്കുമ്പോൾ റീജക്‌സിലോ സ്‌ട്രിംഗ് മാച്ചിംഗിലോ ഉണ്ടാകുന്ന പിഴവുകൾ trusted-domain.com.attacker.com [S2] പോലുള്ള ഡൊമെയ്‌നുകൾ ഉപയോഗിക്കാൻ ആക്രമണകാരികളെ അനുവദിക്കും.

CORS എന്നത് ക്രോസ്-സൈറ്റ് അഭ്യർത്ഥന വ്യാജമായി (CSRF) [S2] എന്നതിനെതിരായ ഒരു സംരക്ഷണമല്ല എന്നത് ശ്രദ്ധിക്കേണ്ടതാണ്.

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

  • ഒരു സ്റ്റാറ്റിക് വൈറ്റ്‌ലിസ്റ്റ് ഉപയോഗിക്കുക: അഭ്യർത്ഥനയുടെ Origin ഹെഡറിൽ നിന്ന് Access-Control-Allow-Origin തലക്കെട്ട് ചലനാത്മകമായി സൃഷ്ടിക്കുന്നത് ഒഴിവാക്കുക. പകരം, [S3] എന്ന വിശ്വസ്ത ഡൊമെയ്‌നുകളുടെ ഹാർഡ്‌കോഡ് ലിസ്റ്റുമായി അഭ്യർത്ഥനയുടെ ഉത്ഭവം താരതമ്യം ചെയ്യുക.
  • 'ശൂന്യമായ' ഉത്ഭവം ഒഴിവാക്കുക: നിങ്ങളുടെ അനുവദനീയമായ ഉറവിടങ്ങളുടെ വൈറ്റ്‌ലിസ്റ്റിൽ null ഒരിക്കലും ഉൾപ്പെടുത്തരുത് [S2].
  • ക്രെഡൻഷ്യലുകൾ നിയന്ത്രിക്കുക: നിർദ്ദിഷ്ട ക്രോസ്-ഒറിജിൻ ഇൻ്ററാക്ഷന് [S3] തികച്ചും ആവശ്യമെങ്കിൽ മാത്രം Access-Control-Allow-Credentials: true സജ്ജമാക്കുക.
  • ശരിയായ മൂല്യനിർണ്ണയം ഉപയോഗിക്കുക: നിങ്ങൾ ഒന്നിലധികം ഉത്ഭവങ്ങളെ പിന്തുണയ്‌ക്കേണ്ടതുണ്ടെങ്കിൽ, Origin ഹെഡറിനായുള്ള മൂല്യനിർണ്ണയ ലോജിക് ശക്തമാണെന്നും സബ്‌ഡൊമെയ്‌നുകളോ സമാന രൂപത്തിലുള്ള ഡൊമെയ്‌നുകളോ [S2] വഴി മറികടക്കാൻ കഴിയില്ലെന്നും ഉറപ്പാക്കുക.

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

FixVibe ഇപ്പോൾ ഇതൊരു ഗേറ്റഡ് ആക്റ്റീവ് ചെക്ക് ആയി ഉൾപ്പെടുത്തിയിട്ടുണ്ട്. ഡൊമെയ്ൻ പരിശോധിച്ചുറപ്പിച്ചതിന് ശേഷം, active.cors ഒരു സിന്തറ്റിക് ആക്രമണകാരിയുടെ ഉത്ഭവം ഉള്ള അതേ-ഉത്ഭവ API അഭ്യർത്ഥനകൾ അയയ്ക്കുകയും CORS പ്രതികരണ തലക്കെട്ടുകൾ അവലോകനം ചെയ്യുകയും ചെയ്യുന്നു. അനിയന്ത്രിതമായ ഉത്ഭവം, വൈൽഡ്കാർഡ് ക്രെഡൻഷ്യൽ ചെയ്‌ത CORS, പൊതു അസറ്റ് ശബ്‌ദം ഒഴിവാക്കുന്ന സമയത്ത് പൊതുമല്ലാത്ത API എൻഡ്‌പോയിൻ്റുകളിൽ വൈഡ്-ഓപ്പൺ CORS എന്നിവ ഇത് റിപ്പോർട്ട് ചെയ്യുന്നു.