24000 приложений для Android крадут ваши пароли, контакты и сообщения
Распространенные неверные конфигурации в базах данных Google Firebase позволяют неавторизованным сторонам легко находить и получать доступ к личным данным пользователей в тысячах приложений.
Firebase предлагает различную аналитику сервера, аутентификацию, базы данных, конфигурацию, хранилище файлов, push-сообщения и другие. Все эти сервисы размещены в облаке и могут быть легко использованы.
4,8 процента мобильных приложений, использующих Google Firebase для хранения пользовательских данных, не защищены должным образом, что позволяет любому получить доступ к базам данных, содержащим личную информацию пользователей, токены доступа и другие данные без пароля или какой-либо другой аутентификации.
Firebase используется примерно 30 процентами всех приложений в Google Play Store, что делает его самым популярным решением для хранения приложений Android.
Какие данные сливают?
Уязвимые приложения, идентифицированные нашей командой, были установлены 4,22 миллиарда раз пользователями Android. Учитывая, что у среднего пользователя смартфона установлено от 60 до 90 приложений (на основании статистики за 2019г), велика вероятность того, что конфиденциальность пользователя Android была нарушена хотя бы одним приложением.
Статистика слитых данных.
- Адреса электронной почты: 7 000 000+
- Имена пользователей: 4 400 000+
- Пароли: более 1 000 000
- Телефонные номера: 5 300 000+
- Полное имя: 18 300 000+
- Сообщения: 6 800 000+
- Данные GPS: 6 200 000+
- IP-адреса: 156 000+
- Домашние адреса: 560 000+
Другие данные варьировались от номеров кредитных карт до фотографий удостоверений личности, таких как сканы паспортов, водительские права, ИНН, СНИЛС, доступы на объекты и т. д.
Приложения на основе игр признаны более уязвимыми, чем приложения других категорий, но так же отмечу, что среди этих приложений мне удалось найти и те, которые многие используют в бизнесе.
Наиболее уязвимые базы данных дали злоумышленникам доступ на запись
Из 155 066 проанализированных приложений Firebase 11 730 имели открытые базы данных. В 9 014 из них даже были включены разрешения на запись, которые позволили бы злоумышленнику добавлять, изменять или удалять данные на сервере, а также просматривать и загружать их.
Доступ на запись может позволить злоумышленнику:
- Внедрить данные в приложение - например, позволить хакерам добавить фальшивый заголовок в популярное новостное приложение.
- Использовать приложение в фишинговых и мошеннических целях
- Распространение вредоносного ПО
- Повредить базу данных приложения
Из 11 730 открытых баз данных 4 282 утекли информацию о пользователях. Остальные были пусты или не содержали никакой пользовательской информации, но все еще были уязвимы для атаки.
Google удаляет открытые базы данных из результатов поиска
Распространенная неверная конфигурация Firebase позволяет злоумышленникам легко находить и похищать данные из хранилища. Просто добавив «.json» в конец URL-адреса Firebase, злоумышленник может просмотреть и загрузить содержимое уязвимых баз данных.
Отчет за декабрь 2019 года показывает, что Google удаляет эти уязвимые URL базы данных из результатов поиска. Тем не менее, они все еще индексируются другими поисковыми системами, такими как Bing.
Методология
Чтобы найти открытые базы данных, наша команда безопасности проверила ресурсы каждого приложения на наличие текстовых строк, указывающих, что используется Firebase, например, заканчивающихся на «.firebaseio.com».
Firebase предоставляет простой REST API для доступа к хранимым данным. Все данные хранятся в формате JSON, поэтому к общедоступным базам данных можно обратиться, сделав запрос к URL-адресу базы данных, добавленному «.json».
Например: https://example.firebaseio.com/.json
Если база данных является общедоступной, этот запрос выдаст все содержимое базы данных. В противном случае вы увидите сообщение «Отказано в доступе».
Некоторые базы данных были слишком большими для одного запроса на загрузку, поэтому исследователи использовали опцию «мелкого» ключевого слова, чтобы ограничить глубину ответа, перебирая только ключи и загружая базы данных частями.
Исследователи также проверили доступ на запись, сделав запрос PUT для создания нового узла с некоторым значением, а затем удалив его.
Пустые (но все еще уязвимые) базы данных были удалены из результатов.
Все полученные данные были уничтожены, а само исследование полностью соответствует стандартам и процедурам "white hat".
Наши рекомендации
Для разработчиков приложений большинство неверных конфигураций Firebase можно полностью избежать. Мы рекомендуем разработчикам следовать рекомендациям в собственной документации Google по Firebase.
Эти рекомендации включают в себя:
- Реализуйте правила базы данных Firebase
- Запретите неавторизованным пользователям доступ к конфиденциальной информации
- Не храните пароли в виде простого текста
Для пользователей:
- Не используйте один и тот же пароль для нескольких учетных записей. Используйте менеджер паролей для генерации и хранения надежных случайных паролей
- Используйте только надежные приложения с большим количеством отзывов и установок
- Отслеживайте, к какой информации вы предоставляете доступ приложению
- Не передавайте конфиденциальную личную информацию, такую как домашний адрес, фотографии, удостоверения личности, номера социального страхования, рабочие документы и т. д.
О Firebase
Firebase - это платформа Google для разработки мобильных приложений. Она был запущен в 2011 году и приобретена Google в 2014 году.
Разработчики приложений используют Firebase для:
- Аутентификация
- Хостинг
- Облачное хранилище
- Базы данных в реальном времени
- Аналитика
- Обмен сообщениями
- Admob интеграция
- Машинное обучение