Атаки кликджекинга: Остерегайтесь идентификации в социальных сетях

Атаки кликджекинга: Остерегайтесь идентификации в социальных сетях
Атаки кликджекинга: Остерегайтесь идентификации в социальных сетях

Трудно удержаться от того, чтобы не кликнуть на ссылку с предложением бесплатного iPhone. Но будьте осторожны: ваш клик могут легко перехватить, и результаты могут быть плачевными.

Что такое Clickjacking?

Кликджекинг – это метод атаки, также известный как редрессинг пользовательского интерфейса, поскольку он осуществляется путем маскировки (или редрессинга) ссылки с помощью наложения, которое обманывает пользователя, заставляя его сделать что-то не так, как он думает. Большинству пользователей социальных сетей нравится то, что они постоянно находятся в них. Злоумышленники могут легко воспользоваться этой привычкой, чтобы заставить пользователей поставить лайк или последовать за чем-то, не замечая этого.

Для этого киберпреступник может разместить заманчивую кнопку – например, с привлекательным текстом, таким как “Бесплатный iPhone – предложение ограниченного времени” – на собственной веб-странице и наложить невидимую рамку со страницей социальной сети таким образом, чтобы кнопка “Мне нравится” или “Поделиться” располагалась поверх кнопки “Бесплатный iPhone”.

Этот простой трюк может заставить пользователей Facebook ставить “лайк” группам или фан-страницам без их ведома. Описанный сценарий достаточно невинен, в том смысле, что единственным последствием для жертвы является добавление в группу социальной сети. Но, приложив некоторые дополнительные усилия, ту же самую технику можно использовать для определения того, вошел ли пользователь в свой банковский аккаунт, и вместо того, чтобы поставить лайк или поделиться каким-то элементом социальной сети, его можно заставить нажать на кнопку, которая, например, переведет средства на счет злоумышленника.

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

Кликджекинг в Twitter

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

Твиты с текстом “Не нажимай”, за которым следовала ссылка, быстро распространялись по тысячам аккаунтов в Twitter. Когда пользователи нажимали на ссылку, а затем на, казалось бы, невинную кнопку на целевой странице, с их аккаунтов отправлялся твит. Этот твит содержал текст “Не нажимайте”, за которым следовала вредоносная ссылка. Инженеры Twitter исправили атаку кликджекинга вскоре после ее начала. Сама атака оказалась безвредной, но она послужила сигналом тревоги, предупреждающим о потенциальном риске, связанном с инициативами Twitter clickjacking. Вредоносная ссылка переводила пользователя на веб-страницу со скрытым фреймом. Внутри фрейма находилась невидимая кнопка, которая отправляла вредоносный твит с аккаунта жертвы.

Кликджекинг в Facebook

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

Когда пользователи принимали объявление, они попадали на страницу с забавными картинками. Но тем временем ссылка публиковалась в ленте пользователей Facebook. Это стало возможным потому, что компонент веб-браузера в приложении Facebook для Android не совместим с заголовками опций фрейма (ниже мы объясним, что это такое), и поэтому допускает вредоносное наложение фреймов. Facebook не признает эту проблему ошибкой, поскольку она не влияет на целостность учетных записей пользователей. Поэтому неизвестно, будет ли она когда-нибудь исправлена.

Кликджекинг в других социальных сетях

Это касается не только Twitter и Facebook. Другие менее популярные социальные сети и платформы для ведения блогов также имеют уязвимости, позволяющие осуществлять кликджекинг. Например, в LinkedIn был обнаружен недостаток, который открывал злоумышленникам возможность обманом заставить пользователей делиться ссылками и размещать их от их имени, но без их согласия. До исправления дефект позволял злоумышленникам загружать страницу LinkedIn ShareArticle в скрытом фрейме и накладывать этот фрейм на страницы с, казалось бы, невинными и привлекательными ссылками или кнопками.

Другой случай – Tumblr, общедоступная платформа для ведения блогов в Интернете. Этот сайт использует код JavaScript для предотвращения clickjacking. Но этот метод защиты становится неэффективным, так как страницы могут быть изолированы во фрейме HTML5, который не позволяет им выполнять код JavaScript. Для кражи паролей можно использовать тщательно продуманную технику, сочетающую упомянутый недостаток с плагином для браузера-помощника паролей: обманом заставляя пользователей вводить ложный текст капчи, они могут непреднамеренно отправлять свои пароли на сайт злоумышленника.

Подделка межсайтовых запросов

Один из вариантов атаки кликджекинга называется подделкой межсайтовых запросов, или сокращенно CSRF. С помощью социальной инженерии киберпреступники направляют CSRF-атаки на конечных пользователей, заставляя их выполнять нежелательные действия. Вектором атаки может быть ссылка, отправленная по электронной почте или в чате.

Атаки CSRF не направлены на кражу данных пользователя, поскольку атакующий не может увидеть ответ на фальшивый запрос. Вместо этого атаки направлены на запросы, изменяющие состояние, например, смена пароля или перевод средств. Если у жертвы есть административные привилегии, атака может скомпрометировать все веб-приложение. Атака CSRF может быть сохранена на уязвимых сайтах, особенно на сайтах с так называемыми “сохраненными недостатками CSRF”. Это может быть достигнуто путем ввода тегов IMG или IFRAME в поля ввода, которые впоследствии отображаются на странице, например, в комментариях или на странице результатов поиска.

Предотвращение фреймовых атак

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

Методы смягчения последствий на стороне клиента называются frame busting или frame kill. Хотя в некоторых случаях они могут быть эффективными, их также можно легко обойти. Именно поэтому методы на стороне клиента не считаются передовым опытом. Вместо уничтожения фреймов эксперты по безопасности рекомендуют использовать методы на стороне сервера, такие как X-Frame-Options (XFO) или более современные, например, Content Security Policy. X-Frame-Options – это заголовок ответа, который веб-серверы включают в веб-страницы, чтобы указать, разрешено ли браузеру показывать их содержимое во фрейме.

Заголовок X-Frame-Option допускает три значения:

  • DENY, которое запрещает отображение страницы во фрейме
  • SAMEORIGIN, что позволяет отображать страницу во фрейме, если она остается в том же домене
  • ALLOW-FROM URI, которое разрешает отображение страницы во фрейме, но только в определенном URI (Uniform Resource Identifier), например, только на определенной, конкретной веб-странице.

Более современные методы борьбы с clickjacking включают политику безопасности контента (Content Security Policy, CSP) с директивой frame-ancestors. Этот вариант широко используется при замене XFO. Одним из основных преимуществ CSP по сравнению с XFO является то, что он позволяет веб-серверу разрешить нескольким доменам обрамлять его содержимое. Однако это пока поддерживается не всеми браузерами.

Директива frame-ancestors в CSP допускает три типа значений: ‘none’, чтобы запретить любому домену показывать содержимое; ‘self’, чтобы разрешить только текущему сайту показывать содержимое во фрейме, или список URL со знаками подстановки, такими как ‘*.some site.com’, ‘https://www.example.com/index.html’ и т.д., чтобы разрешить фреймирование только на любой странице, которая соответствует элементу из списка.

Как защититься от кликджекинга

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

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

Здравый смысл является эффективным средством самозащиты от кликджекинга. Когда вы видите необычный контент, в том числе ссылку, размещенную другом в любой социальной сети, прежде чем что-либо предпринять, спросите себя, является ли этот контент таким, который опубликовал бы ваш друг. Если нет, предупредите своего друга, что он мог стать жертвой кликджекинга.

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

clickfraud, ООО “ИНТЕРНЕТ ЗАЩИТА”, ИНН 7806602123, ОГРН 1227800111769, info@clickfraud.ru
Просмотров: 0