סקירה כללית על Android Virtualization Framework ‏ (AVF)

Android Virtualization Framework‏ (AVF) מספק סביבות ביצוע מאובטחות ופרטיות לביצוע קוד. AVF מתאים במיוחד לתרחישי שימוש שמתמקדים באבטחה, שבהם נדרשת ערובה חזקה יותר, ואפילו אימות רשמי, לבידוד בהשוואה לאלה שמוצעים בארגז החול של אפליקציות Android. ב-Android יש הטמעה לדוגמה של כל הרכיבים הדרושים להטמעת AVF. נכון לעכשיו, יש תמיכה ב-AVF רק במכשירי ARM64. באיור 1 מוצגת הארכיטקטורה של AVF:

ארכיטקטורת AVF

איור 1. ארכיטקטורת AVF

אלה ההגדרות של המונחים החשובים ביותר מאיור 1:

apexd ו-zipfuse
חיבור מאובטח של קובצי APEX ו-APK שיובאו מהמארח.
authfs
מערכת קבצים ממוזגת לשיתוף מאובטח של מספר קבצים בין Android ל-pVM (מארח ואורח).
binder
האמצעים העיקריים לתקשורת בין מכונות וירטואליות.
crosvm
מעקב אחרי מכונות וירטואליות שנכתב ב-Rust. ‏ crosvm מקצה זיכרון למכונה הווירטואלית, יוצר חוטי מעבד וירטואליים ומטמיע את הקצוות העורפיים של המכשיר הווירטואלי.
Generic Kernel Image‏ (GKI)
תמונת אתחול שאושרה על ידי Google ומכילה ליבה (kernel) של GKI שמבוססת על עץ מקור של Android Common Kernel (ACK), ומתאימה לראווה למחיצת ההפעלה של מכשיר Android. מידע נוסף זמין בסקירה הכללית על הליבה.
hypervisor
טכנולוגיית הווירטואליזציה שבה משתמשת AVF, שנקראת גם pKVM. המכונה הווירטואלית מאפשרת לשמור על תקינות הקוד ועל הסודיות של הנכסים של ה-pVM, גם אם המארח של Android או כל אחד מה-pVMs האחרים נפרצו.
Java API
ממשקי ה-API של Java ל-VirtualizationService, שנמצאים רק במכשירים עם תמיכה ב-AVF. ממשקי ה-API האלה הם אופציונליים ולא חלק מ-thebootclasspath.
Microdroid
מערכת הפעלה Android מיני של Google שפועלת ב-pVM.
Microdroid Manager
מנהל את מחזור החיים של ה-pVM, בתוך ה-pVM ודיסק המכונה.
API מקורי
קבוצת משנה של Android Native Developers Kit (NDK).
מכונה וירטואלית מבוססת-ליבה מוגנת (pKVM)
מידע נוסף זמין במאמר Hypervisor.
קושחת pVM (pvmfw)
הקוד הראשון שפועל ב-pVM, pvmfw, מאמת את עומס העבודה ומפיק את הסוד לכל מכונה וירטואלית.
מכונה וירטואלית מוגנת (pVM)

סביבת הפעלה מבודדת ('אורח') ללא אמון הדדי, שפועלת לצד מערכת ההפעלה הראשית של Android ('מארח'). מכונות pVM מנוהלות על ידי pKVM.

בהשוואה לסביבות מחשוב מהימנות (TEE) קיימות, מכונות pVM מספקות סביבה עשירה יותר, כולל הפצה מיני של Android שנקראת Microdroid. אפשר להשתמש במכונות pVM באופן דינמי, והן מספקות קבוצה סטנדרטית של ממשקי API שזמינים בכל המכשירים שתומכים בהם.

VirtualizationService

שירות Android שמנהל את מחזור החיים של מכונות וירטואליות פרטיות (pVM).

מה השלב הבא?

  • כדי להבין טוב יותר את הצורך ב-AVF, אפשר לעיין במאמר למה AVF?.
  • במאמר תרחישי שימוש מוסבר איך אפשר להשתמש ב-AVF לצורך הידור מבודד.
  • להסבר מעמיק יותר על ארכיטקטורת ההטמעה של קובצי עזר של AVF, קראו את המאמר ארכיטקטורת AVF.
  • מידע נוסף על Microdroid זמין במאמר Microdroid.
  • במאמר אבטחה מוסבר איך AVF מטפל באבטחה.
  • כדי להבין את התפקיד של שירות הווירטואליזציה, אפשר לעיין במאמר VirtualizationService.
  • קוד המקור של AVF או הסבר מעמיק על רכיבים ספציפיים זמינים במאגר AOSP.