CSRF কি? – এটি কিভাবে কাজ করে | প্রতিরোধের উপায়

আমরা যখন কোন ব্রাউজারে নিজের একাউন্ট লগইন করে থাকি যেমন হতে পারে সেটা ক্রোম কিংবা ফায়ারফক্স। এরপর ওখান থেকে যদি ফেসবুকে বা অন্য কোন সাইটে লগইন করি সেখানে যখন কোন কিছু পোস্ট করতে যাই দেখবেন পোস্ট করার আলাদা অপশন আছে। বার বার পোস্ট দিতে আমাদের কে লগইন করতে হয় না, আলাদা ভাবে ইমেল আইডি এবং নতুন করে পাসওয়ার্ড দেয়ার প্রয়োজন হয় না।

ফেসবুক আগেই বুঝে নিয়েছে এইটা আপনি, কারন এই ব্রাউজার দিয়ে আপনি এর আগেও লগইন করেছেন। সুতরাং এই ব্রাউজার থেকে যে ধরনের রিকুয়েস্ট আসবে সেগুলো আপনার দ্বারাই হবে। এই যে ব্রাউজারের মাধ্যমে এক ওয়েবসাইট থেকে অন্য ওয়েবসাইটে রিকুয়েস্ট করা হয় এটাই CSRF। আসুন আজ জেনে নেই সিএসআরএফ এর সমস্ত কিছু। 

CSRF কি?

CSRF হলো ক্রস সাইট রিকোয়েস্ট ফরগিরি (সিএসআরএফ), যা এক্সএসআরএফ, সি সার্ফ বা সেশন রাইডিং নামেও পরিচিত। এটি একটি আক্রমণকারী ভেক্টর যা কোনও ওয়েব-ব্রাউজারকে একটি অ্যাপ্লিকেশনে অযাচিত ক্রিয়াকলাপ চালানোর উদ্দেশ্যে চালিত করে যেখানে একজন ব্যবহারকারী লগইন করে। 

আমরা সবাই জানি জাভাস্ক্রিপ্ট নামে একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ রয়েছে যা প্রায় সকল ওয়েবসাইটেই থাকে এবং সেটা দিয়ে যেকোন ধরনের ফর্ম নিমেষেই তৈরি করে ফেলা যায় এবং যেখানে সেখানে তা সাবমিট করা যায়। সাধারনত CSRF এটাকের ক্ষেত্রে সবচেয়ে বেশি ব্যাবহৃত হয়। আপনি যদি কৌতুহল বশত বা মনের অজান্তে  অথবা কোন কারনে এসব ওয়েবসাইটে গেলেন যেটাতে ফেসবুক স্ট্যাটাস ফর্মের মত হুবুহু জাভাস্ক্রিপ্ট ফর্ম রয়েছে অথবা সে নিজেই এইধরনের ফর্ম তৈরি করতে পারে এবং  সেখানে ক্লিক করা মাত্রই অন্য কেউ সেই তথ্য নিয়ে নিজের মত করে আপনার অজান্তে সেখানে সরাসরি ফেসবুকের ওয়েবসাইটেই সাবমিট করে দিল। আর তখন ফেসবুক সেই জাভাস্ক্রিপ্ট থেকে যে  রিকুয়েস্ট টা পাবে সে ধরেই নিবে যে কাজটা আপনি করেছেন। অন্য একটা ওয়েবসাইট থেকে একটা কিছু লিখে আপনার ফেসবুকে পাবলিশ করে দিল এটা যে কেবল ফেবুকেই পসিবল তা কিন্তু নয়,  ইকমার্স, ব্যাংক বা ফিন্যানশিয়াল অথবা পারসোনাল যেকোন ওয়েবসাইটেই কিন্তু সে এরকম রিকুয়েস্ট পাঠাতে পারবে। আর এইভাবে এক ওয়েবসাইট থেকে অন্য ওয়েবসাইটে আপনার অজান্তে রিকুয়েস্ট পাঠানোই হচ্ছে CSRF।

ক্রস-সাইট অনুরোধ জালিয়াতি (CSRF হিসাবে পরিচিত) হ’ল একটি ওয়েব সুরক্ষা দুর্বলতা যা কোনও আক্রমণকারীকে ব্যবহারকারীদের এমন কাজ সম্পাদন করতে প্ররোচিত করে যেটা সত্যি ব্যবহারকারী করতে চায় না।

কিছু ওয়েব এপ্লিকেশন আছে যা একজন হ্যাকারকে আংশিকভাবে ওয়েবসাইটের কিছু পরিবর্তনের অনুমতি দিয়ে থাকে যেমন  কোনও ইমেল বা লিঙ্ক যা ক্ষতিগ্রস্থ ব্যবহারকারীকে একটি সার্ভারে নকল অনুরোধ প্রেরণের কৌশল কাজ করে থাকে। এবং হ্যাকার যখন আক্রমণটির সময় তাদের অ্যাপ্লিকেশন দ্বারা প্রমাণ করেই নিয়েছে যে ব্যবহারকারী এবং সে একই ব্যাক্তি, তাই  অবৈধ থেকে বৈধ অনুরোধের পার্থক্য করা অসম্ভব।

CSRF কি

image Source – cobalt.io

কিভাবে CSRF কাজ করে থাকে?

যে ওয়েবসাইট গুলি হ্যাকার দ্বারা প্রেরিত রিকুয়েস্ট এবং ব্যবহারকারী দ্বারা প্রেরিত রিকুয়েস্ট তথা বৈধ অবৈধের মধ্যে পার্থক্য করতে পারে না, হ্যাকাররা সেই ধরনের ওয়েবসাইটগুলো বেছে নেয় তাদের কাজ পরিচালনার জন্য। একটা উদাহরণ দেয়া যেতে পারে, যেমন ধরেন এক্সাম্পল সল্যুশন ডট কম নামে একটি ওয়েবসাইট আছে যেখানে একটি অনলাইন ব্যংকিং একাউন্ট ও আছে। আপনি আপনার বন্ধুর সাথে লেনদেনের জন্য নিয়মিত এই সাইটটি ব্যবহার করেন। আপনি জানেনই না যে এতে সিএসআরএফ এর ঝুকি আছে। এদিকে, একজন আক্রমণকারী এই দুর্বলতা কাজে লাগিয়ে আপনার অ্যাকাউন্ট থেকে ৫,000 ডলারের মত টাকা স্থানান্তর করার পায়তারা করছে। এই আক্রমণটি সফলভাবে শুরু করতে সে যা করবেঃ

  • প্রথমত হ্যাকার একটি  কার্যকর URL তৈরি করবে।
  • এই URL এর কাজ সম্পাদনের জন্য হ্যাকার আপনাকে ক্লিক করতে কৌশল খাটাবে।
  • এক্সাম্পল সল্যুশন.কম এর সাথে আপনার একটি কার্যকরী সেশন প্রয়োজন।

ধরা যাক যে একটি অনলাইন স্থানান্তর অনুরোধ জমা দেওয়ার জন্য জিইটি পদ্ধতি ব্যবহার করে অনলাইন ব্যাংকিং অ্যাপ্লিকেশন তৈরি করা হয়েছে। এর মতো, আপনার বন্ধুর অ্যাকাউন্টে ৫০০$ স্থানান্তর করার জন্য আপনি আপনার জায়গা থেকে রিকোয়েস্ট পাঠালে GET https://examplesolutionbank.com/onlinebanking/transfer?amount=5000&accountNumber=2135465 HTTP/1.1 এই টাইপের লিংক দেখাবে। হ্যাকার শুরুতেই চাইবে একটা ত্রুটিপূর্ণ URL তৈরি করে আপনাকে দিয়ে সেই URL টি লোড করানো। এটা বিভিন্ন উপায়ে সে করতে পারে। উদাহরণস্বরূপ, ক্ষতিকারক এইচটিএমএল ইমেজ উপাদানগুলিকে ফর্মগুলিতে অন্তর্ভুক্ত করে, অ্যাপ্লিকেশনটিতে লগইন করার সময় ব্যবহারকারীরা প্রায়শই অ্যাক্সেস করা পেইজ গুলিতে একটি ত্রুটি পূর্ণ URL স্থাপন করে বা ইমেলের মাধ্যমে এই URL প্রেরণ করে। এটি পাওয়ার পরে, আপনার ব্রাউজার অ্যাপ্লিকেশনটি এই ইউআরএলটি স্বয়ংক্রিয়ভাবে খোলে এবং আপনার অনুমতি ব্যতীত, অনলাইন ব্যাংকিং আবেদনে একটি অবৈধ রিকোয়েস্ট প্রেরণ করে। আপনার ওয়েবসাইটটি ধরেই নিবে এটা আপনি রিকোয়েস্ট পাঠিয়েছেন আর এভাবেই হ্যাকার তার একাউন্টে অর্থ স্থানাতর করতে সক্ষম হবে। দেখেছেন তো কিভাবে অর্থ গুলো পাচার হবে?

কিভাবে CSRFএট্যাক আটকাতে পারবেন? 

CSRF এট্যাক আটকানো জন্য কয়েকটি বিষয় মাথায় রাখতে হবে-

  • HTTP অনুরোধটি বৈধভাবে অ্যাপ্লিকেশনটির ব্যবহারকারী ইন্টারফেসের মাধ্যমে উত্পন্ন হয়েছে কিনা দেখতে হবে। এই কাজটি করতে পারবেন CSRF এর টোকেনের মাধ্যমে। এটি সিএসআরএফ আক্রমণ প্রতিরোধ করতে ব্যবহৃত হয়। তাই এই টোকেনের সংখ্যা একটু জটিল হওয়া দরকার।
  • একটি সিএসআরএফ সুরক্ষিত অ্যাপ্লিকেশন প্রতিটি ব্যবহারকারীর সেশনের জন্য একটি ইউনিক সিএসআরএফ টোকন বরাদ্দ করে থাকে। এই টোকেনগুলি গুরুতর সার্ভার-সাইড ক্রিয়াকলাপ সম্পর্কিত HTML ফর্মগুলির গোপন প্যারামিটার গুলির মধ্যে সন্নিবেশ করা হয়। এর পরে তাদেরকে ক্লায়েন্ট ব্রাউজারগুলিতে প্রেরণ করা হয়।
  • সিএসআরএফ টোকেনগুলি অবশ্যই এইচটিএমএল ফর্মের একটি অংশ হতে হবে কুকিজের না।
  • সবচেয়ে সহজ কাজ হলো নন প্রেডিক্টেবল প্যারামিটার যুক্ত করা অর্থাৎ ব্যবহারকারীর সেশন আইডি হ্যাশ করার জন্য একটি সুরক্ষিত হ্যাশ ফাংশন ব্যবহার করা।
  • এলোমেলো সংখ্য নিশ্চিত করতে টোকেন গুলি অবশ্যই কোন ক্রিপ্টোগ্রাফিক সুরক্ষিত এলোমেলো সংখ্যা জেনারেটর দ্বারা তৈরি করা উচিত।
  • রেন্ডমলি অটো জেনারেট হয় এবং ভ্যারিফাই হয় বলে CSRF এট্যাক থেকে আপনার একাউন্ট সেইভ করতে সাহায্য করে। যার ফলে অন্যসাইট গুলি সিএসআরএফ এর মতো টোকেন তৈরি করতে পারেন এমনকি জাভা স্ক্রিপ্ট ব্যবহার করেও অন্য কোন ওয়েব সাইট CSRF টোকেন কপি করতে পারবেনা। তাই স্বয়ং আপনি ছাড়া অন্য কারো রিকুয়েস্ট গ্রহণ হবে না।

CSRF এর মাধ্যমে অনেক অর্থ বা তথ্য পাচার হয়েছে। আর এই অবৈধ কার্যক্রম রোধ করতেই সিএসআরেফ টোকেন খুবই কার্যকরী। এখন তাহলে বুঝেই গেছেন এই CSRF ঠেকাতে কেবল CSRF টোকেনই যথেষ্ট যা রেন্ডমলি স্ট্রিং তৈরি করে আপনার সাইটটি কে সুরক্ষতি করে অন্য কোন সাইট থেকে আসা রিকুয়েস্ট গুলোকে গ্রহন করে না।

Leave a Reply

Your email address will not be published. Required fields are marked *