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 મૂળ તરીકે માસ્કરેડ કરવાની મંજૂરી આપે છે. [S2][S3].
  • પર્સિંગ ભૂલો: Origin હેડરને માન્ય કરતી વખતે રેજેક્સ અથવા સ્ટ્રિંગ મેચિંગમાં ભૂલો હુમલાખોરોને trusted-domain.com.attacker.com [S2] જેવા ડોમેનનો ઉપયોગ કરવાની મંજૂરી આપી શકે છે.

એ નોંધવું અગત્યનું છે કે CORS એ ક્રોસ-સાઇટ વિનંતી ફોર્જરી (CSRF) [S2] સામે રક્ષણ નથી.

કોંક્રિટ ફિક્સેસ

  • સ્ટેટિક વ્હાઇટલિસ્ટનો ઉપયોગ કરો: વિનંતીના Origin હેડર [S2]માંથી Access-Control-Allow-Origin હેડરને ગતિશીલ રીતે જનરેટ કરવાનું ટાળો. તેના બદલે, વિશ્વસનીય ડોમેન્સ [S3]ની હાર્ડકોડ કરેલી સૂચિ સાથે વિનંતીના મૂળની તુલના કરો.
  • 'નલ' મૂળને ટાળો: nullને તમારી માન્ય મૂળ [S2]ની વ્હાઇટલિસ્ટમાં ક્યારેય શામેલ કરશો નહીં.
  • પ્રતિબંધિત ઓળખપત્રો: ફક્ત Access-Control-Allow-Credentials: true સેટ કરો જો ચોક્કસ ક્રોસ-ઓરિજિન ક્રિયાપ્રતિક્રિયા [S3] માટે એકદમ જરૂરી હોય.
  • યોગ્ય માન્યતાનો ઉપયોગ કરો: જો તમારે બહુવિધ મૂળને સમર્થન આપવું જોઈએ, તો ખાતરી કરો કે Origin હેડર માટે માન્યતા તર્ક મજબૂત છે અને સબડોમેન્સ અથવા સમાન દેખાતા ડોમેન્સ [S2] દ્વારા તેને બાયપાસ કરી શકાતો નથી.

FixVibe તેના માટે કેવી રીતે પરીક્ષણ કરે છે

FixVibe હવે આને ગેટેડ સક્રિય ચેક તરીકે સમાવે છે. ડોમેન ચકાસણી પછી, active.cors સિન્થેટિક હુમલાખોર મૂળ સાથે સમાન મૂળની API વિનંતીઓ મોકલે છે અને CORS પ્રતિસાદ હેડરની સમીક્ષા કરે છે. તે જાહેર સંપત્તિના ઘોંઘાટને ટાળીને બિન-જાહેર API એન્ડપોઇન્ટ્સ પર મનસ્વી ઉત્પત્તિ, વાઇલ્ડકાર્ડ ઓળખપત્ર CORS અને વાઇડ-ઓપન CORS નો અહેવાલ આપે છે.