אנדרואיד 14 עשויה להוסיף תכונת הגנה מתקדמת בזיכרון כדי להגן על המכשיר שלך מפני באגי בטיחות בזיכרון

אנדרואיד 14 עשויה להוסיף תכונת בטא חדשה בשם "הגנת זיכרון מתקדמת" שיכולה להגן מפני באגי בטיחות זיכרון במכשירים תואמים.

בטיחות זיכרון הייתה בראש סדר העדיפויות של גוגל לאחרונה, שכן באגי בטיחות זיכרון נוטים להיות כמה מהבאגים החמורים ביותר בפיתוח תוכנה. למעשה, פגיעויות בטיחות בזיכרון היו אחראיות לרוב של אנדרואיד חמורה נקודות תורפה עד 2022, אז גוגל כתבה חלק ניכר מהמקור החדש של אנדרואיד קוד ב- שפת תכנות חלודה במקום C/C++. גוגל עבדה על תמיכה באמצעים אחרים להפחתת פגיעויות בטיחות הזיכרון באנדרואיד, שאחד מהם נקרא תיוג זיכרון. במכשירים נתמכים פועלים אנדרואיד 14, ייתכן שקיימת הגדרה חדשה של "הגנה על זיכרון מתקדמת" שיכולה לשנות תכונה זו.

הרחבת תיוג זיכרון (MTE) היא תכונת חומרה חובה של מעבדי Arm v9 המגנה מפני זיכרון באגי בטיחות (עם עלות ביצועים קלה בזמן ריצה) על ידי מתן מידע מפורט על זיכרון הפרות. כפי שגוגל מסבירה, "ברמה גבוהה, MTE מתייג כל הקצאת/הקצאת זיכרון עם מטא נתונים נוספים. הוא מקצה תג למיקום זיכרון, שאותו ניתן לשייך למצביעים המתייחסים למיקום הזיכרון הזה. בזמן ריצה ה-CPU בודק שהמצביע והתגיות של המטא נתונים תואמים בכל טעינה ומאגר."

גוגל עובדת לתמיכה ב-MTE בכל ערימת תוכנת אנדרואיד כבר כמה מהדורות. באנדרואיד 12, scudo, מקצה הערימות של אנדרואיד, הוסיפה תמיכה בשלושה מצבי הפעלה של MTE במכשירים תואמים: מצב סינכרוני, מצב אסינכרוני ומצב אסימטרי. גוגל גם אפשרה לאפשר MTE עבור תהליכי מערכת בזמן בנייה או באמצעות מאפייני מערכת ו/או משתני סביבה. יישומים יכולים להצטרף לתמיכה ב-MTE דרך אנדרואיד: memtagMode תְכוּנָה. כאשר MTE מופעל עבור תהליכים באנדרואיד, מחלקות שלמות של באגי בטיחות בזיכרון כגון שימוש-לאחר-חופשי והצפת מאגר מעוררים התרסקות במקום השחתת זיכרון שקטה.

ב אנדרואיד 13, גוגל הוסיפה ABI עבור מרחב המשתמשים כדי להעביר את מצב ההפעלה המבוקש של MTE למטען האתחול. זה יכול לשמש כדי להפעיל MTE במכשירים תואמים שאינם נשלחים איתו מופעלים כברירת מחדל, או לחלופין ניתן להשתמש בו כדי להשבית אותו במכשירים תואמים שאכן מופעלת על ידי בְּרִירַת מֶחדָל. הגדרת מאפיין המערכת ro.arm64.memtag.bootctl_supported ל-"true" באנדרואיד 13 יגיד למערכת כי טוען האתחול תומך ב-ABI וגם מפעיל כפתור שיופיע בתפריט אפשרויות המפתח שאיפשר למשתמש להפעיל MTE בפעם הבאה לְאַתחֵל. זה היה מכוון למפתחים שרצו לבדוק את התנהגות האפליקציות שלהם עם MTE מופעל.

עם זאת, באנדרואיד 14, הפעלת MTE במכשירים תואמים עשויה לדרוש עוד צלילה לאפשרויות המפתחים. אם המכשיר כולל מעבד Arm v8.5+ עם תמיכה ב-MTE, הטמעת ההתקן תומכת ב-ABI לתקשורת מצב ההפעלה המבוקש של MTE למטען האתחול, והחדש מאפיין המערכת 'ro.arm64.memtag.bootctl_settings_toggle' מוגדר כ-true, ואז עשוי להופיע דף חדש של "הגנת זיכרון מתקדמת" בהגדרות > אבטחה ופרטיות > אבטחה נוספת הגדרות. ניתן להשיק דף זה גם באמצעות החדש ACTION_ADVANCED_MEMORY_PROTECTION_SETTINGS פעולת כוונה.

יש לציין, ערכת השבבים Tensor G2 ב- גוגל פיקסל 7 הסדרה משתמשת בליבות מעבד Arm v8.2, ולכן הן אינן תומכות ב-MTE. אם סדרת Google Pixel 8 הקרובה משתמשת בליבות מעבד Arm v9 חדשות כמו מכשירי דגל רבים אחרים של אנדרואיד, אז תהיה להם חומרה המסוגלת לתמוך ב-MTE. עם זאת, נותר לראות אם תכונת "הגנת הזיכרון המתקדמת" הזו אכן תגיע לגרסה היציבה.

תודה לחוקר האבטחה @flawedworlddev על הסיוע שלהם במאמר זה!