ייתכן ש- Magisk לא תוכל עוד להסתיר את פתיחת הנעילה של טוען האתחול מאפליקציות

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

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

על מנת לשרש את הטלפון שלך, אתה בדרך כלל צריך לבטל את נעילת טוען האתחול, המאפשר לך להבהב תמונות אתחול ששונו. זה נחוץ מכיוון ש- Magisk משנה את תמונת האתחול כדי לזייף את סטטוס טוען האתחול ו/או את בדיקות סטטוס האתחול המאומת. ה-API של SafetyNet Attestation של גוגל, המהווה חלק משירותי Google Play, משמש כדי לומר לאפליקציה אם היא פועלת על מכשיר מבולבל; אם ה-API של SafetyNet מזהה שהמטען האתחול לא נעול, הוא יחזיר סטטוס כשל לבדיקת "שלמות בסיסית". לאחר מכן ניתן לנעול מכשירים שנכשלים בבדיקה זו מאפליקציות המשתמשות ב-SafetyNet API כדי לקבוע את שלמות המכשיר; אפליקציות כאלה כוללות בדרך כלל אפליקציות בנקאות, אפליקציות תשלום (כמו Google Pay) ומשחקים מקוונים רבים (כמו Pokémon Go). עם זאת, מכיוון שממשק ה-API של SafetyNet עד כה השתמש רק בבדיקות תוכנה כדי לקבוע אם התעסקו במכשיר, Magisk יכולה פשוט לזייף את טוען אתחול ו/או סטטוס אתחול מאומת מכיוון שהוא מותקן ברמה נמוכה יותר ועם הרשאות גבוהות יותר משירותי Google Play ומרחב משתמש אחר יישומים. כפי שמסביר topjohnwu, MagiskHide "[יוצר] 'סביבה בטוחה' מבודדת לתהליך הזיהוי, והיא עוברת דרך ה-API של גוגל כדי ליצור

חוּקִי תוצאת SafetyNet שאינה משקפת את המצב האמיתי של המכשיר".

עם זאת, לאחרונה, משתמשים שמו לב שהמכשירים הבלתי נעולים שלהם מטעינת האתחול נכשלים בבדיקת תקינות בסיסית של SafetyNet למרות שהם השתמשו ב-Magisk כדי לתקן את תמונת האתחול. לפי topjohnwu, הסיבה לכך היא שגוגל אולי הטמיעה אישור מפתח ברמת החומרה כדי לוודא שלא טופלה תמונת האתחול. באופן ספציפי, פירוש הדבר הוא שירותי Google Play "[שולח] אישור מאגר מפתחות ללא שינוי לשרתי SafetyNet, מאמת את הלגיטימיות שלו ובודק נתוני הרחבת אישור כדי לדעת אם המכשיר שלך [אומת] אתחול מופעל (סטטוס טוען האתחול)." זה אומר שייתכן שהוא כבר לא אפשר להסתיר את העובדה שהמטען האתחול לא נעול, מה שיגרום לכך שאפליקציות כמו Google Pay ו-Pokémon Go לא יפעלו בדרך כלל.

כפי ש-topjohnwu ציין, השינוי הזה באופן שבו SafetyNet בודק את סטטוס ביטול הנעילה של טוען האתחול מגיע באמצעות עדכון בצד השרת ל-SafetyNet API הכלול בשירותי Google Play. עם זאת, לא כל משתמש נכשל בבדיקות ה-SafetyNet המעודכנות הללו, כך שאישור המפתח החדש ברמת החומרה עדיין לא נאכף באופן נרחב.

ראינו את topjohnwu מתגבר על מכשולים טכניים פעם אחר פעם. Google מפרסמת לעתים קרובות בדיקות חדשות ב-SafetyNet ש-topjohnwu מגלה ואז עוקף ב-Magisk. כל גרסה חדשה של אנדרואיד מביאה שינויים במבנה המחיצה או בתמונת האתחול, ומחייבת את topjohnwu ללמוד את השינויים ולאחר מכן ליישם שיטת תיקון חדשה. עם זאת, אפילו topjohnwu עשוי להתקשה למצוא מעקף הפעם.

הסיבה לכך היא שהפתרון לעקיפת הבעיה הפעם יכלול פריצה לקושחה של סביבת הביצוע המהימנה (TEE) של מכשירים כדי לאחזר את המפתח הפרטי. עם זאת, קשה להפליא לעשות זאת מכיוון שזה דורש מציאת פגיעות בקושחה שנועדה להיות מאובטחת להפליא. למעשה, חברות רבות מציעות תשלומים במאות אלפי דולרים אם תימצא פגיעות כזו. גוגל, למשל, משלמת $250,000 עבור פרצות ביצוע קוד מרחוק בסביבת הביצוע המהימנה של Pixel, וכן עד 1,000,000 דולר עבור פגיעות ב טיטאן מ שבב אבטחה. גם אם מפתח פרטי היה דולף איכשהו, אין זה סביר שהוא יועיל הרבה מאחר גוגל יכולה לבטל את המפתח מרחוק כך שלא ניתן להשתמש בו כדי לאמת את תקינותם של מכשירים.

ברגע שאישור מפתח ברמת החומרה נאכף באופן נרחב עבור SafetyNet, רוב המכשירים עם מטעני אתחול לא נעולים עם אנדרואיד 8.0 Oreo ומעלה לא יצליחו לעבור את בדיקת היושרה הבסיסית של SafetyNet. הסיבה לכך היא שכל המכשירים שהושקו עם אנדרואיד 8.0 אוראו ומעלה נדרשים ליישום מאגר מפתחות חומרה ב-TEE. למכשירים מסוימים יש כיום אפילו מודולי אבטחת חומרה ייעודיים (HSMs) שמקשים על הניצול עוד יותר על ידי הרחקת ה-TEE מהמעבד הראשי; ה-Titan M ב-Pixel 4 ו שבב האבטחה החדש של סמסונג ב-Galaxy S20 הן דוגמאות לכך.

Topjohnwu גם מסביר שדרכים פוטנציאליות אחרות הן בלתי אפשריות או מאתגרות ביותר. השימוש ב-Xposed Framework כדי לשנות את ה-API של SafetyNet Attestation בשירותי Google Play ככל הנראה לא יעבוד מכיוון ש"בדיקות תקינות של SafetyNet יאמתו תוצאות בשרת מרוחק, לא ב-[the] מכשיר שניתן לתמרן על ידי מסגרות הזרקת קוד." יתר על כן, שירותי Google Play מעורפלים מאוד, מה שהופך את היצירה של מודול Xposed כזה למאתגרת להפליא בהתחלה מקום. גם זיוף תוצאת בדיקת SafetyNet לא יהיה בר ביצוע מכיוון שתגובות SafetyNet "מגיעות משרתי Google וחתומות עם המפתח הפרטי של גוגל".

לגוגל יש את היכולת להקשיח את בדיקות SafetyNet באמצעות אישור מפתח מגובה חומרה כבר כמה שנים. העובדה שהם נמנעו מלעשות זאת במשך 3 שנים אפשרה למשתמשים ליהנות ממודולי רוט ומאגיסק מבלי לוותר על היכולת להשתמש באפליקציות בנקאיות. עם זאת, נראה שהיכולת של Magisk להסתיר ביעילות את סטטוס פתיחת הנעילה של טוען האתחול עומדת להסתיים בקרוב. זה שינוי שציפינו לו במשך שנים, אבל אנחנו עצובים לראות אותו סוף סוף נכנס לתוקף. אנו מקווים ש-Google תעדכן את ה-API של SafetyNet Attestation כדי להחזיר אם בדיקת המצב בשימוש מבוסס חומרה אישור שכן זה יאפשר למפתחי אפליקציות להחליט אם הם רוצים לחסום את כל המשתמשים שביטלו את הנעילה טוען אתחול.


תודה לדניאל מיקיי (@דניאל מיקיי) על תגובתו בעניין זה!