این صفحه حاوی موارد استفاده رایج برای AVF است.
گردآوری مجزا
بهعنوان یک محوطه امن نرمافزاری، ماشین مجازی (VM) محافظتشده
محیطی امن برای کامپایل کردن کد حساس به امنیت فراهم میکند.
این محیط امکان میدهد گردآوری
bootclasspath و سرور سیستم JAR (راهاندازیشده با بهروزرسانی APEX) از
راهاندازی اولیه به قبلاز بازراهاندازی منتقل شود و زمان راهاندازی پساز بهروزرسانی APEX را بهطور قابلتوجهی کاهش دهد.
پیادهسازی در com.android.compos APEX است. این مؤلفه اختیاری است و میتوان آن را بااستفاده از makefile اضافه کرد.
هدف امنیتی این است که ورودی درستیسنجیشده بهصورت صحیح گردآوری شود و برونداد در انزوا تولید شود؛ Android بهعنوان مشتری غیرقابلاعتماد نمیتواند برونداد گردآوری را بههیچوجه تغییر دهد، بهجز اینکه باعث شود برونداد ناموفق باشد (وقتی Android به گردآوری زمان راهاندازی برمیگردد).
سرویس کامپایل در VM فقط درصورتی امضا تولید میکند که درطول کل کامپایل خطایی وجود نداشته باشد. Android میتواند کلید عمومی را برای درستیسنجی امضا از ماشین مجازی بازیابی کند.
کلید ماشین مجازی از نمایه DICE ماشین مجازی تولید میشود که توسط APEXها و APKهای نصبشده روی ماشین مجازی، علاوهبر دیگر پارامترهای ماشین مجازی، مثل قابلیت اشکالزدایی، تعریف میشود.
برای تعیین اینکه کلید عمومی از ماشین مجازی غیرمنتظرهای نیست، Android ماشین مجازی را راهاندازی میکند تا درست بودن کلید را تعیین کند. پساز هر بهروزرسانی APEX، ماشین مجازی در بوت اولیه راهاندازی میشود.
با «راهاندازی درستیسنجیشده ماشین مجازی محافظتشده»، سرویس گردآوری فقط کد درستیسنجیشده را اجرا میکند. درنتیجه، کد میتواند تعیین کند که فقط ورودیهایی را بپذیرد که شرایط خاصی را برآورده میکنند، برای مثال، فایل ورودی را فقط درصورتی بپذیرد که نام آن و خلاصه fs-verity در فهرست مجاز تعریف شده باشد.
هرگونه میانای برنامهسازی کاربردی افشاشده از ماشین مجازی سطح حمله است. همه فایلهای ورودی و پارامترها ازسوی مشتری غیرقابلاعتماد درنظر گرفته میشوند و باید قبلاز پردازش درستیسنجی و بررسی شوند.
یکپارچگی فایل ورودی و خروجی توسط ماشین مجازی تأیید میشود و فایلها در Android بهعنوان سرور فایل نامطمئن ذخیره میشوند، به این صورت:
- محتوای فایل ورودی باید قبلاز استفاده بااستفاده از الگوریتم
fs-verityدرستیسنجی شود. برای اینکه فایل ورودی در ماشین مجازی دردسترس قرار گیرد، درونپاش ریشه آن باید در یک محتوی (APK) که در نمایه DICE ماشین مجازی نقش دارد ارائه شود. با درهمسازی ریشه مطمئن، مهاجم نمیتواند بدون شناسایی شدن، ورودی را دستکاری کند. - یکپارچگی فایل خروجی باید در ماشین مجازی حفظ شود. حتی اگر فایل برونداد در Android ذخیره شود، درطول تولید، یکپارچگی با همان قالب درخت
fs-verityحفظ میشود اما میتواند بهصورت پویا بهروز شود. فایل برونداد نهایی را میتوان با مقدار درهمسازی ریشه شناسایی کرد، که در ماشین مجازی مجزا شده است. سرویس موجود در ماشین مجازی با امضا از فایلهای برونداد محافظت میکند.
محیط توسعه نرمافزار Linux
Android بهطور سنتی تنها سیستمعامل اصلی بوده است که به کاربران اجازه نمیدهد در خود پلاتفرم برنامه توسعه دهند. با معرفی محیط توسعه نرمافزار Linux، هدف ما ارائه محیط توسعه نرمافزار مبتنی بر Linux به کاربران Android است که توسعهدهنده هستند. در آینده، قصد داریم تلاشهایمان را گسترش دهیم تا شرکایمان بتوانند موارد استفاده نوآورانه ماشین مجازی را، مثل اجرای برنامههای رابط کاربری گرافیکی و حتی بازیها، پیادهسازی کنند.
محیط توسعه نرمافزار Linux در دستگاههای منتخب دردسترس است و در ماشین مجازی غیرمحافظتشده اجرا میشود.
جریان سطح بالا به شرح زیر است:
- برای استفاده از محیط توسعه نرمافزار Linux، گزینههای توسعهدهندگان را فعال کنید.
- پساز فعال کردن گزینههای توسعهدهندگان، برنامه «پایانه» در راهانداز صفحه اصلی شما نشان داده میشود.
- برنامه «پایانه» را از راهانداز صفحه اصلیتان راهاندازی کنید.
- درصورت نیاز، برنامه «پایانه» تصویر سیستمعامل را از Play بارگیری میکند.
- برنامه «ترمینال» از «چارچوب مجازیسازی Android» (AVF) برای ایجاد ماشین مجازی (VM) استفاده میکند.
- سپس AVF ماشین مجازی را با تصویر سیستمعامل اجرا میکند.
- ماشین مجازی سیستمعامل را از تصویر راهاندازی میکند.
- پساز راهاندازی ماشین مجازی، «وبنما» در برنامه «پایانه» به سرویس وب در ماشین مجازی متصل میشود. این سرویس دسترسی به پایانه را ازطریق HTTP فراهم میکند.
- با وارد کردن فرمانها و مشاهده برونداد در برنامه با پایانه تعامل میکنید.
مؤلفههای سطح بالای «ماشین مجازی Linux» به شرح زیر است:
- برنامه «پایانه»: برنامه Android که میانای پایانه ارائه میدهد. این برنامه از «وبنما» برای اتصال به سرویس وبی که در ماشین مجازی اجرا میشود استفاده میکند تا تعامل برقرار کند. این برنامه بهطور پیشفرض غیرفعال است. آن را در «تنظیمات توسعهدهنده» فعال کنید.
- چارچوب مجازیسازی Android (AVF): زیرسیستم موجود Android برای ایجاد و مدیریت ماشین مجازی. برای پشتیبانی از تصاویر سیستمعامل سفارشی برای این ویژگی، به حداقل تغییر نیاز است.
- ماشین مجازی: ماشین مجازیای که AVF تولید میکند. این سرویس میزبان سرویس پایانه است، و AVF آن را بهطور خاص برای عملکرد برنامه «پایانه» ایجاد میکند.
- تصویر سیستمعامل: تصویر سیستمعامل مبتنی بر Debian با کمی تغییر از Debian بالادستی. برنامه «پایانه» این تصویر را از سرور خارجی Google بارگیری میکند. این فایل بهعنوان پایه عملکرد ماشین مجازی عمل میکند.
- عامل مهمان: نرمافزار جدید در VM. این مؤلفه وضعیت سیستمعامل را به AVF گزارش میدهد و کنترل ماشین مجازی را فراهم میکند.
- ttyd: نرمافزار متنباز درحال اجرا در ماشین مجازی که شبیهسازی پایانه را ازطریق HTTP پیادهسازی میکند. «وبنمای» برنامه «ترمینال» به آن متصل میشود.
- مدیر اتصال: زیرسیستم Android موجود. با اتصال ماشین مجازی به دستگاه مجهز به Android، دسترسی به شبکه را برای ماشین مجازی فراهم میکند.
«ایمنی محتوا» در دستگاه
«ایمنی محتوا در دستگاه» یک راهکار ایمنی محتوا حافظ حریم خصوصی است که توسط «تیم ایمنی محتوا در دستگاه» ایجاد شده است. این میانای برنامهسازی کاربردی طبقهبندی ایمنی محتوا را برای محصولات مختلف Google در دستگاههای شخص اول/شخص ثالث انجام میدهد و از بیشاز ۱ میلیارد کاربر دربرابر محتوای سوءاستفادهگرانه محافظت میکند، بدون اینکه نیازی به ارسال دادههای کاربر به سرورهای Google باشد. این ویژگی بهگونهای طراحی شده است که از اصول هسته محاسباتی خصوصی (PCC) پیروی کند تا ارتباط شفاف و حافظ حریم خصوصی بین کارخواه و ماشین مجازی (VM) را تأیید کند و از هرگونه برونفرستی دادههای کاربر جلوگیری کند. از این ویژگی میتوان برای مواردی مثل فعال کردن تشخیص سوءاستفاده در دستگاهها، مثل شناسایی آنی تهدید در «سپر ایمنی Play» استفاده کرد.
در این مورد استفاده، سیستم از ماشینهای مجازی محافظتشده برای اجرای طبقهبندی مدل خود برای تشخیص آنی تهدید «سپر ایمنی Play» استفاده میکند که سپس امنیت مدلها و محافظتهای آن را بهطور قابلتوجهی افزایش میدهد. این کار با تأیید اینکه فقط کد تأییدشده اجرا میشود و عملیات آن از فرایندهای خارجی پنهان است، از مهندسی معکوس و دستکاری توسط مهاجمان، حتی در دستگاههای ریشهدار، جلوگیری میکند.
جریانهای سطح بالا به شرح زیر است:
- «تشخیص آنی تهدید» به «خدمات محاسباتی خصوصی» پیام میدهد تا ماشین مجازی را شروع کند. «خدمات محاسباتی خصوصی» واسطهای حریم خصوصیمحور بین «هسته محاسباتی خصوصی» و سرور ابری است
- «خدمات محاسباتی خصوصی» ماشین مجازی را راهاندازی میکند و کلید عمومی آن را از ماشین مجازی دریافت میکند
- «خدمات محاسباتی خصوصی» مالکیت ماشین مجازی را به «تشخیص زنده تهدیدات سپر ایمنی Play» واگذار میکند
- «خدمات محاسباتی خصوصی» گواهی و کلید عمومی را به سرور ارسال میکند
- سرور گواهی و محافظتهای رمزگذاری را با کلید عمومی ماشین مجازی تأیید میکند
- سپس سرور محافظتهای رمزگذاریشده را به دستگاه برمیگرداند
- سپس، «شناسایی آنی تهدید» دروندستگاهی میتواند از محافظت رمزگذاریشده در ماشین مجازی استفاده کند. «ماشین مجازی» تنها نهادی است که کلید خصوصی دارد و میتواند محافظتها را رمزگشایی کند
عناصر سطح بالا به شرح زیر است:
- سرور: محافظتهای رمزگذاریشده را رمزگذاری میکند و به ماشین مجازی تحویل میدهد
- خدمات رایانش خصوصی: برای راهاندازی VM و میانجیگری ارتباط با VM و نشان دادن شفافیت در این زمینه که هیچ داده کاربری ازطریق Astrea به سرور نمیرود استفاده میشود
- تشخیص آنی تهدید «سپر ایمنی Play»:
- حاوی طبقهبندیکنندههای مدل ارائهشده توسط «ایمنی محتوا» در دستگاه است و از آنها استفاده میکند
- مالکیت ماشین مجازی را میپذیرد و آن را برای استفاده در طبقهبندی نگه میدارد
- ماشین مجازی را درصورت نیاز شروع و متوقف میکند.
سازندگان اصلی محصول
سازنده اصلی تجهیزات میتواند از AVF برای موارد استفاده سفارشی استفاده کند. برای مثال، OPPO از AVF برای فعال کردن فضای محاسباتی خصوصی هوش مصنوعی استفاده میکند. اولین برنامه این فضا راهحل کنترل خطر در دستگاه برای مشتریان برنامه ارائه میدهد که در ماشین مجازی اجرا میشود. این سیستم با تهدیدات ناشی از فعالیتهای غیرقانونی مقابله میکند و دربرابر خطرات مختلف محافظت ارائه میدهد.