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