Эксперт Принстонского университета Стивен Энгельгардт (Steven Englehardt), недавно уличивший в слежке за пользователями 50 000 самых посещаемых ресурсов по версии Alexa, выяснил, что многие аналитические и рекламные JavaScript-библиотеки также умеют извлекать пользовательские данные через функцию «Вход через Facebook» (Login with Facebook).
При поддержке двоих коллег Энгельгардт подсчитал, что как минимум 434 сайта из топового миллиона по версии Alexa используют сторонние библиотеки JavaScript, которые способны извлекать информацию, передаваемую посредством Login with Facebook. При этом исследователи полагают, что владельцы большинства этих ресурсов даже не подозревают о происходящем. Также специалисты подчеркивают, что утечки данных – это не баг и не проблема «Входа через Facebook». Скорее загвоздка заключается в том, как в современном вебе между собой «общаются» первосторонние и третьесторонние скрипты.
Сбор данных обычно производится двумя способами. Первый работает для сайтов, которые аутентифицируют пользователей посредством «Входа через Facebook». Так, когда человек хочет залогиниться на таком сайте, ресурс отправляет запрос серверам Facebook, а в ответ получает от социальной сети данные об учетной записи этого пользователя. Сторонние библиотеки JavaScript, интегрированные в страницу логина, способны перехватывать пришедшие от Facebook данные и извлекать из них информацию о пользователе и передавать на сторону.
Специалистам удалось выявить семь аналитических сервисов, которые следят за посетителями таким образом. Хотя некоторые из них собирают лишь специфичные для конкретных приложений user ID и на первый взгляд кажутся безобидными, эксперты объясняют, что этот user ID можно конвертировать в Facebook ID, получив больше данных о пользователе. Как видно в приведенной ниже таблице, такие сервисы собирают email-адреса, имена пользователей и их ID, а также информацию о гендерной принадлежности.
Второй сценарий сбора информации выглядит немного сложнее. В данном случае сторонние аналитические сервисы встраивают скрытые iframe на сайты, чтобы хитростью вынудить браузер пользователя войти через Facebook. Затем, как и в первом сценарии, осуществляется перехват и сбор данных о посетителе.
Энгельгардт и его коллеги пишут, что второй сценарий использовался на практике только сервисом Bandsintown. Причем после того как представителей Bandsintown уведомили о происходящем, проблема была оперативно устранена.
В заключение своего доклада эксперты советуют Facebook и другим поставщикам схожих «социальных логинов» провести аудит своих API и изменить их таким образом, чтобы третьи стороны не имели возможности собирать передаваемые этим путем данные.