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] অন্তর্ভুক্ত করবেন না।
  • প্রমাণপত্র সীমাবদ্ধ করুন: নির্দিষ্ট ক্রস-অরিজিন মিথস্ক্রিয়া [S3]-এর জন্য একেবারে প্রয়োজন হলে শুধুমাত্র Access-Control-Allow-Credentials: true সেট করুন।
  • যথাযথ যাচাইকরণ ব্যবহার করুন: যদি আপনাকে একাধিক উত্স সমর্থন করতে হয়, নিশ্চিত করুন যে Origin শিরোনামের জন্য বৈধতা যুক্তি শক্তিশালী এবং সাবডোমেন বা অনুরূপ চেহারার ডোমেন [S2] দ্বারা বাইপাস করা যাবে না।

কিভাবে FixVibe এর জন্য পরীক্ষা করে

FixVibe এখন এটি একটি গেটেড সক্রিয় চেক হিসাবে অন্তর্ভুক্ত করে। ডোমেন যাচাইকরণের পর, active.cors একই-অরিজিন API অনুরোধ পাঠায় সিন্থেটিক আক্রমণকারীর সাথে এবং CORS প্রতিক্রিয়া শিরোনাম পর্যালোচনা করে। এটি প্রতিফলিত নির্বিচারে উৎপত্তি, ওয়াইল্ডকার্ড শংসাপত্রযুক্ত CORS, এবং অ-সর্বজনীন API শেষ পয়েন্টে ব্যাপক-খোলা API পাবলিক অ্যাসেট নয়েজ এড়াতে রিপোর্ট করে৷