Експлойт націлений на режим Qualcomm EDL, впливає на деякі пристрої Xiaomi, OnePlus, Nokia та інші

Пристрої Qualcomm мають режим EDL, який, як виявилося, можна використовувати, якщо у вас є потрібні інструменти, випущені OEM-виробниками.

Пристрої з чіпсетами Qualcomm мають a Пrimary Бootлoader (PBL), який зазвичай завантажує систему Android, але також містить альтернативний режим завантаження, відомий як режим EDL. Режим EDL належить Qualcomm Eзлитість Двласне навантаження Мода і дозволяє ан Ооригінал Eобладнання Мвиробником (OEM) для примусової флеш-програми на пристрої. Це не можна змінити (режим лише для читання) і має повний контроль над пам’яттю пристрою. Багато OEM-виробників, включаючи OnePlus і Xiaomi, випустили інструменти (відомі як програматори), які використовують режим EDL і протокол, відомий як Firehose для розблокування пристрою, тоді як інші інструменти від таких компаній, як Nokia, просочилися. Firehose може використовувати низку команд для прошивки пристроїв, а також можливість перевіряти дані в пам’яті пристрою. Дослідники безпеки Ро Хей (@roeehay) і Ноам Хадад від

Aleph Research виявили критичні вразливості пристрою за допомогою цього режиму, який фактично надає зловмиснику повний доступ до пристрою.

Важливо відзначити, що цей експлойт вимагає фізичного доступу до пристрою, але він все одно надзвичайно небезпечний і, ймовірно, не може бути виправлений. Зловмисники використали рівень доступу, наданий режиму EDL, щоб обійти безпечне завантаження на Nokia 6, знищивши ланцюг довіри та отримання повного виконання коду в кожній частині послідовності завантаження, включаючи ОС Android себе. Вважається, що він так само працює на інших пристроях, і дослідникам також вдалося розблокувати та рутувати кілька пристроїв Xiaomi без втрати даних.

На які пристрої впливає цей експлойт?

По-перше, пристрої, на які це впливає.

Список пристроїв, яких це стосується.

  • LG G4
  • Nokia 6 (d1c)
  • Nokia 5
  • Nexus 6 (шаму)
  • Nexus 6P (рибалка)
  • Moto G4 Plus
  • OnePlus 5 (чізбургер)
  • OnePlus 3T
  • OnePlus 3
  • OnePlus 2
  • OnePlus X
  • OnePlus One
  • ZTE Axon 7
  • ZUK Z1
  • ZUK Z2
  • Xiaomi Note 5A (уггліт)
  • Xiaomi Note 5 Prime (ugg)
  • Xiaomi Note 4 (mido)
  • Xiaomi Note 3 (Джейсон)
  • Xiaomi Note 2 (скорпіон)
  • Xiaomi Mix (літій)
  • Xiaomi Mix 2 (chiron)
  • Xiaomi Mi 6 (сагіт)
  • Xiaomi Mi 5s (козеріг)
  • Xiaomi Mi 5s Plus (натрій)
  • Xiaomi Mi 5x (тіффані)
  • Xiaomi Mi 5 (близнюки)
  • Xiaomi Mi 3 (cancro)
  • Xiaomi Mi A1 (tissot)
  • Xiaomi Mi Max2 (кисень)
  • Xiaomi Redmi Note 3 (kenzo)
  • Xiaomi Redmi 5A (riva)
  • Xiaomi Redmi 4A (рожевий)

читати далі

Експлуатація телефону Android

Послідовність завантаження типового телефону Qualcomm Android

Важливо спочатку зрозуміти послідовність завантаження типового пристрою Android, перш ніж пояснювати, як його можна використовувати. The Спрограмне забезпечення Бootлoader (SBL) — це завантажувач із цифровим підписом, який перевіряється на автентичність перед завантаженням в imem. imem - це швидка пам'ять на кристалі, яка використовується для налагодження та DMA (dпрямий мЕморі access) і є власністю чіпсетів Qualcomm.

Деякі пристрої мають eXрозтяжний Бootлoader (XBL) замість SBL, але процес завантаження майже такий самий. Потім SBL або XBL запускає ABOOT, який реалізує швидке завантаження. Після цього також завантажується TrustZone (апаратна безпека). TrustZone перевіряє автентичність ABOOT за допомогою апаратного кореневого сертифіката. SBL (або XBL, у деяких випадках) призначений для відхилення неправильно підписаного (або непідписаного) ABOOT.

Після автентифікації ABOOT перевіряє /boot і /recovery на автентичність перед запуском ядра Linux. Виконується деяка підготовка системи, а потім виконання коду передається ядру. ABOOT широко відомий як «завантажувач Android», і коли ми розблоковуємо завантажувач пристрою, ми вимикаємо цю перевірку автентичності в ABOOT.

Послідовність завантаження стандартного пристрою Android візуалізована. // Джерело: Aleph Research

Доступ до режиму EDL

Хоча деякі пристрої мають просту апаратну комбінацію (або, що ще гірше, просту власну команду швидкого завантаження, присутню в багатьох Пристрої Xiaomi), іншим, наприклад пристроям Nokia, потрібно закоротити контакти, відомі як «тестові точки», присутні на головній частині пристрою. дошка. До виправлення безпеки від грудня 2017 року також можна було просто запустити «adb reboot edl» на багатьох пристроях (зокрема Nexus 6 і 6P) і перейти в режим EDL. З тих пір це було виправлено.

Тестові точки показані в намальованому жовтому полі внизу материнської плати пристрою. // Джерело: Aleph Research

Інші пристрої також можуть використовувати так званий кабель «deep flash», який є спеціальним кабелем із певними контактами, закороченими, щоб наказати системі завантажуватися в режимі EDL. Старі пристрої Xiaomi можуть використовувати цей метод, а також Nokia 5 і Nokia 6. Інші пристрої також завантажуватимуться в режимі EDL, якщо їм не вдасться перевірити SBL.

Глибокий флеш-кабель

Використання режиму EDL для отримання повного доступу на OnePlus 3/3T

Режим EDL можна використовувати кількома способами на пристрої, здебільшого для розблокування пристроїв шляхом їх примусового перепрошивання. Як пояснювалося вище, теоретично доступ до цього режиму має бути безпечним для будь-кого, оскільки в гіршому випадку ABOOT відхилить програмне забезпечення, яке офіційно не підписане виробником. Хоча це правда, насправді можна отримати повний контроль над OnePlus 3 або 3T і його файлами в експлойті підтвердження концепції, показаному дослідниками.

Це буде зроблено за допомогою двох дуже небезпечних команд, які OnePlus залишив доступними в старішій версії ABOOT (Android завантажувач), щоб розблокувати завантажувач пристрою (без попередження, що відображається користувачеві під час завантаження) і вимкнути dm_verity. dm_verity також відомий як перевірене завантаження та є частиною безпечної послідовності завантаження на пристрої Android. Дві команди такі.

fastboot oem disable_dm_verity
fastboot oem 4F500301/2

Зверніть увагу на наведений нижче простий 4-етапний процес, який використовує протокол Firehose.

  1. Спочатку завантажте пристрій у режим EDL. Це можна зробити за допомогою adb на OxygenOS 5.0 або старішої версії або за допомогою простої апаратної комбінації клавіш.
  2. Завантажте старий образ системи нижче OxygenOS 4.0.2.
  3. Прошити aboot.bin через firehose (пам’ятайте, що aboot.bin реалізує швидке завантаження, як ми згадували раніше)
  4. Тепер ви зможете вимкнути безпечне завантаження та розблокувати завантажувач не протираючи пристрій просто використовуючи дві команди швидкого завантаження вище.

Якщо ви пам’ятаєте, раніше було виявлено, що OnePlus залишив дві небезпечні команди швидкого завантаження майже рік тому: одна розблокувала завантажувач, а інша вимкнула безпечне завантаження. Хоча це правда, що нападник не може встановити шкідливе програмне забезпечення на пристрій, вони можуть знизити версії пристрою мати старіше, вразливе до атак програмне забезпечення. Просто виконавши наведені вище команди швидкого завантаження, зловмисник може мати повний доступ до пристрою.

І все, завантажувач розблоковано, безпечне завантаження вимкнено, і втрати даних абсолютно відсутні. Якби зловмисник захотів піти далі, він міг би спалахнути шкідливе спеціальне ядро, яке надає root-доступ до пристрою, про який користувач ніколи не дізнається.

Firehose працює через протокол Qualcomm Sahara, який приймає програматор, підписаний OEM, і ось як буде здійснена вищезгадана атака. При підключенні до пристрою він діє як SBL через USB. Більшість програмістів використовують Палаючий будинок спілкуватися з телефоном у режимі EDL, що дослідники використовували для отримання повного контролю над пристроєм. Дослідники також використовували це для розблокуйте пристрій Xiaomi, просто ввімкнувши змінене зображення який розблокував завантажувач. Потім вони встановили спеціальне ядро, яке надавало root-доступ і запускало SELinux у дозволеному режимі, а також вилучало зашифрований образ даних користувача з пристрою.

Висновок

Невідомо, чому OEM-виробники випускають ці програматори від Qualcomm. Програмісти Nokia, LG, Motorola та Google замість того, щоб оприлюднити, витік, але дослідникам це вдалося розірвати весь ланцюжок довіри на Nokia 6 і отримати повний доступ до пристрою за допомогою аналогічних методів експлуатації. Вони впевнені, що атаку можна перенести на будь-який пристрій, який підтримує ці програматори. Якщо це можливо, OEM-виробники повинні використовувати апаратні qFuses, які запобігають відкоту програмного забезпечення, спрацьовуючи, коли апаратне забезпечення пристрою відкочується, і можуть попередити користувача про це. Ті, хто зацікавлений, можуть переглянути повну дослідницьку статтю нижче, а також можуть прочитати повну експлуатацію Nokia.


Джерело: Aleph Research