למכשירי קוואלקום יש מצב EDL, שכפי שמתברר נראה שניתן לנצל אותו אם יש לך את הכלים הנכונים ששוחררו על ידי יצרני ה-OEM.
למכשירים עם ערכות שבבים של קוואלקום יש א פrimary באוטלoader (PBL) אשר בדרך כלל מאתחל את מערכת האנדרואיד, אך מכיל גם מצב אתחול חלופי המכונה מצב EDL. מצב EDL הוא של קוואלקום החירום דמטען עצמי Mאודה ומאפשרת an Oריגינלי הציוד Mיצרן (OEM) לאלץ תוכנת פלאש על מכשיר. לא ניתן לשנות זאת (מצב קריאה בלבד) ויש לו שליטה מלאה על האחסון של המכשיר. יצרני OEM רבים כולל OnePlus ו-Xiaomi שחררו כלים (הידועים כמתכנתים) המשתמשים במצב EDL ו פרוטוקול המכונה Firehose כדי לשחרר מכשיר, בעוד כלים אחרים של חברות כמו נוקיה דלפו. Firehose יכול להשתמש במספר פקודות להבהב במכשירים, יחד עם היכולת לבחון את הנתונים בזיכרון של המכשיר. חוקרי אבטחה רו היי (@roeehay) ו נועם חדד מ מחקר אלף גילו פגיעויות קריטיות במכשיר באמצעות מצב זה, אשר למעשה מעניק לתוקף גישה מלאה למכשיר.
חשוב לציין זאת ניצול זה דורש גישה פיזית למכשיר, אך הוא עדיין מסוכן להפליא וסביר להניח שלא ניתן לתקן אותו. התוקפים ניצלו את רמת הגישה הניתנת למצב EDL כדי לעקוף אתחול מאובטח ב-Nokia 6, והביסו את שרשרת אמון והשגת ביצוע קוד מלא בכל חלק ברצף האתחול כולל מערכת ההפעלה אנדרואיד עצמו. התיאוריה פועלת באותה צורה במכשירים אחרים, והחוקרים הצליחו גם לפתוח ולהרוס מספר מכשירי Xiaomi ללא כל אובדן נתונים.
אילו מכשירים מושפעים מניצול זה?
ראשית, המכשירים המושפעים.
רשימת המכשירים המושפעים.
- LG G4
- Nokia 6 (d1c)
- נוקיה 5
- Nexus 6 (שאמו)
- Nexus 6P (דייג)
- Moto G4 Plus
- OnePlus 5 (צ'יזבורגר)
- OnePlus 3T
- OnePlus 3
- OnePlus 2
- OnePlus X
- אחד ועוד אחד
- ZTE Axon 7
- ZUK Z1
- ZUK Z2
- Xiaomi Note 5A (ugglite)
- Xiaomi Note 5 Prime (ugg)
- Xiaomi Note 4 (מידו)
- Xiaomi Note 3 (ג'ייסון)
- Xiaomi Note 2 (עקרב)
- Xiaomi Mix (ליתיום)
- Xiaomi Mix 2 (כירון)
- Xiaomi Mi 6 (סאגיט)
- Xiaomi Mi 5s (גדי)
- Xiaomi Mi 5s Plus (נטריום)
- Xiaomi Mi 5x (טיפאני)
- Xiaomi Mi 5 (תאומים)
- Xiaomi Mi 3 (קנקרו)
- Xiaomi Mi A1 (טיסו)
- Xiaomi Mi Max2 (חמצן)
- Xiaomi Redmi Note 3 (קנזו)
- Xiaomi Redmi 5A (ריבה)
- Xiaomi Redmi 4A (ורוד)
קרא עוד
ניצול טלפון אנדרואיד
רצף האתחול של טלפון אנדרואיד טיפוסי של קוואלקום
חשוב להבין תחילה את רצף האתחול של מכשיר אנדרואיד טיפוסי לפני שמסבירים כיצד ניתן לנצל אותו. ה סתוכנות תכונה באוטלoader (SBL) הוא טוען אתחול חתום דיגיטלית אשר נבדק על אותנטיות לפני הטעינה ל-imem. imem הוא זיכרון מהיר על שבב המשמש לניפוי באגים ו-DMA (דישיר Mאמורי אccess) עסקאות והוא קנייני של ערכות השבבים של קוואלקום.
לחלק מהמכשירים יש eאיקסמתוח באוטלoader (XBL) במקום SBL, אבל תהליך האתחול די זהה. לאחר מכן, ה-SBL או ה-XBL משיקים את ABOOT, המיישמת את fastboot. בעקבות זאת, נטען גם TrustZone (אבטחה מבוססת חומרה). TrustZone בודק את האותנטיות של ABOOT באמצעות אישור שורש מבוסס חומרה. ה-SBL (או XBL, במקרים מסוימים) נועד לדחות ABOOT חתום שגוי (או לא חתום).
לאחר האימות, ABOOT בודק את האותנטיות של /boot ו-/recovery לפני הפעלת ליבת לינוקס. כמה הכנות למערכת נעשות, ואז ביצוע הקוד מועבר לקרנל. ABOOT מכונה בדרך כלל "מטען האתחול של אנדרואיד", וכאשר אנו מבטלים את הנעילה של טוען האתחול של מכשיר, אנו משביתים את בדיקת האותנטיות הזו ב-ABOOT.
גישה למצב EDL
בעוד שלמכשירים מסוימים יש שילוב חומרה פשוט (או גרוע מכך, פקודת fastboot קניינית פשוטה הקיימת ברבים מכשירי Xiaomi), אחרים, כגון מכשירי נוקיה, צריכים לקצר סיכות הידועות כ"נקודות בדיקה" המצויות במכשיר הראשי של המכשיר גלשן. פעם גם היה אפשר, לפני תיקון האבטחה של דצמבר 2017, פשוט להריץ את "adb reboot edl" במכשירים רבים (כולל ה-Nexus 6 ו-6P) ולהיכנס למצב EDL. זה תוקן מאז.
מכשירים אחרים יכולים גם להשתמש במה שמכונה כבל "פלאש עמוק", שהוא כבל מיוחד עם פינים מסוימים מקוצרים כדי לומר למערכת במקום זאת לאתחל למצב EDL. מכשירי Xiaomi ישנים יכולים להשתמש בשיטה זו, יחד עם Nokia 5 ו-Nokia 6. התקנים אחרים יאתחלו גם במצב EDL כאשר הם לא מצליחים לאמת את ה-SBL.
שימוש במצב EDL כדי לקבל גישה מלאה ב-OnePlus 3/3T
ניתן להשתמש במצב EDL במספר דרכים במכשיר, בעיקר לביטול לבנים של מכשירים על ידי הבהוב בכוח. כפי שהוסבר לעיל, תיאורטית אמור להיות בטוח לכל אחד לגשת למצב זה, שכן התרחיש הגרוע יותר הוא ש- ABOOT ידחה תוכנה שאינה חתומה רשמית על ידי היצרן. אמנם זה נכון, אבל למעשה אפשר להשיג שליטה מלאה על OnePlus 3 או 3T והקבצים שלו בניצול הוכחת קונספט שהוצג על ידי החוקרים.
זה ייעשה באמצעות שתי פקודות מסוכנות מאוד ש-OnePlus השאיר נגישות בגרסה ישנה יותר של ABOOT (האנדרואיד טוען האתחול), על מנת לבטל את נעילת טוען האתחול של המכשיר (מבלי שתוצג אזהרה למשתמש בעת האתחול) ולנטרל dm_verity. dm_verity ידוע גם בתור אתחול מאומת והוא חלק מרצף אתחול בטוח במכשיר אנדרואיד. שתי הפקודות הן כדלקמן.
fastboot oem disable_dm_verity
fastboot oem 4F500301/2
שים לב לתהליך הפשוט בן 4 השלבים שמתחתיו המשתמש בפרוטוקול Firehose.
- ראשית, אתחל את המכשיר למצב EDL. זה יכול להיעשות דרך adb ב-OxygenOS 5.0 ומטה או באמצעות שילוב מקשי חומרה פשוט.
- הורד תמונת מערכת ישנה של OxygenOS 4.0.2 מתחת.
- פלאש aboot.bin דרך firehose (זכור כי aboot.bin מיישם fastboot, כפי שהזכרנו קודם לכן)
- כעת תוכל להשבית את האתחול המאובטח ולבטל את נעילת טוען האתחול מבלי לנגב את המכשיר פשוט על ידי שימוש בשתי הפקודות fastboot לעיל.
אם אתה זוכר, בעבר נמצא כי OnePlus השאיר לפני כמעט שנה שתי פקודות אתחול מהיר מסוכנות, אחת שפתחה את נעילה של טוען האתחול ואחת שהשבתה אתחול מאובטח. אמנם זה נכון שתוקף לא יכול להתקין תוכנה זדונית במכשיר, הם יכולים לשדרג לאחור את המכשיר יש ישן יותר, פגיע לתוכנות תקיפה. פשוט על ידי הפעלת פקודות fastboot לעיל, תוקף יכול לקבל גישה מלאה למכשיר.
וזהו, טוען האתחול לא נעול, אתחול מאובטח כבוי ואין אובדן נתונים לחלוטין. אם תוקף רצה לקחת את זה צעד קדימה, הוא יכול להבהב ליבה מותאמת אישית זדונית המאפשרת גישת שורש למכשיר שהמשתמש לעולם לא ידע עליו.
Firehose עובד באמצעות פרוטוקול קוואלקום סהרה, שמקבל מתכנת חתום על-ידי OEM וכך תתבצע המתקפה שלעיל. כאשר הוא מחובר למכשיר, הוא פועל כ-SBL דרך USB. רוב המתכנתים משתמשים צינור לכיבוי אש לתקשר עם טלפון במצב EDL, וזה מה שהחוקרים ניצלו כדי להשיג שליטה מלאה במכשיר. גם החוקרים השתמשו בכך פתח את הנעילה של מכשיר Xiaomi פשוט על ידי הבהוב של תמונה ששונתה מה שפתח את הנעילה של טוען האתחול. לאחר מכן הם הבזיקו ליבה מותאמת אישית שנתנה גישה לשורש והשיקו את SELinux באופן מתירני וגם חילצו את תמונת המשתמש המוצפנת מהמכשיר.
סיכום
לא ידוע מדוע יצרני OEM משחררים את המתכנתים הללו מקוואלקום. מתכנתים של נוקיה, LG, מוטורולה וגוגל הדלפו ולא שוחררו, ובכל זאת החוקרים הצליחו לשבור את כל שרשרת האמון על Nokia 6 ולהשיג גישה מלאה למכשיר באמצעות שיטות דומות של ניצול. הם בטוחים שניתן להעביר את ההתקפה לכל מכשיר שתומך במתכנתים אלה. במידת האפשר, יצרני ציוד מקורי צריכים לעשות שימוש ב-qFuses של חומרה המונעים החזרת תוכנה לאחור, על ידי התפוצצות כאשר חומרת ההתקן מוחזרת לאחור ויכולים להזהיר משתמש שזה התרחש. המעוניינים יכולים לעיין במאמר המחקר המלא למטה ולקרוא גם את הניצול המלא של נוקיה.
מקור: Aleph Research