קובץ אחד שמותקן ולא נפתח מכניס את הטלפון ללופ אתחול: החולשה שגוגל החליטה לא לתקן
הקובץ שהפיל באוגוסט את מכונות הניסוי של Bitdefender לא ניסה לעשות דבר. הוא לא ביקש הרשאות, לא הכיל קוד שרץ ואף אחד לא פתח אותו. ההתקנה עצמה הספיקה. כשהחוקרים הפנו את אותו טריק לקובץ שמערכת ההפעלה קוראת בעצמה, הטלפון נכנס ללופ אתחול שאין ממנו יציאה בלי למחוק את המכשיר.
מה קרה
קובץ APK, הפורמט שבו מגיעות אפליקציות אנדרואיד, הוא ארכיון ZIP. כל רכיב בתוך הארכיון מסומן בשיטת הדחיסה שבה נשמר, ואנדרואיד יודע לעבוד עם שתיים בלבד. הבעיה היא ששתי הספריות שמטפלות בארכיון כזה בודקות דברים שונים: אחת מאמתת שהגודל שרכיב מצהיר עליו באמת נמצא בתוך הקובץ, אבל רק לרכיבים שנשמרו בלי דחיסה, והשנייה מטפלת בכל רכיב שאינו דחוס לפי הגודל המוצהר, בלי לבדוק אותו. רכיב שמסומן בשיטת דחיסה שאנדרואיד לא מכיר נופל בין השתיים, והמערכת פורשת אותו בזיכרון לאורך שהוא הצהיר עליו. ברגע שתהליך קורא מעבר לסוף הקובץ האמיתי, הליבה הורגת אותו. ב-Bitdefender קוראים לזה GhostMap. בדוגמה שפרסמו, קובץ של 8,408 בתים נפרש על פני כ-16.7 מגהבייט.
מכאן החוקרים לקחו את זה צעד קדימה, ושתלו רכיב פגום כזה בקובץ משאבים שה-system_server, תהליך המערכת המרכזי באנדרואיד, קורא מיד אחרי התקנה. שנייה אחרי ההתקנה התהליך נפל, נטען מחדש, קרא שוב את אותו קובץ ונפל שוב. בהרצה אחת הם מנו 110 מחזורים כאלה. גם מצב בטוח, שאמור להיות הדרך לצאת מתקלות כאלה, לא עזר: שם הלופ חזר 72 פעמים. השחזור נעשה על Pixel 10 עם אנדרואיד 17 ועדכון האבטחה מאוגוסט, ולפי הדוח גם על אנדרואיד 10 ומעלה.
Bitdefender דיווחה לגוגל ב-20 באוגוסט וקיבלה סגירה בנימוק שלא ניתן לשחזר את הבעיה. ב-25 באוגוסט נשלח דיווח שני, עם קוד שמדגים את הלופ, והפעם גוגל ענתה שהעניין לא יטופל בעדכון אבטחה והועבר לצוות פיתוח לשיקול בגרסה עתידית. לחולשה לא הוקצה מספר CVE, ולפי Bitdefender הלופ עצמו עוד לא נראה בשימוש נגד אנשים: הקובץ שהתגלה בשטח הפיל רק את תהליך ההתקנה של עצמו.
למה זה חשוב לכם
אין כאן גניבת מידע ואין הרצת קוד. יש מכשיר שמפסיק לעבוד, ובלי מחיקה שלו אין דרך להחזיר אותו. זה מטריד משתי סיבות: המחיקה לוקחת איתה כל מה ששמור מקומית ולא גובה, ואין שום אזהרה לפניה. אפליקציה מסוכנת רגילה לפחות מבקשת גישה לאנשי הקשר או להודעות, ואפשר לסרב לה. לקובץ הזה אין מה לבקש, כי אין בו קוד ואין בו הרשאות.
מה עושים?
התקינו אפליקציות מחנות גוגל פליי ולא מקובצי APK שמגיעים בקישור בוואטסאפ או בטלגרם. קובץ שמוצג כגרסה חינמית של אפליקציה מוכרת הוא בדיוק הדרך שבה דבר כזה מגיע למכשיר.
ודאו שהגיבוי שלכם עובד, לא רק שהוא מוגדר. פתחו את הגדרות הגיבוי בחשבון גוגל ובאפליקציית התמונות ובדקו מתי היה הסנכרון האחרון. עם גיבוי תקין, מחיקה והחזרה הן אי נוחות של שעתיים ולא אובדן של כל התמונות.
אם אפליקציית אבטחה מציגה אזהרה בזמן התקנה, עצרו שם. במודל ההרשאות של אנדרואיד היא לא יכולה לחסום התקנה או להסיר אפליקציה אחרת, כך שהאזהרה היא כל מה שתקבלו.
מכשיר שכבר נכנס ללופ מגיע למחיקה והחזרה מגיבוי. אפשר גם למחוק את הקובץ דרך חיבור ADB למחשב, אבל רק אם מצב המפתחים היה דלוק מראש ומספיקים לפעול בין נפילה לנפילה.
גוגל קבעה שזה לא נושא לעדכון אבטחה, ולכן ההגנה היחידה שיש לכם היא הרגע שלפני ההתקנה.
תגובות