Android Virtualization Framework (AVF) מספק סביבות ביצוע מאובטחות ופרטיות לביצוע קוד. AVF מתאים במיוחד לתרחישי שימוש שמתמקדים באבטחה, שבהם נדרשת ערובה חזקה יותר, ואפילו אימות רשמי, לבידוד בהשוואה לאלה שמוצעים על ידי ארגז החול של אפליקציות ב-Android. ב-Android יש הטמעה לדוגמה של כל הרכיבים הדרושים להטמעת AVF. נכון לעכשיו, יש תמיכה ב-AVF רק במכשירי ARM64. איור 1 מציג את הארכיטקטורה של AVF:
אלה ההגדרות של המונחים החשובים ביותר שמוצגים באיור 1:
- apexd ו-zipfuse
- חיבור מאובטח של קובצי APEX ו-APK שיובאו מהמארח.
- authfs
- מערכת קבצים של fuse לשיתוף מאובטח של כמה קבצים בין Android ל-pVM (מארח וסועד).
- binder
- הדרך הראשית לתקשורת בין מכונות וירטואליות.
- crosvm
- מעקב אחרי מכונות וירטואליות שנכתב ב-Rust. crosvm מקצה זיכרון למכונה הווירטואלית, יוצר חוטי מעבד וירטואליים ומטמיע את הקצוות העורפיים של המכשיר הווירטואלי.
- Generic Kernel Image (GKI)
- קובץ אימג' של אתחול שאושר על ידי Google, שמכיל ליבה של GKI שנוצרה מעץ המקור של Android Common Kernel (ACK) ומתאים להעברה (flash) למחיצה של אתחול במכשיר 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 הוא שגם אם המארח נפרץ, אין לו גישה לזיכרון של ה-pVM. pKVM הוא hypervisor הסטנדרטי להרצת מכונות pVM.
בהשוואה לסביבות מחשוב מהימנות (TEE) קיימות, מכונות pVM מספקות סביבה עשירה יותר, כולל היכולת להריץ הפצה של Android בגודל מיני שנקראת Microdroid (אבל Microdroid יכולה לפעול גם במכונה וירטואלית לא מוגנת). אפשר להשתמש במכונות pVM באופן דינמי, והן מספקות קבוצה סטנדרטית של ממשקי API בסביבה מהימנה שזמינה בכל המכשירים שתומכים בהן.
- VirtualizationService
שירות Android שמנהל את מחזור החיים של מכונות וירטואליות פרטיות (pVM).
מה השלב הבא?
- כדי להבין טוב יותר את הצורך ב-AVF, אפשר לעיין במאמר למה AVF?.
- במאמר תרחישי שימוש מוסבר איך אפשר להשתמש ב-AVF לצורך הידור מבודד.
- הסבר מעמיק יותר על הארכיטקטורה של הטמעת העזר של AVF זמין במאמר ארכיטקטורת AVF.
- מידע נוסף על Microdroid זמין במאמר Microdroid.
- במאמר אבטחה מוסבר איך AVF מטפל באבטחה.
- כדי להבין את התפקיד של שירות הווירטואליזציה, אפשר לעיין במאמר VirtualizationService.
- קוד המקור של AVF או הסבר מעמיק על רכיבים ספציפיים זמינים במאגר AOSP.