Вибіркове зловживання: недоліки USB-моделі довіри на iOS та Android
Через майже десять років після того, як Apple і Google впровадили захист від “juice jacking”, дослідники з Технологічного університету Граца виявили серйозні вразливості, які дозволяють зловмисним зарядним пристроям обійти ці захисні механізми всього за кілька секунд. Ці нові атаки, що отримали назву ChoiceJacking, демонструють, що моделі довіри USB, на яких базуються iOS та Android, залишаються тривожно крихкими, незважаючи на нещодавні виправлення в iOS 18.4 та Android 15.
Передумови: Еволюція Juice Jacking
У 2011 році журналіст з питань безпеки Брайан Кребс вперше вжив термін juice jacking після демонстрації на Defcon, яка показала, як публічні зарядні станції можуть таємно встановлювати шкідливе програмне забезпечення або викрадати дані, коли нічого не підозрюючі користувачі підключають свої телефони. До 2012 року Apple і Google вже виправили свої USB стеки, додавши необхідність явного підтвердження на екрані перед відкриттям будь-якого каналу даних.
- Визначення ролей USB: Згідно з специфікацією USB 2.0/3.x, пристрої домовляються про хост (контролер) та переферійний пристрій під час підключення, що гарантує, що телефони не можуть одночасно діяти як хост і пристрій.
- Запит на підтвердження: iOS та Android додали модальне вікно — “Довіряти цьому комп’ютеру?” — яке користувачі повинні натиснути, перш ніж протоколи передачі даних і медіа (PTP/MTP) зможуть змонтувати сховище.
Представлення ChoiceJacking
У статті, запланованій для конференції Usenix Security Symposium у серпні 2025 року, команда з Граца описує три техніки ChoiceJacking, які експлуатують вразливості в USB Power Delivery (USB PD), протоколі Android Open Accessory (AOAP) та диспетчері введення Android. Всі три дозволяють зарядному пристрою:
- Викликати запит системи на “Довіру”, діючи як USB хост.
- Автономно вводити події введення — натискання клавіш або дотики — в мобільну ОС.
- Сфальшувати згоду користувача та відкрити канал даних для викрадення файлів.
Глибокий аналіз: Вразливість обміну ролями USB Power Delivery
Найбільш універсальний варіант ChoiceJacking використовує специфікацію USB PD (USB Type-C). Виконуючи узгоджений обмін ролями даних, зловмисний зарядний пристрій може динамічно змінювати ролі:
- Етап 1: Зарядний пристрій спочатку рекламує себе як USB клавіатуру (переферійний пристрій) для телефону.
- Етап 2: Використовуючи повідомлення USB PD при 5 V@2 A до 20 V@5 A, зарядний пристрій запитує обмін ролями даних, ставши хостом.
- Етап 3: Як хост, він викликає запит “Довіри”, а потім повертається до ролі переферійного пристрою, щоб ввести команди для сполучення Bluetooth.
- Етап 4: Схований мікроконтролер всередині зарядного пристрою, що підробляє пристрій Bluetooth HID, підтверджує діалог.
- Етап 5: Зарядний пристрій завершує обмін назад на хост, отримуючи доступ до MTP/PTP для читання/запису файлів.
Цей ланцюг займає менше 30 секунд на більшості пристроїв і працює на всіх протестованих моделях, за винятком одного телефону Vivo, який не має повної підтримки USB PD.
Специфічні варіанти для Android
Окрім атаки на основі PD, існують два варіанти, які працюють лише на Android:
- Неправильна реалізація AOAP: Багато виробників приймають повідомлення протоколу Android Open Accessory навіть тоді, коли пристрій не в режимі аксесуара, що дозволяє зарядному пристрою зареєструватися як пристрій введення та підтверджувати запити.
- Гонка диспетчера введення: Переповнюючи чергу подій клавіатури, зарядний пристрій утримує ОС зайнятою, а потім змінює ролі під час обробки — автоматично приймаючи запит на підключення даних до того, як користувач встигне відреагувати.
Додатковий аналіз: Вплив на мобільну безпеку підприємств
Організації, які впроваджують управління мобільними пристроями (MDM), часто вносять в білий список USB-периферійні пристрої, вважаючи, що вбудованих захистів ОС достатньо. ChoiceJacking спростовує це припущення:
- Прогалини в виявленні MDM: Шифровані переговори PD та переходи в режим аксесуара відбуваються нижче рівня перехоплення мобільної ОС.
- Обхід політики: Навіть пристрої з вимкненим налагодженням USB можуть мати відкриті канали даних без втручання користувача.
- Судово-медичні виклики: Викрадення відбувається через стандартні канали MTP/PTP, змішуючись з легітимним трафіком синхронізації.
Стандарти та майбутні напрямки
Дослідження ChoiceJacking підкреслює необхідність перегляду моделей довіри USB в рамках організацій, таких як USB-IF та USB Promoter Group:
- Підтвердження на апаратному рівні: Пропозиції включають вбудовування токенів присутності користувача в USB C роз’єми, що вимагає ємнісного дотику до кінця кабелю.
- Розширення аутентифікації PD: Введення асиметричного ключового обміну в USB PD 3.1 для криптографічного зв’язування зарядних пристроїв з довіреними ідентичностями.
- Архітектурні зміни в ОС: Ізоляція обробки подій USB в мінімальному TCB (Trusted Computing Base), який не може бути під впливом аксесуарних переферійних пристроїв.
Засоби захисту та найкращі практики
- Оновіть до iOS 18.4+ або Android 15+, де це можливо; перевірте наявність запитів на аутентифікацію, що вимагають підтвердження PIN/біометрії.
- Уникайте публічних зарядних станцій; носіть кабель USB C тільки для живлення або портативний акумулятор, що підтримує лише лінії VBUS.
- Підприємства повинні впроваджувати політики, які повністю вимикають USB-ролі даних під час заряджання, використовуючи MDM для примусового режиму
chargingOnly
. - Для розробників: утримуйте налагодження USB вимкненим у виробництві та перегляньте вихідний код Android
input-dispatcher
для кастомних обробників.
Висновок
ChoiceJacking демонструє, що навіть зрілі захисти можуть бути підірвані, якщо їх основні припущення залишаються неперевіреними. У міру розвитку стандартів USB, як постачальники ОС, так і виробники апаратного забезпечення повинні впроваджувати багатошарові методи аутентифікації — криптографічні, апаратні та запити користувача — щоб захистити мільярди мобільних пристроїв у всьому світі.