ফাজিং
ফাজিং
ফাজিং কি?
সফটওয়্যার টেস্টিং এর একটি গুরুত্বপূর্ণ অংশ হলো ফাজিং। এটি একটি স্বয়ংক্রিয় কৌশল, যেখানে কোনো প্রোগ্রামের দুর্বলতা খুঁজে বের করার জন্য ভুল, অপ্রত্যাশিত বা এলোমেলো ডেটা ইনপুট হিসেবে দেওয়া হয়। এই প্রক্রিয়ার মূল উদ্দেশ্য হলো প্রোগ্রাম ক্র্যাশ করে কিনা, মেমরি লিক করে কিনা অথবা অন্য কোনো অপ্রত্যাশিত আচরণ করে কিনা তা পর্যবেক্ষণ করা। ফাজিংকে প্রায়শই "স্টupid testing" বলা হয়, কারণ এটি প্রোগ্রামকে উদ্দেশ্যহীন ইনপুট সরবরাহ করে এবং দেখে যে কী ঘটে। তবে, এই আপাতদৃষ্টিতে নির্বোধ পদ্ধতিটি সাইবার নিরাপত্তা এবং সফটওয়্যার গুণমান নিশ্চিত করতে অত্যন্ত কার্যকর।
ফাজিং এর ইতিহাস
ফাজিং এর ধারণাটি নতুন নয়। এটি প্রথম ১৯৭০-এর দশকে শুরু হয়েছিল, যখন প্রোগ্রামাররা তাদের কোড পরীক্ষা করার জন্য এলোমেলো ডেটা ব্যবহার করতেন। প্রথম দিকের ফাজিং সরঞ্জামগুলি ছিল বেশ সরল, কিন্তু সময়ের সাথে সাথে এগুলি আরও উন্নত হয়েছে। 1989 সালে Bart Miller ফাজিং নিয়ে প্রথম আনুষ্ঠানিক গবেষণা করেন এবং এরপর থেকে এটি একটি গুরুত্বপূর্ণ নিরাপত্তা পরীক্ষা কৌশল হিসেবে স্বীকৃতি লাভ করে। বর্তমানে, ফাজিং পেনিট্রেশন টেস্টিং এবং ভালনারেবিলিটি অ্যাসেসমেন্ট এর একটি অপরিহার্য অংশ।
ফাজিং কিভাবে কাজ করে?
ফাজিং প্রক্রিয়া সাধারণত তিনটি ধাপে সম্পন্ন হয়:
১. ইনপুট তৈরি: ফাজিং সরঞ্জামগুলি এলোমেলো বা বিকৃত ডেটা তৈরি করে, যা প্রোগ্রামের ইনপুট হিসেবে ব্যবহার করা হবে। এই ডেটা বিভিন্ন ফরম্যাটে হতে পারে, যেমন টেক্সট, বাইনারি, ছবি বা নেটওয়ার্ক প্যাকেট।
২. প্রোগ্রাম পরীক্ষা: তৈরি করা ডেটা প্রোগ্রামটিতে ইনপুট হিসেবে দেওয়া হয় এবং প্রোগ্রামের আচরণ পর্যবেক্ষণ করা হয়।
৩. ফলাফল বিশ্লেষণ: যদি প্রোগ্রাম ক্র্যাশ করে, মেমরি লিক করে বা অন্য কোনো অপ্রত্যাশিত আচরণ করে, তবে ফাজিং সরঞ্জামটি সেই তথ্য রেকর্ড করে এবং ডেভেলপারদের জানায়।
ফাজিং এর প্রকারভেদ
বিভিন্ন ধরনের ফাজিং কৌশল রয়েছে, যার প্রত্যেকটির নিজস্ব সুবিধা এবং অসুবিধা রয়েছে। এদের মধ্যে কয়েকটি প্রধান প্রকার নিচে উল্লেখ করা হলো:
- ব্ল্যাক বক্স ফাজিং: এই পদ্ধতিতে, পরীক্ষক প্রোগ্রামের অভ্যন্তরীণ কাঠামো সম্পর্কে কিছুই জানে না। এটি শুধুমাত্র ইনপুট সরবরাহ করে এবং আউটপুট পর্যবেক্ষণ করে।
- হোয়াইট বক্স ফাজিং: এই পদ্ধতিতে, পরীক্ষক প্রোগ্রামের অভ্যন্তরীণ কাঠামো সম্পর্কে সম্পূর্ণভাবে অবগত থাকে এবং সেই অনুযায়ী ইনপুট তৈরি করে। এটি প্রোগ্রামের প্রতিটি অংশকে পরীক্ষা করতে সাহায্য করে।
- গ্রে বক্স ফাজিং: এটি ব্ল্যাক বক্স এবং হোয়াইট বক্স ফাজিংয়ের একটি মিশ্রণ। পরীক্ষক প্রোগ্রামের কিছু অংশ সম্পর্কে জানে এবং সেই জ্ঞান ব্যবহার করে আরও কার্যকর ইনপুট তৈরি করে।
- কভারেজ-গাইডেড ফাজিং: এই পদ্ধতিতে, ফাজিং সরঞ্জামটি প্রোগ্রামের কোড কভারেজ ট্র্যাক করে এবং সেই অনুযায়ী ইনপুট তৈরি করে, যাতে প্রোগ্রামের নতুন অংশগুলি পরীক্ষা করা যায়। কোড কভারেজ একটি গুরুত্বপূর্ণ মেট্রিক।
- মিউটেশন-ভিত্তিক ফাজিং: এই পদ্ধতিতে, বৈধ ইনপুটগুলির সামান্য পরিবর্তন করে নতুন ইনপুট তৈরি করা হয়।
- জেনারেশন-ভিত্তিক ফাজিং: এই পদ্ধতিতে, স্ক্র্যাচ থেকে নতুন ইনপুট তৈরি করা হয়, যা নির্দিষ্ট ফরম্যাট বা প্রোটোকল মেনে চলে।
| প্রকার | বর্ণনা | সুবিধা | অসুবিধা | |
| ব্ল্যাক বক্স ফাজিং | প্রোগ্রামের অভ্যন্তরীণ কাঠামো অজানা | প্রয়োগ করা সহজ | কম কার্যকর | |
| হোয়াইট বক্স ফাজিং | প্রোগ্রামের অভ্যন্তরীণ কাঠামো জানা | অত্যন্ত কার্যকর | জটিল এবং সময়সাপেক্ষ | |
| গ্রে বক্স ফাজিং | প্রোগ্রামের কিছু অংশ জানা | ভাল ভারসাম্য | অতিরিক্ত জ্ঞানের প্রয়োজন | |
| কভারেজ-গাইডেড ফাজিং | কোড কভারেজ ট্র্যাক করে | উচ্চ কভারেজ | রিসোর্স ইনটেনসিভ | |
| মিউটেশন-ভিত্তিক ফাজিং | বৈধ ইনপুট পরিবর্তন করে | সহজ বাস্তবায়ন | সীমিত বৈচিত্র্য | |
| জেনারেশন-ভিত্তিক ফাজিং | স্ক্র্যাচ থেকে ইনপুট তৈরি করে | উচ্চ বৈচিত্র্য | সঠিক ফরম্যাট বোঝা কঠিন |
ফাজিং এর ব্যবহার
ফাজিং বিভিন্ন ধরনের সফটওয়্যার এবং সিস্টেম পরীক্ষা করার জন্য ব্যবহার করা যেতে পারে, যেমন:
- অপারেটিং সিস্টেম: লিনাক্স, উইন্ডোজ, এবং ম্যাকওএস এর মতো অপারেটিং সিস্টেমের নিরাপত্তা ত্রুটি খুঁজে বের করতে ফাজিং ব্যবহার করা হয়।
- ওয়েব ব্রাউজার: গুগল ক্রোম, ফায়ারফক্স, এবং সফারি এর মতো ওয়েব ব্রাউজারের দুর্বলতা খুঁজে বের করতে ফাজিং ব্যবহার করা হয়।
- নেটওয়ার্ক প্রোটোকল: টিসিপি/আইপি, এইচটিটিপি, এবং এসএসএল/টিএলএস এর মতো নেটওয়ার্ক প্রোটোকলের নিরাপত্তা ত্রুটি খুঁজে বের করতে ফাজিং ব্যবহার করা হয়।
- ফাইল ফরম্যাট: পিডিএফ, জেপিইজি, এবং এমএস ওয়ার্ড এর মতো ফাইল ফরম্যাটের দুর্বলতা খুঁজে বের করতে ফাজিং ব্যবহার করা হয়।
- অ্যাপ্লিকেশন সফটওয়্যার: বিভিন্ন ধরনের অ্যাপ্লিকেশন সফটওয়্যার, যেমন অফিস স্যুট, মিডিয়া প্লেয়ার, এবং ডাটাবেস ম্যানেজমেন্ট সিস্টেম পরীক্ষা করতে ফাজিং ব্যবহার করা হয়।
ফাজিং সরঞ্জাম
বাজারে বিভিন্ন ধরনের ফাজিং সরঞ্জাম পাওয়া যায়, যেমন:
- American Fuzzy Lop (AFL): এটি একটি জনপ্রিয় কভারেজ-গাইডেড ফাজিং সরঞ্জাম।
- LibFuzzer: এটি LLVM প্রকল্পের একটি অংশ এবং এটি ইন-প্রসেস ফাজিংয়ের জন্য ডিজাইন করা হ
এখনই ট্রেডিং শুরু করুন
IQ Option-এ নিবন্ধন করুন (সর্বনিম্ন ডিপোজিট $10) Pocket Option-এ অ্যাকাউন্ট খুলুন (সর্বনিম্ন ডিপোজিট $5)
আমাদের সম্প্রদায়ে যোগ দিন
আমাদের টেলিগ্রাম চ্যানেলে যোগ দিন @strategybin এবং পান: ✓ দৈনিক ট্রেডিং সংকেত ✓ একচেটিয়া কৌশলগত বিশ্লেষণ ✓ বাজারের প্রবণতা সম্পর্কে বিজ্ঞপ্তি ✓ নতুনদের জন্য শিক্ষামূলক উপকরণ

