Facebook API позволяет получить доступ к любым отправленным ссылкам через Facebook Messenger
На этой неделе специалисты по безопасности из Checkpoint нашли уязвимость, позволяющую изменять сообщения и ссылки, отправленные через мессенджер Facebook. Facebook быстро исправил этот баг, но пользователям удалось найти новую уязвимость, которая позволяет получить доступ ко всем ссылкам, когда-либо отправленным через мессенджер соцсети.
В основе уязвимости лежит принцип работы Facebook со ссылками. При первой отправке ссылки Facebook собирает всю информацию со страницы — от заголовка до картинки на превью, после чего сохраняет в базе данных под уникальными идентификационными номерами. Такой способ не дает возможности связать ссылки с аккаунтом, с которого они отправлены, но при должном терпении и большом количестве собранных данных теоретически можно сопоставить расшаренные ссылки с конкретными аккаунтами.
Пользователь блога Medium Инти Де Сеукелайре отмечает, что все ссылки получают уникальные номера, но никак не шифруются, это позволяет получить доступ к абсолютно любым ссылкам, которые хранятся в базе данных Facebook. Для проверки своей теории он использовал ссылку на файл в Google Docs, которую он отправил другу.
После отправки ссылки в мессенджере соцсети он получил уникальный номер на эту ссылку в Facebook debugger (инструменте, который позволяет находить ошибки в собираемой информации со страницы) и смог достать ссылку из базы данных через Facebook API. Примечательно, что Facebook сохраняет ссылки в своей базе данных только после клика на них — без этого они не регистрируются в базе.
При помощи простого скрипта Инти Де Сеукелайре сделал парсер с генератором уникальных идентификаторов, который позволяет найти хранящиеся в базе данных Facebook ссылки, отправленные в личных сообщениях в Facebook Messenger. Если бы Facebook использовала любое криптографически стойкое хеширование для генерации таких идентификаторов, то осуществить их подбор было бы практически невозможно. Сама по себе возможность подобрать идентификатор мало что даёт, а вот то, что среди объектов можно идентифицировать ссылки и извлечь их из базы независимо от принадлежности и настроек приватности, уже гораздо серьезнее.
Большинство пользователей не пострадает от такой уязвимости, но те, кто делятся через Facebook конфиденциальной информацией должны лишний раз задуматься о смене мессенджера.
После небольшого анализа уязвимости Инти Де Сеукелайре смог получить следующую информацию:
- Имена;
- Местоположение отправленных ссылок;
- Приложенные файлы, которые должны быть закрыты в рамках настроек конфиденциальности Facebook;
- Данные приложений: уровень друзей, их ники, а также многое другое;
- Ссылки на конфиденциальные документы и другой контент такого типа.
В ответ на запрос о необходимости исправления этой уязвимости представители Facebook ответили, что все действия были произведены в рамках существующей политики соцсети и не противоречат ей.
В мае пользователи подали иск против Facebook, в котором обвинили социальную сеть в сканировании персональных сообщений. Сканирование необходимо для обеспечения безопасности самих — например, фильтрации ссылок на вредоносные файлы, но некоторые опасаются, что Facebook использовала такие инструменты для маркетинговых целей.