ফাজিং কি?

কি ঝাপসা হয়

ভূমিকা: ফাজিং কি?

2014 সালে চীনা হ্যাকাররা কমিউনিটি হেলথ সিস্টেমে হ্যাক করা হয়েছে, একটি লাভজনক ইউএস হাসপাতাল চেইন, এবং 4.5 মিলিয়ন রোগীর ডেটা চুরি করেছে। হ্যাকাররা হার্টব্লিড নামে একটি বাগ ব্যবহার করেছে যা হ্যাক করার কয়েক মাস আগে OpenSSL ক্রিপ্টোগ্রাফি লাইব্রেরিতে আবিষ্কৃত হয়েছিল।

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

এখানেই 'ফাজিং' আসে।

ফাজিং অ্যাটাক কী?

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

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

Fuzzers এমন প্রোগ্রামগুলিতে ব্যবহার করা হয় যেগুলি কাঠামোগত ইনপুট নেয় বা কোনো ধরনের বিশ্বাসের সীমানা থাকে। উদাহরণস্বরূপ, পিডিএফ ফাইলগুলি গ্রহণ করে এমন একটি প্রোগ্রামের কিছু বৈধতা থাকতে পারে যাতে ফাইলটির একটি .pdf এক্সটেনশন এবং PDF ফাইল প্রক্রিয়া করার জন্য পার্সার রয়েছে।

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

Fuzzers অ্যাটাক ভেক্টর আবিষ্কার করে এবং SQL ইনজেকশন, ক্রস-সাইট স্ক্রিপ্টিং, বাফার ওভারফ্লো, এবং ডিনায়াল-অফ-সার্ভিস আক্রমণের মতন সহ খুব মিল। এই সমস্ত আক্রমণগুলি একটি সিস্টেমে অপ্রত্যাশিত, অবৈধ বা এলোমেলো ডেটা খাওয়ানোর ফলাফল। 

 

Fuzzers এর প্রকারভেদ

কিছু বৈশিষ্ট্যের উপর ভিত্তি করে Fuzzers শ্রেণীবদ্ধ করা যেতে পারে:

  1. আক্রমণ লক্ষ্যবস্তু
  2. ফাজ তৈরির পদ্ধতি
  3. ইনপুট গঠন সচেতনতা
  4. প্রোগ্রাম গঠন সচেতনতা

1. আক্রমণ লক্ষ্য

এই শ্রেণিবিন্যাসটি পরীক্ষা করার জন্য যে ধরনের প্ল্যাটফর্ম ব্যবহার করা হচ্ছে তার উপর ভিত্তি করে। Fuzzers সাধারণত নেটওয়ার্ক প্রোটোকল এবং সফ্টওয়্যার অ্যাপ্লিকেশনের সাথে ব্যবহার করা হয়। প্রতিটি প্ল্যাটফর্মের একটি নির্দিষ্ট ধরণের ইনপুট রয়েছে যা এটি গ্রহণ করে এবং এইভাবে বিভিন্ন ধরণের ফুজারের প্রয়োজন হয়।

উদাহরণস্বরূপ, অ্যাপ্লিকেশনগুলির সাথে কাজ করার সময়, সমস্ত অস্পষ্ট প্রচেষ্টা অ্যাপ্লিকেশনের বিভিন্ন ইনপুট চ্যানেলে ঘটে, যেমন ইউজার ইন্টারফেস, কমান্ড-লাইন টার্মিনাল, ফর্ম/টেক্সট ইনপুট এবং ফাইল আপলোড। সুতরাং ফুজার দ্বারা উত্পন্ন সমস্ত ইনপুটগুলিকে এই চ্যানেলগুলির সাথে মেলে।

কমিউনিকেশন প্রোটোকল নিয়ে কাজ করা Fuzzersকে প্যাকেটের সাথে মোকাবিলা করতে হয়। এই প্ল্যাটফর্মকে টার্গেট করা Fuzzers নকল প্যাকেট তৈরি করতে পারে, অথবা এমনকি আটকানো প্যাকেটগুলিকে সংশোধন করতে এবং সেগুলিকে পুনরায় চালাতে প্রক্সি হিসাবে কাজ করতে পারে।

2. ফাজ তৈরির পদ্ধতি

Fuzzers এছাড়াও শ্রেণীবদ্ধ করা যেতে পারে কিভাবে তারা fuzz করার জন্য ডেটা তৈরি করে। ঐতিহাসিকভাবে, ফুজাররা স্ক্র্যাচ থেকে এলোমেলো ডেটা তৈরি করে ফাজ তৈরি করেছিল। এই কৌশলটির প্রবর্তক অধ্যাপক বার্টন মিলার প্রাথমিকভাবে এটি করেছিলেন। এই ধরনের fuzzer বলা হয় a প্রজন্ম ভিত্তিক fuzzer.

যাইহোক, যদিও কেউ তাত্ত্বিকভাবে ডেটা তৈরি করতে পারে যা একটি বিশ্বাসের সীমানা বাইপাস করবে, এটি করতে যথেষ্ট সময় এবং সংস্থান লাগবে। তাই এই পদ্ধতিটি সাধারণত সাধারণ ইনপুট কাঠামো সহ সিস্টেমের জন্য ব্যবহৃত হয়।

এই সমস্যার একটি সমাধান হ'ল একটি বিশ্বাসের সীমানা অতিক্রম করার জন্য যথেষ্ট বৈধ ডেটা তৈরি করার জন্য বৈধ বলে পরিচিত ডেটা পরিবর্তন করা, তবে সমস্যা সৃষ্টি করার জন্য যথেষ্ট অবৈধ। এর একটি ভালো উদাহরণ হল ক ডিএনএস ফাজার যা একটি ডোমেন নাম নেয় এবং তারপর নির্দিষ্ট ডোমেনের মালিককে লক্ষ্য করে সম্ভাব্য দূষিত ডোমেন সনাক্ত করতে ডোমেন নামের একটি বড় তালিকা তৈরি করে।

এই পদ্ধতিটি আগেরটির চেয়ে স্মার্ট এবং সম্ভাব্য পরিবর্তনগুলিকে উল্লেখযোগ্যভাবে সংকুচিত করে। এই পদ্ধতি ব্যবহার করা Fuzzers বলা হয় মিউটেশন ভিত্তিক fuzzers

একটি তৃতীয় আরও সাম্প্রতিক পদ্ধতি আছে যা জেনেটিক অ্যালগরিদম ব্যবহার করে দুর্বলতাগুলিকে রুট করার জন্য প্রয়োজনীয় সর্বোত্তম ফাজ ডেটাতে একত্রিত হতে। এটি একটি প্রোগ্রামে খাওয়ানোর সময় প্রতিটি পরীক্ষার ডেটার কার্যকারিতা বিবেচনায় নিয়ে তার ফাজ ডেটা ক্রমাগত পরিমার্জন করে কাজ করে। 

ডেটার সবচেয়ে খারাপ পারফরম্যান্স সেটগুলি ডেটা পুল থেকে সরানো হয়, যখন সেরাগুলি পরিবর্তিত এবং/অথবা একত্রিত হয়। নতুন প্রজন্মের ডেটা তারপর আবার অস্পষ্ট পরীক্ষা করতে ব্যবহৃত হয়। এই fuzzers হিসাবে উল্লেখ করা হয় বিবর্তনীয় মিউটেশন-ভিত্তিক fuzzers।

3. ইনপুট স্ট্রাকচার সচেতনতা

এই শ্রেণীবিভাগের উপর ভিত্তি করে একটি fuzzer সচেতন এবং সক্রিয়ভাবে fuzz ডেটা তৈরি করার জন্য একটি প্রোগ্রামের ইনপুট কাঠামো ব্যবহার করে। ক বোবা ফুজার (একটি fuzzer যেটি একটি প্রোগ্রামের ইনপুট কাঠামো সম্পর্কে অবগত নয়) বেশিরভাগ র্যান্ডম ফ্যাশনে ফাজ তৈরি করে। এর মধ্যে জেনারেশন এবং মিউটেশন-ভিত্তিক fuzzers উভয়ই অন্তর্ভুক্ত থাকতে পারে। 


একটি প্রোগ্রামের ইনপুট মডেলের সাথে একটি fuzzer প্রদান করা উচিত, fuzzer তারপরে ডেটা তৈরি বা পরিবর্তন করার চেষ্টা করতে পারে যাতে এটি প্রদত্ত ইনপুট মডেলের সাথে মেলে। এই পদ্ধতিটি অবৈধ ডেটা তৈরিতে ব্যয় করা সম্পদের পরিমাণকে আরও কমিয়ে দেয়। এই ধরনের একটি fuzzer বলা হয় a স্মার্ট ফুজার.

4. প্রোগ্রাম কাঠামো সচেতনতা

Fuzzers তারা যে প্রোগ্রামের অভ্যন্তরীণ কাজগুলিকে তারা অস্পষ্ট করছে সে সম্পর্কে সচেতন কিনা তার উপর ভিত্তি করে শ্রেণীবদ্ধ করা যেতে পারে এবং সেই সচেতনতাকে ফাজ ডেটা তৈরিতে সহায়তা করার জন্য ব্যবহার করে। যখন কোনো প্রোগ্রামের অভ্যন্তরীণ গঠন না বুঝেই পরীক্ষা করার জন্য fuzzers ব্যবহার করা হয়, তখন একে ব্ল্যাক-বক্স টেস্টিং বলা হয়। 

ব্ল্যাক-বক্স পরীক্ষার সময় উত্পন্ন ফাজ ডেটা সাধারণত এলোমেলো হয় যদি না ফাজারটি একটি বিবর্তনীয় মিউটেশন-ভিত্তিক ফুজার হয়, যেখানে এটি তার অস্পষ্টতার প্রভাব পর্যবেক্ষণ করে এবং এটি ব্যবহার করে 'শিখতে পারে'। তথ্য এর অস্পষ্ট ডেটা সেট পরিমার্জিত করতে।

অন্যদিকে হোয়াইট-বক্স টেস্টিং ফাজ ডেটা তৈরি করতে প্রোগ্রামের অভ্যন্তরীণ কাঠামোর একটি মডেল ব্যবহার করে। এই পদ্ধতিটি একটি ফুজারকে একটি প্রোগ্রামের গুরুত্বপূর্ণ স্থানে যেতে এবং এটি পরীক্ষা করতে দেয়। 

জনপ্রিয় ফাজিং টুল

অনেক ফাজিং আছে সরঞ্জাম সেখানে কলম পরীক্ষক দ্বারা ব্যবহৃত. সবচেয়ে জনপ্রিয় কিছু হল:

ফাজিং এর সীমাবদ্ধতা

যদিও Fuzzing একটি সত্যিই দরকারী কলম-পরীক্ষার কৌশল, এটি তার ত্রুটি ছাড়া নয়। এর মধ্যে কয়েকটি হল:

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

 

তবুও, যারা খারাপ লোকদের আগে বাগ আবিষ্কার করতে চায় তাদের জন্য এটি একটি সুন্দর দরকারী এবং প্রয়োজনীয় সরঞ্জাম।

উপসংহার

ফাজিং একটি শক্তিশালী কলম-পরীক্ষার কৌশল যা সফ্টওয়্যারের দুর্বলতাগুলি উন্মোচন করতে ব্যবহার করা যেতে পারে। বিভিন্ন ধরনের fuzzers আছে, এবং নতুন fuzzers সব সময় উন্নত করা হচ্ছে. যদিও ফাজিং একটি অবিশ্বাস্যভাবে দরকারী টুল, এটির সীমাবদ্ধতা রয়েছে। উদাহরণস্বরূপ, fuzzers শুধুমাত্র অনেক দুর্বলতা খুঁজে পেতে পারেন এবং তারা যথেষ্ট সম্পদ নিবিড় হতে পারে। যাইহোক, আপনি যদি নিজের জন্য এই আশ্চর্যজনক কৌশলটি চেষ্টা করতে চান তবে আমাদের রয়েছে একটি বিনামূল্যে DNS Fuzzer API যা আপনি আমাদের প্ল্যাটফর্মে ব্যবহার করতে পারেন। 

তাহলে তুমি কিসের জন্য অপেক্ষা করছ? 

আজ অস্পষ্টতা শুরু করুন!

TOR সেন্সরশিপ বাইপাস করা

TOR দিয়ে ইন্টারনেট সেন্সরশিপ বাইপাস করা

TOR ভূমিকার সাথে ইন্টারনেট সেন্সরশিপ বাইপাস করা এমন একটি বিশ্বে যেখানে তথ্যের অ্যাক্সেস ক্রমবর্ধমানভাবে নিয়ন্ত্রিত হচ্ছে, টর নেটওয়ার্কের মতো সরঞ্জামগুলি গুরুত্বপূর্ণ হয়ে উঠেছে

আরো পড়ুন »
Kobold Letters: HTML-ভিত্তিক ইমেল ফিশিং আক্রমণ

Kobold Letters: HTML-ভিত্তিক ইমেল ফিশিং আক্রমণ

Kobold Letters: HTML-ভিত্তিক ইমেল ফিশিং আক্রমণ 31শে মার্চ 2024-এ, লুটা সিকিউরিটি একটি নতুন পরিশীলিত ফিশিং ভেক্টর, Kobold Letters-এর উপর আলোকপাত করে একটি নিবন্ধ প্রকাশ করেছে৷

আরো পড়ুন »