লিনাক্সে অঙ্গীকার বিচ্ছিন্নকরণ প্রক্রিয়াটি পোর্ট করার পরিকল্পনা করা হয়েছে

সম্প্রতি কসমোপলিটান সি স্ট্যান্ডার্ড লাইব্রেরির লেখক এবং রেডবিন প্ল্যাটফর্মের মাধ্যমে ঘোষণা করা হয়েছে ঘোষণা করা হয়েছে, লিনাক্সের জন্য অঙ্গীকার() আইসোলেশন মেকানিজমের বাস্তবায়ন।

fue মূলত OpenBSD প্রজেক্ট দ্বারা বিকশিত y আপনাকে বেছে বেছে নিষিদ্ধ করার অনুমতি দেয় যে অ্যাপ্লিকেশনগুলি অব্যবহৃত সিস্টেম কলগুলি অ্যাক্সেস করে (অ্যাপ্লিকেশনের জন্য সিস্টেম কলের একটি সাদা তালিকা তৈরি করা হয়েছে এবং অন্যান্য কল নিষিদ্ধ)। লিনাক্সে উপলব্ধ syscall অ্যাক্সেস কন্ট্রোল মেকানিজমের বিপরীতে, যেমন seccomp, প্লেজ মেকানিজমকে গ্রাউন্ড আপ থেকে ডিজাইন করা হয়েছে যতটা সম্ভব ব্যবহারকারী-বান্ধব।

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

একটি বিকল্প হিসাবে, অঙ্গীকার প্রস্তাব করা হয়েছিল, যা বিশদ বিবরণে না গিয়ে এবং প্রস্তুত অ্যাক্সেস ক্লাস ম্যানিপুলেট না করে বিচ্ছিন্নতা নিয়ম তৈরি করার অনুমতি দেওয়া হয়েছে.

উদাহরণস্বরূপ, দেওয়া ক্লাসগুলি হল stdio (ইনপুট/আউটপুট), rpath (শুধু ফাইলগুলি পড়ুন), wpath (ফাইলগুলি লিখুন), cpath (ফাইলগুলি তৈরি করুন), tmppath (অস্থায়ী ফাইলগুলির সাথে কাজ করুন), inet (সকেট নেটওয়ার্ক), ইউনিক্স (ইউনিক্স সকেটগুলি) ), dns (DNS রেজোলিউশন), getpw (ইউজার ডাটাবেসে পড়ার অ্যাক্সেস), ioctl (ioctl কল), proc (প্রসেস কন্ট্রোল), exec (স্টার্টআপ প্রসেস), এবং আইডি (অনুমতি নিয়ন্ত্রণ)।

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

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

অঙ্গীকার হল নিষিদ্ধ ফলের মত যা আমরা সকলেই কামনা করি যখন বস বলেন আমাদের লিনাক্সের মত জিনিস ব্যবহার করা উচিত। কেন যে ব্যাপার? কারণ প্রতিশ্রুতি() আসলে নিরাপত্তাকে বোধগম্য করে তোলে। লিনাক্সে কখনোই এমন নিরাপত্তার স্তর ছিল না যা নিছক মানুষ বুঝতে পারে।

লিনাক্স প্রতিশ্রুতি পোর্ট ডেভেলপাররা FreeBSD থেকে একটি সূত্র গ্রহণ করেছে এবং কোড পরিবর্তন করার পরিবর্তে, তারা pledge.com থেকে একটি অতিরিক্ত ইউটিলিটি প্রস্তুত করেছে যা আপনাকে অ্যাপ্লিকেশন কোড পরিবর্তন না করে বিধিনিষেধ প্রয়োগ করতে দেয়। উদাহরণস্বরূপ, শুধুমাত্র stdio, rpath, inet এবং threadstdio সিস্টেম কল ক্লাসে অ্যাক্সেস সহ কার্ল ইউটিলিটি চালানোর জন্য, "./pledge.com -p 'stdio rpath inet থ্রেড' curl http://example.com » চালান .

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

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

বাস্তবায়নের জন্য কার্নেল পরিবর্তনের প্রয়োজন নেই: ইউটিলিটি সীমাবদ্ধতাগুলি SECOMP BPF নিয়মে অনুবাদ করা হয় এবং লিনাক্সের নেটিভ সিস্টেম কল আইসোলেশন মেকানিজম ব্যবহার করে প্রক্রিয়া করা হয়। উদাহরণস্বরূপ, কল করার প্রতিশ্রুতি("stdio rpath", 0) একটি BPF ফিল্টারে রূপান্তরিত হবে

পরিশেষে, যদি আপনি এটি সম্পর্কে আরও জানতে আগ্রহী হন, তাহলে আপনি বিস্তারিত জানতে পারেন নীচের লিঙ্কে।


আপনার মন্তব্য দিন

আপনার ইমেল ঠিকানা প্রকাশিত হবে না। প্রয়োজনীয় ক্ষেত্রগুলি দিয়ে চিহ্নিত করা *

*

*

  1. ডেটার জন্য দায়বদ্ধ: মিগুয়েল অ্যাঞ্জেল গাটান
  2. ডেটার উদ্দেশ্য: নিয়ন্ত্রণ স্প্যাম, মন্তব্য পরিচালনা।
  3. আইনীকরণ: আপনার সম্মতি
  4. তথ্য যোগাযোগ: ডেটা আইনি বাধ্যবাধকতা ব্যতীত তৃতীয় পক্ষের কাছে জানানো হবে না।
  5. ডেটা স্টোরেজ: ওসেন্টাস নেটওয়ার্কস (ইইউ) দ্বারা হোস্ট করা ডেটাবেস
  6. অধিকার: যে কোনও সময় আপনি আপনার তথ্য সীমাবদ্ধ করতে, পুনরুদ্ধার করতে এবং মুছতে পারেন।