ইবিপিএফ(eBPF)

ইবিপিএফ(eBPF) , বা বর্ধিত বার্কলে প্যাকেট ফিল্টার (extended Berkeley Packet Filter), এমন একটি প্রযুক্তি যা কার্নেলের সোর্স কোড পরিবর্তন না করে বা লিনাক্স কার্নেল মডিউল লোড না করেই লিনাক্স সিস্টেমের কার্নেল স্পেসে ছোট, স্যান্ডবক্সড প্রোগ্রাম বা স্ক্রিপ্ট চালানোর অনুমতি দেয়।

একটি লিনাক্স সিস্টেমে দুইটি স্পেস আছে : কার্নেল এবং ইউজার স্পেস। কার্নেল অপারেটিং সিস্টেমের কোর এর প্রতিনিধিত্ব করে এবং এটি একমাত্র অংশ যার কাছে হার্ডওয়্যারের সীমাহীন অ্যাক্সেস রয়েছে ।

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

এটা যেসব সমস্যাতে দৃষ্টিপাত করে

সাধারণত, অ্যাপ্লিকেশনগুলো ইউজার স্পেসে চলে এবং যদি অ্যাপ্লিকেশনটির কার্নেল থেকে কিছু সুবিধার প্রয়োজন হয় (যেমন, কিছু হার্ডওয়্যার অ্যাক্সেস করার জন্য), এটি তথাকথিত “সিস্টেম কল” এর মাধ্যমে কার্নেল থেকে এটির জন্য অনুরোধ করে। বেশিরভাগ ক্ষেত্রে, এই পদ্ধতিটি ঠিক কাজ করে। যাইহোক, এমন কিছু উদাহরণ রয়েছে যেখানে ডেভেলপারদের নিম্ন-স্তরের সিস্টেম অ্যাক্সেসের জন্য আরও ফ্লেক্সিবিলিটি প্রয়োজন। পর্যবেক্ষণযোগ্যতা, নিরাপত্তা এবং নেটওয়ার্কিং ফিচারগুলো এর ভালো উদাহরণ। এটি অর্জন করতে, আমরা লিনাক্স কার্নেল মডিউল ব্যবহার করতে পারি, কার্নেল সোর্স কোড পরিবর্তন না করেই কার্নেল বেস প্রসারিত করতে পারি। যদিও লিনাক্স কার্নেল মডিউল ব্যবহার করার সুবিধা রয়েছে, এটি নিরাপত্তা ঝুঁকিও নিয়ে আসে। যেহেতু তারা কার্নেল স্পেসের মধ্যে কাজ করে, লিনাক্স কার্নেল মডিউলগুলো কার্নেলটি ক্র্যাশ করতে পারে এবং যখন কার্নেলটি ক্র্যাশ হয়, তখন পুরো মেশিনটির ক্ষেত্রেও তাই হয়। অতিরিক্তভাবে, কার্নেল মডিউলগুলোর কাছে অতিরিক্ত সুবিধা এবং সিস্টেম রিসোর্সগুলোর সরাসরি অ্যাক্সেস রয়েছে। এবং এটি সঠিকভাবে সুরক্ষিত না করা হলে, আক্রমণকারীরা এগুলোকে কাজে লাগাতে পারে ।

এটা কিভাবে সাহায্য করে

ইবিপিএফ লিনাক্স কার্নেল মডিউলের তুলনায় ব্যবহারকারী-সংজ্ঞায়িত প্রোগ্রামগুলো চালানোর জন্য আরও নিয়ন্ত্রিত এবং ধারণকৃত পরিবেশ প্রদান করে। এটি কার্নেলের মধ্যে একটি স্যান্ডবক্সযুক্ত পরিবেশে চলে, আইসোলেশন প্রদান করে এবং ঝুঁকি হ্রাস করে। যদি একটি ইবিপিএফ প্রোগ্রামে একটি দুর্বলতা বা ত্রুটি পাওয়া যায়, তবে এর প্রভাব সাধারণত স্যান্ডবক্সযুক্ত পরিবেশে সীমাবদ্ধ থাকে। তাছাড়া, একটি ইবিপিএফ প্রোগ্রাম কার্নেলে চলা শুরু করার আগে, এটিকে কিছু যাচাইকরণ পাস করতে হবে। যাচাইকারী উপাদান সম্ভাব্য নিরাপত্তা লঙ্ঘনের জন্য ইবিপিএফ প্রোগ্রাম চেক করে, যেমন সীমার বাইরে মেমরি অ্যাক্সেস, অসীম লুপ, এবং অননুমোদিত কার্নেল ফাংশন। এইভাবে, এটি নিশ্চিত করে যে প্রোগ্রামটি একটি অসীম লুপে প্রবেশ করবে না এবং কার্নেল ক্র্যাশ ঘটাবে না । এই নিরাপত্তা নিয়ন্ত্রণগুলো ইবিপিএফকে লিনাক্স কার্নেল মডিউলের তুলনায় লিনাক্স কার্নেলে অ্যাপ্লিকেশন চালানোর জন্য একটি অধিক নিরাপদ বিকল্প করে তোলে।


সর্বশেষ পরিবর্তিত February 24, 2024: [bn] Update main branch with dev-bn (#2894) (19b78e4)