BrutePrint: Android-смартфоны уязвимы к брутфорсу отпечатка пальца

BrutePrint: Android-смартфоны уязвимы к брутфорсу отпечатка пальца

BrutePrint: Android-смартфоны уязвимы к брутфорсу отпечатка пальца

Специалисты Чжэцзянского университета и Tencent Labs рассказали о новом векторе атаки, который получил имя BrutePrint. Его суть заключается в бесконечном количестве попыток аутентификации по отпечатку пальца для получения контроля над мобильным устройством на Android.

Как известно, брутфорс-атаки подразумевают множество попыток входа с помощью пароля или другого кода, которые в процессе не раз заканчиваются ошибкой. Задача атакующих — получить несанкционированный доступ к аккаунтам, системам или сетям.

Китайским исследователям удалось обойти защитный механизм, блокирующий количество неудачных попыток входа с помощью отпечатка пальца на современных Android-смартфонах. В этом им помогла связка из двух уязвимостей: Cancel-After-Match-Fail (CAMF) и Match-After-Lock (MAL).

Технические подробности BrutePrint авторы опубликовали на ресурсе Arxiv.org. Согласно отчёту, им удалось выявить недостаточную защищённость биометрических данных в последовательном периферийном интерфейсе (Serial Peripheral Interface, SPI) датчиков отпечатков.

Эта брешь позволяет провести атаку вида «человек посередине» и получить доступ к образам отпечатков. Исследователи протестировали свой вектор на десяти популярных моделях смартфонов и смогли добиться неограниченного числа попыток аутентификации в ОС Android и HarmonyOS (Huawei).

В случае iOS эксперты смогли выбить себе десять дополнительных попыток входа.

 

Стоит отметить, что для осуществления BrutePrint злоумышленнику необходим физический доступ к целевому устройству. Потребуется также доступ к базе данных отпечатков пальцев и оборудование, которое можно приобрести за 15 долларов (1198 рублей).

 

Интересный результаты тестов: все подопытные смартфоны уязвимы как минимум к одному из описанных багов. Android-девайсы допускают бесконечное число попыток подбора отпечатка, у «яблочных» устройств всё несколько надёжнее.

Расширения Chrome могут слить секреты URL через атаку по стороннему каналу

Как оказалось, расширения Chrome можно использовать для слива кодов авторизации, сеансовых ID и других секретов из URL любой открытой вкладки. Никаких специальных разрешений для этого не понадобится, только доступ к declarativeNetRequest API.

Этот механизм, пришедший на смену webRequest API, позволяет расширениям сообщать браузеру, что следует изменить или заблокировать на загружаемой странице (заголовки, реклама, трекеры).

Правила обработки запросов при этом добавляются динамически, а фильтрация осуществляется по регулярным выражениям, соответствующим подмножествам знаков, которые могут присутствовать на определенных позициях в URL.

Исследователь Луан Эррера (Luan Herrera) обнаружил, что блокировку, диктуемую правилами, Chrome производит почти мгновенно, за 10-30 мс, а остальные запросы выполняются дольше (~50-100ms) — из-за сетевых подключений. Эту разницу во времени расширение может использовать для бинарного поиска с целью посимвольного слива URL.

// extensions/browser/api/web_request/extension_web_request_event_router.cc:1117-1127
case DNRRequestAction::Type::BLOCK:
  ClearPendingCallbacks(browser_context, *request);
  DCHECK_EQ(1u, actions.size());
  OnDNRActionMatched(browser_context, *request, action);
  return net::ERR_BLOCKED_BY_CLIENT;

Оракул для подобной тайминг-атаки строится с использованием chrome.tabs.reload для перезагрузки страницы и перехватчика chrome.tabs.onUpdated, помогающего отследить событие status === "complete". Замер времени между reload и завершением загрузки покажет, заблокирован запрос или успешно обработан.

Повторение проверок и бинарного поиска позволяет получить полный URL (с довеском после «?»), затратив на каждый знак строки несколько прогонов. Таким образом, можно незаметно для пользователя украсть включенные приложением в адрес секреты — токены OAuth и сброса пароля, API-ключи, ссылки на контент, закрытый для поисковых систем.

Проверка PoC проводилась на Windows 11 24H2 с использованием Chrome разных версий:

  • 144.0.7559.97 (Stable)
  • 145.0.7632.18 (Beta)
  • 146.0.7647.4 (Dev)
  • 146.0.7653.0 (Canary)

В Google подтвердили возможность подобной атаки по стороннему каналу, но заявили, что решить проблему нереально.

RSS: Новости на портале Anti-Malware.ru