Небезопасная безопасность
Эксперты компании NCC Group выявили новый способ выводить данные через побочный канал из устройств на базе Android. Виновниками проблемы являются процессоры Qualcomm.
В системе Qualcomm Secure Execution Environment (среде безопасного выполнения кода), используемой для безопасного хранения криптографических ключей, присутствует «баг», который допускает утечку данных через модуль предсказания переходов и кэш памяти.
«Атака побочного канала позволяет извлечь приватные ключи из нескольких версий безопасного хранилища ключей Qualcomm. В недавних устройствах на базе Android реализовано аппаратное хранилище ключей, которое разработчики могут использовать для защиты своих криптографических ключей с помощью соответствующих аппаратных инструментов, - говорится в публикации NCC Group. - На некоторых устройствах Qualcomm, использующих технологии TrustZone для защиты ключей, через модуль предсказания ветвлений и кэширование памяти может происходить утечка важных данных, вплоть до извлечения 224- и 256-битных ключей ECDSA».
По утверждению экспертов, технология ARM TrustZone распределяет выполнение кода в смартфонах и встраиваемых устройствах по различным средам; критические важные данные и код обрабатываются в безопасной среде, всё остальное - в том числе, сама операционная система - в обычной среде, так что если злоумышленник находит способ извлекать из неё данные, то информация в безопасной среде остаётся защищённой.

На этих процессорах построено множество популярных Android-смартфонов
«Однако обе среды часто используют одни и те же микроархитектурные структуры, что приводит к возможности атак по побочному каналу», - говорится в публикации NCC. Эксперты продемонстрировали собственный анализатор кэша Cachegrab, с помощью которого из устройства Nexus 5X на базе процессора Qualcomm Snapdragon 808 им удалось извлечь 256-битный ключ ECDSA, используя указанную уязвимость.
Единственная оговорка: атака сработает только при условии, что устройство уже рутовано.
Каким устройствам угрожает «дыра»
«Баг» точно присутствует в устройствах на базе Snapdragon моделей 820, 835, 845 и 855; возможно, ими список не ограничивается.
Qualcomm Snapdragon 855 – это флагманский процессор 2019 г., на основе которого построены топовые смартфоны крупных брендов. У Samsung это линейка Galaxy S10, у Xiaomi – Mi 9 и игровой Black Shark 2, у Lenovo – Z6 Pro, у Huawei – P30 и P30 Pro. Также Snapdragon используется в смартфонах Meizu 16s, OnePlus 7 Pro, Oppo Reno 10x Zoom, ZTE Axon 10 Pro, Sony Xperia 1, LG G8 ThinQ и др.
Snapdragon 845 – это предшественник модели 855, вышедший в 2018 г. Данный процессор используется во флагманских смартфонах Samsung Galaxy S9 и Galaxy Note 9, Xiaomi Mi 8, Mi Mix 3 и Pocophone F1, Oppo Find X, OnePlus 6T, LG G7 ThinQ и V40 ThinQ, Google Pixel 3 XL, Meizu 16th и др.
Процессор Snapdragon 835 Qualcomm выпустила в 2017 г., и на базе него тоже собирались исключительно флагманские смартфоны. К ним относятся Samsung Galaxy Note 8 и Galaxy S8, HTC U11+, Google Pixel 2 XL, LG V30 и G7 One, Xiaomi Mi Mix 2, OnePlus 5, Essential PH-1 от создателя Android Энди Рубина (Andy Rubin), а также игровой смартфон Razer Phone первого поколения, Sony Xperia XZ Premium, Xiaomi Mi6 и др. Qualcomm Snapdragon 820 вышел в первой половине 2016 г. Он применялся в топовых моделях смартфонов LG V20, ZTE Axon 7, Sharp Aquos P1, HP Elite x3, OnePlus 3, LG G5, Xiaomi Mi5, HTC 10 и др.
Неспешный выход патчей
И Qualcomm, и Google уже выпустили патчи для уязвимости (CVE-2018-11976). Хотя уязвимость была выявлена ещё в марте 2018 г, Qualcomm подтвердил наличие проблемы только в мае, и только к ноябрю исследователям удалось договориться с производителем процессоров о сроках раскрытия всех подробностей.
«Как раз в начале 2018 года атаки побочного канала стали одной из самых обсуждаемых тем в сфере защиты информации, - говорит Анастасия Мельникова, эксперт по информационной безопасности компании SEC Consult. - Сказалось раскрытие данных об уязвимостях Spectre и Meltdown в процессорах Intel. Но уже тогда было понятно, что от аналогичных уязвимостей могут страдать любые процессоры, в которых применяется спекулятивное выполнение инструкций (а попросту говоря, вообще любые современные процессоры). Ситуация с Qualcomm это подтверждает».