স্যান্ডবক্সিং অবিশ্বস্ত কোড উপযোগী হয় যখন আপনাকে তৃতীয়-পক্ষের বিকাশিত সফ্টওয়্যারের উপর নির্ভর করতে হয় যেখানে আপনার সোর্স কোডে অ্যাক্সেস নেই বা আপনার কাছে সোর্স কোড মূল্যায়ন করার জন্য সংস্থান নেই৷ স্যান্ডবক্সিং আপনার নিজের কোডের জন্য অতিরিক্ত নিরাপত্তা সীমানা হিসাবেও কার্যকর হতে পারে।
আপনার ব্যবহারের ক্ষেত্রে নির্ভর করে, কোড ধারণ করার জন্য বিভিন্ন সরঞ্জাম উপলব্ধ। নীচের টেবিলটি বিভিন্ন পণ্য এবং তাদের প্রযোজ্য ব্যবহারের ক্ষেত্রে একটি ওভারভিউ দেয়। এই পণ্যগুলির মধ্যে কিছু Google-এর মধ্যে ব্যবহার করা হয় এবং Google ইঞ্জিনিয়ারদের দ্বারা বিকাশ করা হয়।
স্যান্ডবক্স২ এবং স্যান্ডবক্সড এপিআই হল দুটি পণ্য যা Google নিরাপত্তা দলের স্যান্ডবক্সিং বিভাগ দ্বারা তৈরি করা হয়েছে।
পণ্য | বর্ণনা | ব্যবহারের ক্ষেত্রে |
---|---|---|
স্যান্ডবক্স2 | লিনাক্স স্যান্ডবক্সিং নামস্থান, সম্পদ সীমা এবং seccomp-bpf syscall ফিল্টার ব্যবহার করে। স্যান্ডবক্সড API-এর জন্য অন্তর্নিহিত স্যান্ডবক্সিং প্রযুক্তি প্রদান করে। | সাধারণ স্যান্ডবক্সিং |
gVisor | একটি অ্যাপ্লিকেশন কার্নেলের মধ্যে সিস্টেম কল প্রয়োগ করে। ptrace ব্যবহার করে বা হার্ডওয়্যার ভার্চুয়ালাইজেশনের মাধ্যমে সিস্টেম কল ইন্টারসেপ্ট করে। | সাধারণ স্যান্ডবক্সিং |
বুদবুদ | স্যান্ডবক্সিং টুল ব্যবহারকারীর নামস্থানের একটি উপসেট সহ প্রয়োগ করা হয়েছে। একটি এক্সিকিউশন ইঞ্জিন হিসাবে ব্যবহৃত হয় উদাহরণস্বরূপ Flatpak. | CLI টুলস |
মিনিজেল | ChromeOS এবং Android-এ ব্যবহৃত স্যান্ডবক্সিং এবং কন্টেনমেন্ট টুল। একটি এক্সিকিউটেবল এবং একটি লাইব্রেরি প্রদান করে যা অন্যান্য প্রোগ্রাম এবং কোড লঞ্চ এবং স্যান্ডবক্স করতে ব্যবহার করা যেতে পারে। | CLI টুলস |
এনএসজেল | নেমস্পেস, রিসোর্স লিমিট এবং seccomp-bpf syscall ফিল্টার ব্যবহার করে লিনাক্সের জন্য প্রসেস আইসোলেশন। syscall নীতি নির্দিষ্ট করার জন্য ঐচ্ছিকভাবে Kafel , একটি কাস্টম ডোমেন নির্দিষ্ট ভাষা ব্যবহার করতে পারে। | CLI টুলস |
স্যান্ডবক্সড API | Sandbox2 ব্যবহার করে C/C++ লাইব্রেরির জন্য পুনরায় ব্যবহারযোগ্য স্যান্ডবক্স। | C/C++ কোড |
নেটিভ ক্লায়েন্ট | অবচয় x86 (NaCl)/LLVM বাইটকোড (PNaCl) এর একটি সীমাবদ্ধ উপসেটে কম্পাইল করে C/C++ বাইনারি স্যান্ডবক্স করার শক্তিশালী কৌশল। এর উত্তরসূরি (WebAssembly) এর নকশাকে প্রভাবিত করেছে এবং মূলত এটি দ্বারা প্রতিস্থাপিত হয়েছে। | C/C++ কোড |
ওয়েব অ্যাসেম্বলি (WASM) | পোর্টেবল বাইনারিগুলির জন্য একটি বাইনারি বিন্যাস। WASM মডিউলগুলি বিচ্ছিন্ন রানটাইম পরিবেশে কার্যকর করা হয়। | C/C++ কোড |
আরএলবক্স | একটি স্যান্ডবক্সিং API (C++17 এ লেখা), যা বিভিন্ন এক্সিকিউশন ব্যাকএন্ড ব্যবহার করতে পারে: নেটিভ ক্লায়েন্ট, ওয়েব অ্যাসেম্বলি বা দূরবর্তী প্রক্রিয়া। | C/C++ কোড |
ফ্ল্যাটপ্যাক | Bubblewrap এর উপরে নির্মিত, Linux ডেস্কটপ অ্যাপ্লিকেশনের জন্য স্যান্ডবক্সিং প্রদান করে। দেশীয় অ্যাপের প্যাকেজিং এবং বিতরণের উপর জোর দেয়। | ডেস্কটপ অ্যাপ্লিকেশন |
স্যান্ডবক্স2
স্যান্ডবক্স2 হল লিনাক্সের জন্য একটি ওপেন সোর্স সি++ নিরাপত্তা স্যান্ডবক্স। স্যান্ডবক্স2-এর সাহায্যে আপনি সত্যিকারের ক্রিয়াকলাপের জন্য প্রয়োজনীয় ন্যূনতম রানটাইম পরিবেশকে সীমাবদ্ধ করতে পারেন, এইভাবে সম্ভাব্য কোড নির্বাহের দুর্বলতার প্রভাবকে সীমিত করে।
Sandbox2 সম্পূর্ণ প্রোগ্রাম বা C/C++ এ লেখা প্রোগ্রামের অংশ স্যান্ডবক্স করতে ব্যবহার করা যেতে পারে।
স্যান্ডবক্সড API
স্যান্ডবক্সড এপিআই (SAPI) হল স্যান্ডবক্স C/C++ লাইব্রেরির জন্য একটি ওপেন-সোর্স প্রকল্প। স্যান্ডবক্সড API সহ স্যান্ডবক্স করা লাইব্রেরিগুলি সহজেই পুনরায় ব্যবহার করা যেতে পারে, যা ভবিষ্যতের প্রকল্পগুলির জন্য বোঝা সরিয়ে দেয়। স্যান্ডবক্সড API-এর আগে, Google-এ ব্যবহারের জন্য উপলব্ধ স্যান্ডবক্সগুলির জন্য একটি প্রকল্পের প্রতিটি নতুন দৃষ্টান্তের সাথে অতিরিক্ত বাস্তবায়নের কাজ প্রয়োজন যেটি স্যান্ডবক্স করার উদ্দেশ্যে ছিল, এমনকি যদি এটি একই সফ্টওয়্যার লাইব্রেরি পুনরায় ব্যবহার করে। স্যান্ডবক্স 2 নীতিগুলি এবং স্যান্ডবক্সড প্রক্রিয়ায় প্রযোজ্য অন্যান্য বিধিনিষেধগুলি প্রতিবার পুনরায় প্রয়োগ করতে হয়েছিল, এবং কোডের বিশ্বস্ত এবং অবিশ্বস্ত অংশগুলির মধ্যে ডেটা বিনিময় প্রক্রিয়াগুলি স্ক্র্যাচ থেকে ডিজাইন করতে হয়েছিল।