ה-Tapjacking חזר באנדרואיד מרשמלו, ואף אחד לא שם לב

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

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

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


שובו של ה-Tapjacking

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

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

מרשמלו Permission Tapjacking. הקשה על "אפשר" תציג את כל אנשי הקשר שלי.

אפליקציות שיש להן את היכולת לצייר על המסך שלך עלולות להערים עליך להזין אותו בנתונים רגישים. לדוגמה, שכבת-על על מסך יכולה להציב קלט סיסמה מזויפת על גבי מסך כניסה אמיתי כדי לאסוף את הסיסמאות שלך. ניצול כזה נקרא 'חטיפה' וצץ ותוקן בגרסאות אנדרואיד שונות לאורך השנים, עם אחת הדוגמאות הגרועות ביותר שנמשכת עד אנדרואיד 4.0.3. אבל לאחרונה, הניצול חזר עם מודל הרשאות זמן הריצה של אנדרואיד מרשמלו.

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

עכשיו, אני יודע על מה אתה חושב. אם אנדרואיד זיהתה שכבת-על של המערכת וימנע ממני להעניק הרשאות אחסון באינסטגרם, האם זה לא ימנע את הניצול הזה? התשובה היא לא, בבדיקה שלי נראה שבמכשירים מסוימים הצגת שכבת טקסט על גבי דו-שיח של הרשאות לא מפעילה את מנגנון הבטיחות. המפתח של אפליקציית ה-Tapjacking הוכחת מושג מצהיר שהניצול יעיל מכיוון שהוא מסתמך על המשתמש שיתקין יישום זדוני משני שמכוון לרמת API 22 ומטה (טרום מרשמלו). זאת בשל העובדה שלפני אנדרואיד מרשמלו, כל היישומים מקבלים הרשאות במהלך ההתקנה.

אוקיי, אז אם אתה ב-Marshmallow, כל מה שתצטרך לעשות הוא להימנע מהתקנה של אפליקציות שאינך סומך עליהן המבקשות רשות לצייר שכבת-על, נכון? אם מודל ההרשאה של אנדרואיד היה עובד כפי שנקבע במקור, היית צודק. אבל מאז גילוי הניצול הזה, אפילו אפליקציות המתמקדות ב-API ברמה 23 (מרשמלו) המבקשים את הרשאת שכבת העל הם סיכון פוטנציאלי.


פער במודל ההרשאה?

אפליקציות טיפוסיות המשתמשות בשכבות-על. באמצעות: בינוני

אם אתה אחד ממיליוני האנשים הרבים שמשתמשים ב-Facebook Messenger לצ'אט עם החברים שלך, אז נתקלת באחת התכונות הטובות ביותר של אנדרואיד - היכולת של אפליקציות לצייר על אחרות מסכים. כמה זה מגניב שאתה יכול לקבל בועה עם הצ'אט הקבוצתי האהוב עליך בפייסבוק לעקוב אחר המשתמש על גבי כל אפליקציה שהוא פותח? למרות שהמסנג'ר של פייסבוק הביא את רעיון "האפליקציות הצפות" למיינסטרים, הרעיון קיים כבר זמן מה באנדרואיד. יישומים הצליחו ליצור שכבות על על גבי האפליקציות שלך במשך זמן מה, הודות לקיומם של TYPE_SYSTEM_OVERLAY ב-WindowManager של אנדרואיד.

תפריט הרשאות "צייר מעל אפליקציות אחרות".

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

עם זאת, SYSTEM_ALERT_WINDOW אינו דומה להרשאות אחרות. מפתחים אינם יכולים להציג תיבת דו-שיח כדי לבקש באופן פרוגרמטי שההרשאה תינתן על ידי משתמש הקצה, כמו רוב ההרשאות האחרות בכל אפליקציה המכוונת למרשמלו. במקום זאת, עליך לנווט ידנית למסך ההגדרות ולאפשר את ההרשאה בעצמך. כמובן, כמה אפליקציות כמו Facebook Messenger יעזרו לך בתהליך.

גוגל דורשת זאת ממפתחים מכיוון שהם ראו שההרשאה היא "רגיש במיוחד."

הרשאות מיוחדות

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

בהתחשב במה שאנו יודעים לעיל על תקיעה, זה הגיוני. אבל הנה העניין. גוגל אפילו לא פועלת לפי הכללים שלה. צילומי המסך של Facebook Messenger המדריכים אותך בתהליך הענקת הרשאת SYSTEM_ALERT_WINDOW שהראיתי לך למעלה? זה קורה רק אם אתה מתקין את ה-APK מחוץ לחנות Google Play. אם תתקין אפליקציה מחנות Google Play, ה הרשאת SYSTEM_ALERT_WINDOW ניתנת אוטומטית.

קובץ המניפסט של פייסבוק מסנג'ר. לאפליקציה ניתנת הרשאת שכבת העל באופן אוטומטי למרות מיקוד לרמה 23 של API.

גוגל הקריבה את הבטיחות למען הנוחות

במשך זמן רב לפני אנדרואיד מרשמלו, SYSTEM_ALERT_WINDOW נחשב "מְסוּכָּן" רשות. עם אנדרואיד מרשמלו 6.0, ההרשאה שונתה ל חתימה|מערכת|אפופ וזה מה שבהתחלה דרש מהמפתחים להוביל את המשתמש למסך ההגדרות כדי להעניק את ההרשאה. אבל עם גרסת אנדרואיד 6.0.1, SYSTEM_ALERT_WINDOW שונה כך שחנות Google Play יכול להעניק אוטומטית את ההרשאהמבלי להודיע ​​למשתמש. למה גוגל ביצעה את השינוי הזה לא ברור לנו. גוגל עצמם לא יצאו והצהירו מדוע הם ביצעו את השינוי הזה, וזה מוזר במיוחד בהתחשב בשפה לגבי SYSTEM_ALERT_WINDOW שעדיין קיימת בדפי האינטרנט שלהם.

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

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

  • Nextbit Robin - אנדרואיד 6.0.1 עם תיקוני אבטחה של יוני - פָּגִיעַ
  • Moto X Pure - אנדרואיד 6.0 עם תיקוני אבטחה מאי - פָּגִיעַ
  • Honor 8 - אנדרואיד 6.0.1 עם תיקוני אבטחה ביולי - פָּגִיעַ
  • Motorola G4 - אנדרואיד 6.0.1 עם תיקוני אבטחה מאי - פָּגִיעַ
  • OnePlus 2 - אנדרואיד 6.0.1 עם תיקוני אבטחה של יוני - לא פגיע
  • Samsung Galaxy Note 7 - אנדרואיד 6.0.1 עם תיקוני אבטחה ביולי - לא פגיע
  • Google Nexus 6 - אנדרואיד 6.0.1 עם תיקוני אבטחה באוגוסט - לא פגיע
  • Google Nexus 6P - אנדרואיד 7.0 עם תיקוני אבטחה באוגוסט - לא פגיע

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


נעים קדימה

שירות Tapjacking העניק את הרשאת שכבת העל

אנו קוראים לך לבדוק את הניצול הזה במכשיר שלך בעצמך כדי לראות אם אתה פגיע. ריכזנו את ה-APKs מה- קוד המקור המקושר למעלה (אתה יכול לעשות את זה גם בעצמך) והעלית אותם ל-AndroidFileHost. על מנת לבדוק את הניצול, עליך להתקין את שניהם אפליקציית ה-Tapjacking הראשית כמו גם שלה שירות עוזר. לאחר מכן, פשוט הפעל את היישום הראשי ולחץ על כפתור "בדיקה". אם תיבת טקסט מרחפת על גבי תיבת ההרשאה וכאשר אתה לוחץ על "אפשר" מופיעה רשימה של אנשי הקשר של המכשיר שלך, המכשיר שלך חשוף לפריצה. אל תדאג שתיבת הטקסט הצפה לא תכסה לחלוטין את תיבת הדו-שיח של ההרשאות, אפליקציית הוכחת הרעיון הזו אינה נועד להדגים בצורה מושלמת כיצד לחטוף בצורה מסודרת דו-שיח של הרשאות, אלא להוכיח שזה אכן כך אפשרי.

אנו מקווים שיוצג תיקון שיתקן את הניצול הזה בכל מכשירי המרשמלו, ושיצרני OEM יעדכנו את כל המכשירים שלהם לתיקון האבטחה האחרון. כי המציאות היא שייקח חודשים רבים עד שרוב המכשירים המתחייבים לקבל נוגט, כך שהדרך היחידה עבור רוב כדי שהמשתמשים לא יפגעו, זה להתקין את תיקוני האבטחה העדכניים ביותר או לקחת הרשאות אפליקציה לניטור עצמם. אבל עם ההחלטה של ​​גוגל להעניק אוטומטית את ההרשאה העשויה להיות מסוכנת SYSTEM_ALERT_WINDOW, רבים משתמשים מריצים ללא מודע אפליקציות שעלולות לחטוף את הטלפונים שלהם כדי להעניק יותר ויותר מסוכנות הרשאות.