Уязвимость в приложении знакомств Bumble раскрывала точное местоположение пользователя

Инженер платежной компании Stripe Роберт Хитон выяснил, что приложение для онлайн-знакомств Bumble раскрывает точное местоположение любого пользователя.

robertheaton.com
robertheaton.com

Подобная уязвимость ранее содержалась и в Tinder. До 2014 года сервис вычислял расстояние между пользователями на их устройствах, что делало такой трафик уязвимым. После ряда инцидентов приложение начало обрабатывать всю информацию на своем сервере и округляло расстояния перед их отображением. Однако с помощью техники трилатерации исследователи подделали обновления местоположения в Tinder, перемещаясь по городу целевого пользователя. В каждой новой локации они спрашивали приложение, как далеко находится их жертва. В итоге исследователи нарисовали на карте три круга с центрами и радиусами, равными заявленным расстояниям до пользователя. Точка, в которой пересекались все круги, дала точное местоположение жертвы. Tinder исправил эту уязвимость, вычислив и округлив расстояния между пользователями на их серверах, и отправив своему приложению только эти полностью округленные значения.

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

Хитон предположил, что код приложения передает точное расстояние в функции math.round () и возвращает результат. Это делает возможной трилатерацию.

Инженер определил, что в коде сервера Bumble используется функция math.floor (), которая возвращает наибольшее целое число, меньшее или равное заданному значению. В итоге его метод сработал.

Чтобы неоднократно запрашивать недокументированный API Bumble, потребовались некоторые дополнительные усилия, в частности, отказ от схемы аутентификации запроса на основе подписи. Исследователи использовали Burp Suite как HTTP-прокси.

HTTP-запрос, который Bumble отправляет, когда пользователь выбирает кого-то:

POST /mwebapi.phtml?SERVER_ENCOUNTERS_VOTE HTTP/1.1
Host: eu1.bumble.com
Cookie: CENSORED
X-Pingback: 81df75f32cf12a5272b798ed01345c1c
[[...further headers deleted for brevity...]]
Sec-Gpc: 1
Connection: close { "$gpb": "badoo.bma.BadooMessage", "body": [ { "message_type": 80, "server_encounters_vote": { "person_id": "CENSORED", "vote": 3, "vote_source": 1, "game_mode":0 } } ], "message_id": 71, "message_type": 80, "version": 1, "is_background": false
}

Запрос возвращает список размытых изображений, рядом с каждым показывается идентификатор пользователя:

{ // ... "users": [ { "$gpb": "badoo.bma.User", // Jenna's user ID "user_id":"CENSORED", "projection": [340,871], "access_level": 30, "profile_photo": { "$gpb": "badoo.bma.Photo", "id": "CENSORED", "preview_url": "//pd2eu.bumbcdn.com/p33/hidden?euri=CENSORED", "large_url":"//pd2eu.bumbcdn.com/p33/hidden?euri=CENSORED", // ... } }, // ... ]
}

Как объяснил Хитон, подписи заголовков запросов Bumble генерируются в JavaScript, доступном в веб-клиенте Bumble, который также обеспечивает доступ к любым используемым секретным ключам.

Оттуда нужно было идентифицировать конкретный заголовок запроса (X-Pingback), несущий подпись; открыть файл JavaScript; определить, что код генерации подписи является просто хешем MD5; выяснить, что подпись, переданная серверу, является хешем MD5 комбинации тела запроса (данных, отправленных в Bumble API) и неясного, но не секретного ключа, содержащегося в файле JavaScript.

После этого Хитон смог сделать повторные запросы к Bumble API, чтобы проверить свою схему определения местоположения. Он сказал, что с помощью проверочного скрипта Python для запроса API на поиск цели потребовалось около 10 секунд.

Инженер сообщил о своих выводах Bumble 15 июня 2021 года. 18 июня компания внесла исправление. Хитон за описание уязвимости получил $ 2000.

В обсуждении пользователи вспомнили, что аналогичная уязвимость была и на сайте DeviantArt более 10 лет назад.

В 2020 году исследователи из организации Independent Security Evaluators обнаружили уязвимость в Bumble, которая позволяла узнать номер идентификатора каждого пользователя. Если учетная запись была подключена к Facebook, можно было даже узнать, каким записям и фото он поставил лайк. Кроме того, уязвимость позволяла злоумышленнику определить приблизительное местоположение интересующего его пользователя.

Это стало возможным благодаря тому, как работает API Bumble, который позволял перебирать все номера идентификаторов пользователей, просто добавляя единицу к предыдущему идентификатору.

Читайте так же:

  • YouTube выплатил представителям музыкальной индустрии более $4 млрд за последний годYouTube выплатил представителям музыкальной индустрии более $4 млрд за последний год За последние 12 месяцев YouTube выплатил представителям музыкальной индустрии по всему миру более $4 млрд, из которых 30% пришлось на пользовательский контент (UGC). Сервис ставит перед собой цель стать ведущим источником дохода для музыкальной индустрии и помочь артистам со всего […]
  • Как скачать текст с сайта в документ вордКак скачать текст с сайта в документ ворд MS Word гораздо мощнее, чем вы думаете. Популярный инструмент обработки текстов используется для всех видов задач. Не все знают об этом, но он также может быть использован для открытия веб-страниц в формате HTML. В этом посте вы узнаете, как можно открывать HTML-файлы в Word и […]
  • Google Ads анонсировал новые возможности для продвижения приложенийGoogle Ads анонсировал новые возможности для продвижения приложений На конференции I/O 2021 Google Ads анонсировал несколько обновлений в области продвижения приложений. Они помогут разработчикам привлекать новых пользователей и удерживать существующих. Основные изменения: Запуск кампаний для приложений на декстопах. В июне Google Ads расширит охват […]
  • ВКонтакте выпустила набор стикеров «для интеллигентного общения»ВКонтакте выпустила набор стикеров «для интеллигентного общения» ВКонтакте появился бесплатный набор стикеров с персонажами. Которые помогают выразить сильные эмоции без матерных слов. Например, такие: Когда пользователь набирает в комментариях или в мессенджере одно из ненормативных выражений. Соцсеть предложит добавить набор и отправить вместо […]