Изображение: Pexels
Исследователи информационной безопасности обнаружили уязвимость в социальной сети Facebook – эта ошибка могла приводить к утечкам конфиденциальной информации о пользователях и их друзьях. Ошибка обнаружена в функции поиска соцсети.
В чем проблема
По словам исследователя Рона Масаса из компании Imperva, страница, на которой отображаются результаты поиска, включает в себя связанные с результатами поиска элементы iFrame. Конечные URL этих iFrame никак не защищены от атак межсайтовой подделки запроса cross-site request forgery, CSRF).
Для эксплуатации уязвимости, атакующему нужно обманом убедить пользователей посетить специальный сайт. Важно, чтобы при этом пользователь был залогинен в свой профиль в Facebook. При любом клике на веб-странице в фоновом режиме будет исполнен JavaScript-код. Этот код открывает новую вкладку с URL Facebook, в которой выполняется заранее определенный запрос с целью получения нужной злоумышленнику информации.
Данную атаку можно использовать как для поиска информации вида «фото из отпуске», так и для извлечения более чувствительных данных, включая:
- наличие у пользователя друзей с определенным именем или ключевым словом в названии профиля;
- каким страницам ставил лайки пользователь, и в каких группах он состоит;
- есть ли у него друзья, подписанные на определенную страницу;
- наличие фото из определенных локаций или стран;
- публиковал ли пользователь записи, содержащие определенные ключевые слова;
- есть ли у него друзья определенного вероисповедания;
- и т.д.
Таким образом, уязвимость раскрывает чувствительные данные пользователей даже в том случае, если они установили настройки приватности, запрещающие демонстрацию такой информации посторонним.
Процесс может быть многократно повторен без необходимости открытия новых вкладок. В итоге данная атака представляет наибольшую опасность для мобильных пользователей – им труднее отследить открытие новых вкладок.
Как защититься
Исследователи обратились в Facebook, и компания уже устранила уязвимость. Инженеры соцсети добавили защиту от CSRF-атак.
Когда разработка ставится на поток из-за высокого спроса на услуги и продукты, все больше разработчиков внедряют процессы непрерывной интеграции и поставки (CI/CD). Неотъемлемая часть CI/CD — обеспечение безопасности разрабатываемого ПО. Особенно важно точно и без отрыва от производства выявлять и устранять уязвимости. Однако на практике не все так просто.
Многие ошибочно считают, что анализа качества кода достаточно для проверки ПО, в том числе на риски безопасности. А те, кто понимает, что это не так, и прибегает к инструментам анализа защищенности, сталкиваются с проблемой верификации уязвимостей. Она, как правило, выполняется вручную, а с учетом того, что число уязвимостей может достигать сотен и тысяч, эффективность процесса CI/CD и целесообразность его поддержки оказываются под большим вопросом.
В четверг, 22 ноября в 14:00, эксперт отдела систем защиты приложений Positive Technologies Алексей Жуков проведет бесплатный вебинар. В его ходе вы узнаете, как добиться того, чтобы в условиях непрерывных процессов, больших объемов и горящих дедлайнов дефекты безопасности не остались незамеченными, а их верификация не стала бутылочным горлышком. Алексей расскажет о том, как грамотно автоматизировать процесс обеспечения безопасности ПО и повысить эффективность выполнения основных задач. Вебинар будет полезен для разработчиков и специалистов DevOps.
Для участия в вебинаре нужно зарегистрироваться.
Комментарии (3)
Revertis
22.11.2018 13:01Если от использования фейсбука не отвертеться, то можно использовать Firefox с расширением типа Firefox Multi-Account Containers. Логинитесь в фейсбук только в определенном отдельном контейнере, и при открытии ФБ в обычной вкладке у вас никакого логина не наблюдается.
pansa
24.11.2018 02:05Imho, заголовок желтит, а описание проблемы подано нечетко (заведомо?).
Если почитать оригинал, то уязвимость заключается в том, что левый сайт может получить _количество_ найденных результатов (но не сами результаты!) по определенному запросу в fb от имени залогиненного юзера. Ещё раз — никакие данные не утекают, можно только по косвенному признаку — количеству найденных результатов — судить о том, что там лайкал юзер. Нельзя получить, допустим, список групп, иначе как пробивкой по всем существующим в фб группам.
Слава Same Origin Policy! Т.е из неродного ориджина (evil site) SOP позволяет таки получить значение
.frame.count(), что и позволяло получить кол-во найденных результатов, т.к на каждый результат, как я понял, фб создавал новый фрейм… Ну, неприятно, конечно, но вот прямо на «Вселенная опасносте!», как это подаёт заголовок, не тянет.
Kotman34
Какая конфиденциальная информация на ресурсе, где люди о себе всё сами выкладывают на обозрение?