למה כדאי להשתמש ב-AVF?

מכשירים ניידים משתמשים בכמויות גדולות יותר של מידע אישי רגיש. נוכחות של מידע רגיש כזה, בשילוב עם החיבור המתמיד לעולם החיצון, הובילה להגדלת ההשקעות של גורמים זדוניים שמתעניינים בניצול נקודות חולשה כדי להשיג את המטרות שלהם.

מערכות הפעלה, בעזרת יחידות ניהול זיכרון בחומרה (MMU), מספקות הפשטות שמבודדות תהליכים לא קשורים זה מזה. רק רכיבים שהם חלק מ-Trusted Computing Base‏ (TCB) יכולים לתכנת את ה-MMUs האלה ישירות.

המודל הזה הוא הבסיס שבו הפרטיות והאבטחה מוטמעות מאז ההשקה של מערכות הפעלה בסגנון Unix. עם זאת, הדרישה הזו הפכה בעייתית כי ה-TCB של היום גדול מדי: הוא כולל את רוב מנהלי ההתקנים של האוטובוסים וההתקנים, מתזמנים מורכבים, מערכות קבצים, פרוטוקולים ומקבצים של רשתות, מטמון, כלי לניתוח וטעינה של קובצי הפעלה ושקעים. נעשה קשה מאוד לוודא שכל פינה במערכת המורכבת הזו בטוחה.

ליבת Linux מכילה יותר מ-20 מיליון שורות קוד, וקצב השינויים והכתובות מחדש הוא מדהים. הצמיחה הזו עוזרת מאוד ל-Android ולסביבה העסקית שלנו. עם זאת, ה-TCB הגדול שלו מקשה על הבטחת היעדר נקודות חולשה שניתן לנצל.

ספקי חומרה פיתחו פתרונות, כמו TrustZone של Arm, שמאפשרים למעבדים לפעול במצב מאובטח ולתייג עסקאות זיכרון כ'מאובטחות' או כ'לא מאובטחות'. במערכות כאלה, מידע אישי רגיש מאוחסן בעולם המאובטח וזמין ישירות רק לו. העולם המאובטח מספק שירותים לעולם הלא מאובטח על פי דרישה.

המגבלה העיקרית של פתרונות מהסוג הזה היא שהדומיינים רחבים מדי: רק מאובטחים ולא מאובטחים. ככל שמצטברים יותר תרחישים לדוגמה שמחייבים לבודד ממערכת ההפעלה, שטח ההתקפה גדל ונקודות החולשה הסבירות לפגיעה במכשיר כולו ייפגעו.

מגבלה נוספת של הפתרונות הקיימים היא שהם מיועדים לסביבה יחסית סטטית שבה כל המשאבים של תרחישי לדוגמה נספרים ומוקצים מראש. הפתרונות האלה לא מתאימים לתרחישי שימוש דינמיים שבהם המשאבים מוקצים על פי דרישה.

בנוסף, ממשקי ה-API שנעשה בהם שימוש מחוץ למערכת ההפעלה Android מפוצלים ומגבילים את היכולת שלנו לפרוס תרחישי שימוש בקנה מידה של Android, כולל רכיבים בסיסיים כמו Keymint ו-Gatekeeper.

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

המטרה העיקרית של AVF היא לספק סביבת הפעלה מאובטחת ופרטית בתרחישים לדוגמה של הדור הבא.