Специалист компании Imperva раскрыл информацию об уже исправленном баге в Facebook. Злоумышленники могли получить доступ к личным данным пользователей и их друзей.
Нашедший проблему исследователь, Рон Масас (Ron Masas) рассказывает, что уязвимость скрывалась в поиске Facebook. Просматривая HTML, специалист заметил, что каждый результат поиска содержит iframe-элемент, очевидно, использующийся для внутреннего трекинга. Масас обнаружил, что по этим iframe’ам в можно определить, вернулся ли поисковый запрос с положительным или отличительным результатом.
Таким образом, используя простой принцип «да/нет», исследователь мог узнать, ставил ли пользователь лайк той или иной странице, делал ли фото в определенных локациях, если ли среди друзей пользователя люди с определенным вероисповеданием, определенным именем, друзья, живущие в конкретной стране или регионе, и так далее и тому подобное. Соединив все эти косвенные данные воедино, потенциальный злоумышленник имел возможность составить весьма детальный «портрет» своей жертвы, выявить личность пользователя и его друзей.
Однако некоторые личные данные все же невозможно было «прощупать» публичным поиском Facebook, и специалист решил обойти и и это ограничение. Масас создал вредоносную PoC-страницу, на которую потенциальный атакующий мог бы заманивать своих жертв. Любое взаимодействие с этой страницей (даже простой клик в любом месте или прокрутка) приводило к исполнению кода JavaScript, автоматически прогонявшему в новой вкладке поисковые запросы через Facebook Graph API. Все, связанное с iframe’ами возвращалось в fb.frames.length и тщательно записывалось.
Исследователь отмечает, что также можно было использовать технику tab under, то есть принудить поиск Facebook незаметно открываться в фоновой вкладке, тогда как основная вредоносная страница могла отвлекать внимание жертвы онлайн игрой, стримингом фильма или чем-то еще. Запись PoC-атаки можно увидеть в ролике ниже.
Специалист пишет, что такую атаку заметит далеко не каждый, ведь у многих людей в браузере открыто такое количество вкладок, что появление еще одной, лишней, они попросту не заметят. При этом атака работала не только против Chrome, но и против других браузеров. Еще хуже пришлось бы мобильным пользователям, ведь на экране смартфона видно лишь число открытых вкладок, а не их содержимое.
В настоящее время уязвимость уже устранена, так как Масас уведомил Facebook о проблеме еще в мае текущего года, и на исправление компании потребовалось совсем немного времени. Причем теперь, когда информация о баге была опубликована открыто, представители Facebook подчеркивают, что следов эксплуатации этой «дырки» выявлено не было.