Бельгийский исследователь Арне Свиннен (Arne Swinnen) рассказал о том, что недавно он помог разработчикам Google устранить неприятный баг в Android 7 и ниже. Эксплуатация проблемы позволяла атакующему извлечь достаточное количество метаданных из установленных в системе приложений, чтобы в итоге установить реальную личность владельца уязвимого устройства. Например, узнать номер его телефона или настоящее имя.

Исследователь сообщил, что проблема кроется в механизме разрешений Android. По умолчанию ОС разрешает приложениям получать доступ к директориям и запускать файлы, однако им не разрешается получать список контента для той или иной папки или читать его. Однако если атакующий точно знает путь к файлу, начинаются проблемы.

«Примечательно, что уже существующие файлы внутри директорий могут быть доступны, и из них можно извлечь метаданные, если имена файлов известны», — пишет Свиннен.

К примеру, приложение YouTube использует стандартный файл youtube.xml, который расположен по адресу /data/data/com.google.android.youtube/shared_prefs/. Данный файл используется для обработки данных внутри приложения в реальном времени. Хотя у атакующего нет прав на чтение данного файла, он все же может запросить информацию о нем, узнав его размер и дату последнего изменения. Так как во время работы YouTube файл обновляется раз в несколько секунд, злоумышленник сможет в реальном времени узнать, когда приложение и устройство используются. У других приложений тоже есть файлы, которые хранятся в совершенно определенных частях их инфраструктуры, так что атака может быть произведена и на них.

Более того, Свиннен сообщает, что многие приложения, включая Facebook и Instagram, используют предсказуемые имена файлов, которые подбираются обычным брутфорсом. Проблема в том, что эти имена содержат личную информацию пользователя. Так, в случае Instagram, приложение имеет файл data/data/com.instagram.android/shared_prefs/<USERID>.xml, а в случае Facebook:s /data/data/com.facebook.katana/shared_prefs/XStorage-LATEST-<USERID>.xml. На месте <USERID> в обоих случаях располагается уникальный идентификатор пользователя, значение которого увеличивается в диапазоне от 0 до 2500000000. И согласно данным исследователя, брутфорс всех ID Instagram занимает чуть больше четырех дней на смартфоне Nexus 4. Долго, но определенно осуществимо.

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

poc
PoC для поиска Instagram ID

Свиннен пишет, что сообщил о проблеме разработчикам Google еще в декабре 2015 года, но исправление уязвимости было представлено только с выходом нового Android 7. За обнаружение бага исследователю выплатили $500 по программе bug bounty.

Оставить мнение