Android обладает богатым набором различных разрешений для приложений. По задумке создателей, эта система ограничения доступа к функциям смартфона должна обеспечить существенные затруднения для вредоносного ПО. Например, без разрешения использовать камеру — программы злоумышленников не смогут получить с нее новую картинку, а без разрешения записывать звук — не получат голос владельца.
На практике самое распространенное разрешение, требуемое приложениями — доступ к хранилищу — дает злоумышленнику практически неограниченные возможности шпионить за владельцем смартфона. Даже не используя никакие уязвимости, любое приложение, которому позволено читать и записывать данные на встроенную память, может найти и украсть любой файл. Это могут быть конфиденциальные документы, диктофонные записи или снимки, а также видео.
Изучая метаданные фотографий можно узнать место, где был сделан снимок (если запись геоданных принудительно не была отключена пользователем). А если проанализировать все фото в галерее, можно построить карту перемещений объекта слежки. Порой и этого достаточно для шантажа, атаки на жертву при помощи социальной инженерии либо же кражи финансовой информации. Однако, есть уязвимость, которая расширяет арсенал злоумышленника до невероятных границ.
Сотрудники компании Checkmarx нашли способ заставить камеру смартфона принудительно делать снимки или записывать видео. Оказалось, что для этого необходима определенная (неназванная в целях безопасности) последовательность действий и внутренних системных вызовов. Все, что после этого остается злоумышленнику — скачать полученные в результате ролики и фотографии.
Это позволяет приложению не имеющему доступ к камере производить полноценный захват видео, звука (в форме аудиодорожки к видео), изображений окружающего смартфон пространства и отслеживать местоположение жертвы (как было описано выше — через геотеги фото). Чтобы проверить свои находки, в Checkmarx создали абсолютно безобидно выглядящее приложение «погода» и наглядно продемонстрировали его работу в видеоролике. Программа выполняет все свои основные функции — показывает текущие метеорологические сведения заданного места.
Однако сразу после первого запуска она устанавливает фоновое защищенное соединение с удаленным сервером злоумышленника и начинает ждать команды. Оно продолжает работать и после закрытия приложения. Есть два режима работы: обычный, когда камера смартфона открывается на экране, и скрытный, в котором камера будет включаться только если смартфон лежит «лицом вниз» или прижат к голове владельца (во время разговора).
В результате эксперимента со смартфона Google Pixel 2XL под управлением последней версии Android 9 были получены геоданные из всех снимков, а также фото и видео в режиме реального времени. Более того, специалисты по кибербезопасности продемонстрировали вполне реальный вариант шпионажа, когда человек разговаривает по телефону рядом с проектором, на который выводятся конфиденциальные данные. В момент разговора смартфон записывает видео, а после этого готовый файл злоумышленник благополучно сохраняет себе.
Информация об этой уязвимости была предоставлена компании Google 4 июля. Спустя несколько дней и после первичного анализа, она получила высокий приоритет, а в августе ее зарегистрировали под кодом CVE-2019−2234. До конца месяца Checkmarx связались с ведущими производителями смартфонов, из которых, как минимум Samsung подтвердил, что его устройства подвержены данной уязвимости.