Android Virtualization Framework (AVF) מספק סביבות ביצוע מאובטחות ופרטיות לביצוע קוד. AVF מתאים במיוחד לתרחישי שימוש שמתמקדים באבטחה, שבהם נדרשת ערובה חזקה יותר, ואפילו אימות רשמי, לבידוד בהשוואה לאלה שמוצעים בארגז החול של אפליקציות Android. ב-Android יש הטמעה לדוגמה של כל הרכיבים הדרושים להטמעת AVF. נכון לעכשיו, יש תמיכה ב-AVF רק במכשירי ARM64. באיור 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.