FixVibe
Covered by FixVibehigh

CORS غلط کنفیگریشن: حد سے زیادہ اجازت دینے والی پالیسیوں کے خطرات

کراس اوریجن ریسورس شیئرنگ (CORS) ایک براؤزر میکانزم ہے جو Same-Origin Policy (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 کی عکاسی کرتا ہے۔