এই পৃষ্ঠায় AVF-এর সাধারণ ব্যবহারিক প্রয়োগ সম্পর্কে বলা আছে।
আইসোলেটেড কম্পাইলেশন
সফ্টওয়্যার-সুরক্ষিত এনক্লেভ হিসেবে, সুরক্ষিত ভার্চুয়াল মেশিন (VM) নিরাপত্তা-সংবেদনশীল কোড কম্পাইল করার জন্য
নিরাপদ এনভায়রনমেন্ট প্রদান করে।
এই এনভায়রনমেন্ট, bootclasspath এবং সিস্টেম সার্ভার JAR-এর (APEX আপডেট দ্বারা ট্রিগার করা) কম্পাইলেশনকে
আর্লি বুট থেকে
রি-বুট করার আগে পর্যন্ত সরানোর অনুমতি দেয় এবং APEX
আপডেট করার পরে বুট করার সময়কে উল্লেখযোগ্যভাবে কমিয়ে দেয়।
com.android.compos APEX-এ প্রয়োগ করা হয়েছে। এই
কম্পোনেন্ট ঐচ্ছিক এবং makefile ব্যবহার করে অন্তর্ভুক্ত করা যেতে পারে।
নিরাপত্তা সংক্রান্ত লক্ষ্য হল, যাচাই করা ইনপুট সঠিকভাবে কম্পাইল করা এবং আইসোলেশনে আউটপুট তৈরি করা; Android একটি বিশ্বস্ত ক্লায়েন্ট না হওয়ার কারণে, কম্পাইলেশন আউটপুট কোনওভাবেই পরিবর্তন করতে পারে না, তবে এটি ব্যর্থ হতে পারে (যখন Android বুট টাইম কম্পাইলেশনে ফিরে যায়)।
VM-এ কম্পাইলেশন পরিষেবা শুধুমাত্র তখনই একটি সিগনেচার তৈরি করে যদি সম্পূর্ণ কম্পাইলেশন প্রক্রিয়া চলাকালীন কোনও সমস্যা না হয়। Android, সিগনেচার যাচাইকরণের জন্য VM থেকে পাবলিক কী রিট্রিভ করতে পারে।
VM-এর'কী' VM-এর DICE প্রোফাইল থেকে তৈরি করা হয়, যা APEX এবং VM-এ মাউন্ট করা APK দ্বারা সংজ্ঞায়িত করা হয়, এর সাথে অন্যান্য VM প্যারামিটারও থাকে, যেমন ডিবাগ করার ক্ষমতা।
সর্বজনীন কী কোনও অপ্রত্যাশিত VM থেকে এসেছে কিনা তা নির্ধারণ করতে, Android VM বুট করে দেখে যে কীটি সঠিক কিনা। প্রতিটি APEX আপডেটের পরে VM প্রাথমিক বুটেই বুট হয়।
সুরক্ষিত VM-এর যাচাই করা বুটের মাধ্যমে, কম্পাইলেশন পরিষেবা শুধুমাত্র যাচাই করা
কোড রান করে। এর ফলে, কোডটি শুধুমাত্র সেইসব ইনপুট গ্রহণ করার সিদ্ধান্ত নিতে পারে যা
নির্দিষ্ট শর্ত পূরণ করে, যেমন, শুধুমাত্র সেই ইনপুট ফাইল গ্রহণ করা যার
নাম এবং fs-verity ডাইজেস্ট একটি অনুমোদিত তালিকায় সংজ্ঞায়িত করা আছে।
VM থেকে যেকোনও এক্সপোজড API হল অ্যাটাক সারফেস। সব ইনপুট ফাইল ও প্যারামিটারকে কোনও বিশ্বস্ত নয় এমন ক্লায়েন্টের থেকে পাওয়া বলে ধরে নেওয়া হয় এবং প্রসেস করার আগে অবশ্যই যাচাই ও পরীক্ষা করে নিতে হবে।
VM ইনপুট ও আউটপুট ফাইলের ইন্টিগ্রিটি যাচাই করে। ফাইলগুলি Android-এ অবিশ্বস্ত ফাইল সার্ভার হিসেবে সেভ করা থাকে। এটি কীভাবে করা হয় তা নিচে উল্লেখ করা হল:
- ইনপুট ফাইলের কন্টেন্ট ব্যবহার করার আগে
fs-verityঅ্যালগরিদম ব্যবহার করে যাচাই করতে হবে। VM-এ ইনপুট ফাইল উপলভ্য করার জন্য, এর রুট হ্যাশ অবশ্যই এমন কন্টেনারে (APK) প্রদান করতে হবে যা VM-এর DICE প্রোফাইলে কন্ট্রিবিউট করে। বিশ্বস্ত রুট হ্যাশ থাকলে, কোনও অ্যাটাকার শনাক্ত না হয়ে ইনপুট নিয়ে কারচুপি করতে পারবে না। - VM-এ আউটপুট ফাইলের অখণ্ডতা বজায় রাখতে হবে। এমনকি, Android-এ কোনও আউটপুট ফাইল সেভ করা থাকলেও, জেনারেশনের সময়, একই
fs-verityট্রি ফর্ম্যাট ব্যবহার করে অখণ্ডতা বজায় রাখা হয়, তবে তা ডাইনামিক আপডেট করা যেতে পারে। ফাইনাল আউটপুট ফাইলটি রুট হ্যাশ দিয়ে শনাক্ত করা যায়, যা VM-এ আইসোলেট করা হয়। VM-এ পরিষেবাটি সিগনেচারের মাধ্যমে আউটপুট ফাইলগুলিকে সুরক্ষিত করে।
Linux ডেভেলপমেন্ট এনভায়র্নমেন্ট
Android হল একমাত্র প্রধান অপারেটিং সিস্টেম যা ব্যবহারকারীদের প্ল্যাটফর্মেই অ্যাপ ডেভেলপ করতে দেয় না। Linux ডেভেলপমেন্ট এনভায়রনমেন্ট চালু করার মাধ্যমে, আমরা সেইসব Android ব্যবহারকারী ডেভেলপারদের Linux-ভিত্তিক ডেভেলপমেন্ট এনভায়রনমেন্ট প্রদান করতে চাই। ভবিষ্যতে, আমরা এই প্রচেষ্টা আরও প্রসারিত করার পরিকল্পনা করেছি যাতে আমাদের পার্টনাররা গ্রাফিক্যাল ইউজার ইন্টারফেস অ্যাপ এবং এমনকি গেম চালানোর মতো ইনোভেশন VM ব্যবহার করার ক্ষেত্রে সুবিধা পান।
Linux ডেভেলপমেন্ট এনভায়র্নমেন্ট বাছাই করা ডিভাইসে উপলভ্য এবং এটি সুরক্ষিত নয় এমন ভার্চুয়াল মেশিনে চলে।
হাই-লেভেল ফ্লো নিচে উল্লেখ করা হল:
- Linux ডেভেলপমেন্ট এনভায়রনমেন্ট ব্যবহার করতে, ডেভেলপার বিকল্প চালু করুন।
- আপনি ডেভেলপার বিকল্প চালু করার পরে, আপনার হোম লঞ্চারে Terminal অ্যাপ দেখা যাবে।
- আপনার হোম লঞ্চার থেকে Terminal অ্যাপ লঞ্চ করুন।
- প্রয়োজন হলে, Terminal অ্যাপ Play থেকে OS ইমেজ ডাউনলোড করে।
- Terminal অ্যাপ, ভার্চুয়াল মেশিন (VM) তৈরি করতে Android Virtualization Framework (AVF) ব্যবহার করে।
- AVF তারপরে OS ইমেজ সহ VM রান করে।
- ভার্চুয়াল মেশিন, ইমেজ থেকে OS বুট করে।
- VM বুট করার পরে, Terminal অ্যাপের WebView ভার্চুয়াল মেশিনের একটি ওয়েব সার্ভিসের সাথে কানেক্ট করে। এই পরিষেবা HTTP-এর মাধ্যমে টার্মিনাল অ্যাক্সেস প্রদান করে।
- আপনি কমান্ড লিখে এবং অ্যাপে আউটপুট দেখে টার্মিনালের সাথে ইন্টার্যাক্ট করেন।
Linux VM-এর হাই-লেভেল কম্পোনেন্টগুলি হল:
- Terminal অ্যাপ: একটি Android অ্যাপ্লিকেশন যা টার্মিনাল ইন্টারফেস প্রদান করে। এটি ইন্টার্যাকশনের জন্য VM-এ রান করা ওয়েব পরিষেবার সাথে কানেক্ট করতে WebView ব্যবহার করে। এই অ্যাপ ডিফল্ট হিসেবে বন্ধ করা থাকে। 'ডেভেলপার সেটিংস' থেকে এটি চালু করুন।
- Android ভার্চুয়ালাইজেশন ফ্রেমওয়ার্ক (AVF): VM তৈরি ও ম্যানেজ করার জন্য Android-এর বর্তমান সাবসিস্টেম। এই ফিচারের জন্য কাস্টম OS ছবি কাজ করার জন্য এতে সামান্য পরিবর্তন করতে হয়।
- ভার্চুয়াল মেশিন: AVF তৈরি করে এমন VM। এটি টার্মিনাল পরিষেবা হোস্ট করে, এবং AVF বিশেষভাবে Terminal অ্যাপের কার্যকারিতার জন্য এটি তৈরি করে।
- OS ইমেজ: আপস্ট্রিম Debian থেকে সামান্য পরিবর্তিত Debian-ভিত্তিক OS ইমেজ। Terminal অ্যাপটি এক্সটার্নাল Google সার্ভার থেকে এই ছবিটি ডাউনলোড করে। এটি VM-এর অপারেশনের ভিত্তি হিসেবে কাজ করে।
- অতিথি এজেন্ট: VM-এ নতুন সফ্টওয়্যার। এটি AVF-এ OS-এর স্ট্যাটাস রিপোর্ট করে এবং ভার্চুয়াল মেশিনের কন্ট্রোল প্রদান করে।
- ttyd: VM-এ চলা ওপেন-সোর্স সফ্টওয়্যার যা HTTP-তে টার্মিনাল ইমুলেশন প্রয়োগ করে। Terminal অ্যাপের WebView এটির সাথে কানেক্ট করে।
- টেথারিং ম্যানেজার: আগে থেকে থাকা Android সাবসিস্টেম। এটি Android-পরিচালিত ডিভাইসের সাথে VM টিথার করার মাধ্যমে ভার্চুয়াল মেশিনে নেটওয়ার্ক অ্যাক্সেস প্রদান করে।
ডিভাইসে কন্টেন্ট নিরাপত্তা
Content Safety On-device হল গোপনীয়তা সুরক্ষিত রাখা কন্টেন্ট নিরাপত্তা সংক্রান্ত সমাধান যা Content Safety On-device টিম তৈরি করেছে। এটি 1P/3P ডিভাইসে বিভিন্ন Google প্রোডাক্টের জন্য কন্টেন্ট নিরাপত্তা শ্রেণীবিভাগ পারফর্ম করে এবং Google সার্ভারে ব্যবহারকারীর ডেটা ফেরত পাঠানোর প্রয়োজন ছাড়াই ১ বিলিয়নের বেশি ব্যবহারকারীকে আপত্তিজনক কন্টেন্ট থেকে রক্ষা করে। এটি প্রাইভেট কম্পিউট কোর (PCC) নীতি মেনে চলার জন্য ডিজাইন করা হয়েছে যাতে ক্লায়েন্ট, ভার্চুয়াল মেশিন (VM) এবং ব্যবহারকারীর ডেটা এক্সফিল্ট্রেশন প্রতিরোধ করার মধ্যে স্বচ্ছ ও গোপনীয়তা-সংরক্ষণকারী যোগাযোগ যাচাই করা যায়। এটি ডিভাইসে অপব্যবহার শনাক্তকরণ চালু করার মতো বিভিন্ন কাজের জন্য ব্যবহার করা যেতে পারে, যেমন Play Protect লাইভ হুমকি শনাক্তকরণ।
এই ব্যবহারের ক্ষেত্রে, সিস্টেমটি Play Protect লাইভ হুমকি শনাক্তকরণের জন্য তার মডেল শ্রেণীবিভাগ চালানোর জন্য সুরক্ষিত ভার্চুয়াল মেশিন ব্যবহার করে যা তারপরে এর মডেল এবং সুরক্ষার নিরাপত্তাকে উল্লেখযোগ্যভাবে উন্নত করে। এটি অনুমোদিত কোড রান এবং এর অপারেশনগুলি এক্সটার্নাল প্রসেস থেকে লুকানো থাকে। এর ফলে, এমনকি রুট করা ডিভাইসেও অ্যাটাকারদের দ্বারা রিভার্স ইঞ্জিনিয়ারিং এবং ম্যানিপুলেশন প্রতিরোধ করা যায়।
হাই লেভেল ফ্লো নিচে উল্লেখ করা হল:
- VM চালু করার জন্য লাইভ হুমকি শনাক্তকরণ, Private Compute Services-কে পিং করে। Private Compute Services হল PCC এবং ক্লাউড সার্ভারের মধ্যে গোপনীয়তা-কেন্দ্রিক মধ্যস্থতাকারী
- Private Compute Services VM শুরু করে এবং VM থেকে এর পাবলিক কী পায়
- Private Compute Services, VM-এর মালিকানা Play Protect লাইভ থ্রেট ডিটেকশনকে দেয়
- Private Compute Services সার্ভারে অ্যাটেস্টেশন ও পাবলিক কী পাঠায়
- VM পাবলিক কী ব্যবহার করে সার্ভার অ্যাটেস্টেশন ও এনক্রিপ্ট সুরক্ষা যাচাই করে
- সার্ভার তখন এনক্রিপ্ট করা সুরক্ষা ডিভাইসে ফেরত পাঠায়
- তারপর, অন-ডিভাইস লাইভ হুমকি শনাক্তকরণ VM-এর মধ্যে এনক্রিপ্ট করা সুরক্ষা ব্যবহার করতে পারে। VM হল একমাত্র এন্টিটি যার কাছে প্রাইভেট কী আছে এবং যা সুরক্ষা ডিক্রিপ্ট করতে পারে
হাই-লেভেল কম্পোনেন্টগুলি নিচে দেওয়া হল:
- সার্ভার: VM-এ এনক্রিপ্ট করা সুরক্ষা এনক্রিপ্ট করে ডেলিভার করা
- Private Compute Services: VM চালু করতে এবং VM-এর সাথে যোগাযোগ করতে ব্যবহার করা হয় এবং স্বচ্ছতা দেখায় যে কোনও ব্যবহারকারীর ডেটা Astrea-এর মাধ্যমে সার্ভারে যাচ্ছে না
- Play Protect লাইভ হুমকি শনাক্তকরণ:
- ডিভাইসে থাকা কন্টেন্ট সুরক্ষা ফিচার দ্বারা প্রদত্ত মডেল ক্লাসিফায়ার থাকে ও ব্যবহার করে
- VM-এর মালিকানা গ্রহণ করে এবং ক্লাসিফিকেশনের জন্য এটি হোল্ড করে
- প্রয়োজন মতো VM শুরু ও বন্ধ করে।
OEM
OEM কাস্টম ব্যবহারের ক্ষেত্রে AVF ব্যবহার করতে পারে। যেমন, OPPO তার AI প্রাইভেট কম্পিউটিং স্পেস চালু করতে AVF ব্যবহার করে। এই স্পেসের প্রথম অ্যাপ্লিকেশন অ্যাপ ক্লায়েন্টের জন্য অন-ডিভাইস ঝুঁকি নিয়ন্ত্রণ সমাধান প্রদান করে, যা ভার্চুয়াল মেশিনে রান করে। সিস্টেমটি বেআইনি অ্যাক্টিভিটি থেকে আসা হুমকিকে প্রতিহত করে, বিভিন্ন ধরনের বিপদ থেকে সুরক্ষা প্রদান করে।