AVF কেন?

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

অপারেটিং সিস্টেম, হার্ডওয়্যার মেমরি ম্যানেজমেন্ট ইউনিটের (MMU) সাহায্যে, এমন অ্যাবস্ট্রাকশন প্রদান করে যা একে অপরের থেকে সম্পর্কহীন প্রসেসকে আলাদা করে। শুধুমাত্র বিশ্বস্ত কম্পিউটিং বেস (TCB)-এর অংশ এমন কম্পোনেন্টকে এইসব MMU সরাসরি প্রোগ্রাম করার অনুমতি দেওয়া হয়।

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

Linux কার্নেলে ২০ মিলিয়নেরও বেশি কোড লাইন রয়েছে এবং পরিবর্তন ও পুনর্লিখন করার হার খুবই বেশি। এই বৃদ্ধি Android ও আমাদের ইকোসিস্টেমের জন্য অত্যন্ত সহায়ক। তবে, এর বড় TCB থাকার কারণে, এক্সপ্লয়েট করা যায় এমন দুর্বলতা যে নেই তা নিশ্চিত করা কঠিন।

হার্ডওয়্যার ভেন্ডররা Arm-এর TrustZone-এর মতো সমাধান তৈরি করেছে, যা প্রসেসরকে সুরক্ষিত মোডে রান করতে এবং মেমরি ট্রানজ্যাকশনকে "সুরক্ষিত" বা "অসুরক্ষিত" হিসেবে ট্যাগ করতে দেয়। এই ধরনের সিস্টেমে, সংবেদনশীল ডেটা সুরক্ষিত জগতে স্টোর করা হয় এবং শুধুমাত্র সরাসরি উপলভ্য থাকে। সুরক্ষিত জগৎ, চাহিদা অনুযায়ী অ-সুরক্ষিত জগৎকে পরিষেবা প্রদান করে।

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

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

এছাড়াও, Android অপারেটিং সিস্টেমের বাইরে ব্যবহৃত API গুলি ফ্র্যাগমেন্টেড এবং Keymint ও Gatekeeper-এর মতো ফান্ডামেন্টাল সহ Android স্কেলে ব্যবহারের কেসগুলি ডেপ্লয় করার আমাদের ক্ষমতাকে সীমাবদ্ধ করে।

এইসব সীমাবদ্ধতা দূর করতে এবং Android-কে পরবর্তী প্রজন্মের ব্যবহারের ক্ষেত্রে একটি শক্তিশালী ভিত্তি প্রদান করার জন্য, Android 13 Android ভার্চুয়ালাইজেশন ফ্রেমওয়ার্ক (AVF) হিসেবে নিরাপদ ভার্চুয়ালাইজেশন চালু করেছে।

AVF-এর মূল লক্ষ্য হল নেক্সট-জেনারেশন ব্যবহারের ক্ষেত্রে একটি সুরক্ষিত ও ব্যক্তিগত এক্সিকিউশন এনভায়রনমেন্ট প্রদান করা।