Кликджекинг — что это такое? Защита сайта от кликджекинга
Кликджекинг – технология обмана посетителей сайтов, которая состоит в том, что на страницу сайта наслаивается другая, не видимая. При этом кнопки и ссылки на нормальной и подставной страницах совпадают по местоположению.
- Пользователь нажимает на ссылку, тем самым активируя скрытые функции.
- В результате этого пользователь может быть без согласия подписан на платные сервисы, либо злоумышленники получат данные авторизации, логины и пароли каких-то сервисов.
- Таким образом человек может оплатить покупки в интернет-магазинах, не подозревая о их посещении.
- В последнее время кликджекинг может использоваться для генерации поведенческих факторов с целью улучшения ранжирования другого сайта в поисковых системах.
Пользователи сайтов, применяющих кликджекинг, даже не подозревают, что совершали какие-то действия на посторонних ресурсах.
Проблема в том, что нередко и сам веб-мастер ставится жертвой. В процессе сотрудничества сторонние сервисы могут внедрять вредоносный код на страницы сайтов. Например, для увеличения конверсии, изучения поведения покупателей.
Влияние кликджекинга на поисковое продвижение
В конце 2015 года Яндекс ввел специальный алгоритм для отслеживания и пессимизации сайтов, примеряющих кликджекинг.
- Алгоритм анализирует сведения о сайте в течение определенного промежутка времени. В зачет берутся только актуальные данные. Применение кликджекинга в прошлом не приводит к снижению позиций сайта.
- Кликджекинг выявляется и наказывается по факту использования. Просто наличие кода не приведет к санкциям. Сервисы, которые тайно разместили код на стороннем ресурсе не преследуются.
- Понижаться в поиске будут только сайты, применяющие кликджекинг.
По отчетам Яндекса с момента введения фильтра против кликджекинга было выявлено и пессимизировано около 15.000 сайтов. Обнаружено было более 50 сервисов, которые применяли технологию кликджекинга на сайтах своих партнеров и клиентов.
Защита сайта от кликджекинга
Чтобы не оказаться жертвой недобросовестных партнеров, веб-мастеру следует быть предельно осторожным при выборе подключаемых к сайту сторонних сервисов. Обратите особое внимание на следующие события.
- Идентификация пользователей через социальные сети.
- Появление фактов телефонных звонков посетителей без запроса номера.
- Получение сервисами информации, которую пользователи не указывали на сайте.
При появлении подозрений следует использовать инструменты веб-разработки в браузере для проверки обращений сервиса в социальные сети. Дополнительно целесообразно применить Content Security Policy для ограничения взаимодействий сайта со сторонними ресурсами.
как проверить и не попасть под санкции?
Как говорят, знал бы прикуп, жил бы в Сочи. Однако это уже будет не красивая игра, а мухлеж с краплением карт. К чему все это? Да все просто. Каждый бизнесмен не откажется узнать ценную информацию о своих потенциальных клиентах, которую можно будет использовать для повышения продаж. Скажем, профиль ВКонтакте, телефон, почту или что-то еще.
Но далеко не каждый посетитель согласится оставить такую информацию о себе. И тут на помощь предпринимателям всегда готовы прийти сторонние сервисы по получению информации. Как оказывается, не все такие методы работы с клиентами в глазах поисковых систем, а в частности Яндекса, законны.
Не хочет клиент оставлять вам данные – силой их брать не стоит (и обманом тоже). Эти действия называются страшно красивым словом «кликджекинг», они караются санкциями с понижением позиций в органике.
Яндекс порадовал мир санкциями за серые методы выуживания информации у посетителей сайта (именно это и называется кликджекингом) еще в декабре 2015 года. Вскользь об этой технологии мы уже писали.
Но, как показывает практика, до сих пор далеко не все владельцы сайтов знают, что такое кликджекинг и как он может навредить сайту. Что ж, давайте разбираться, что это такое, чем опасно, как проверить и с какими сервисами лучше не дружить.
Что такое кликджекинг?
Цитирую, как написано в Яндекс.Блоге для вебмастеров: «Кликджекинг – механизм обмана, связанный с размещением на сайте невидимых элементов, взаимодействие с которыми пользователь осуществляет, не подозревая этого».
Что значит «невидимые элементы» – это такие элементы, которые невозможно увидеть на сайте, скажем, потому что они расположены на специальном прозрачном слое, поверх основных, видимых деталей сайта. Обычно поверх кнопок, форм, видеороликов. Т.е. там, где пользователи предположительно будут взаимодействовать с сайтом. Нажимает пользователь на видеоролик, а на самом деле попутно тыкает на кнопку «соглашаюсь поделиться информацией о себе» – ну это если утрированно объяснять.
Чем опасен кликджекинг?
Как таковая технология кликджекинга для сайта не опасна. Ну стоит код, который подгружает данные о пользователях, самому сайту от этого ни холодно ни жарко. Проблема не в коде, проблема в том, что с таким поведением активно борется Яндекс. За кликджекинг предусмотрены санкции с понижением позиций от 20 – 30 пунктов и более.
Примечательно то, что в настоящее время вебмастера не получают уведомлений о том, что на сайте используется запрещенная технология и за это могут быть наложены санкции. Поставил ты себе код какого-нибудь новомодного счетчика в маркетинговых целях, сайт оказывается под санкциями, а ты и не догадываешься об этом.
Как говорят яндексовцы, в ближайшее время появится такое предупреждение, но пока только постфактум вы можете получить сообщение с ай-яй-яй о применении к сайту санкций за установку и использование запрещенного кода.
Как оказывается, несмотря на значительный срок существования санкций, часть собственников до сих пор не знают, что это такое. Подтверждение тому – небольшой опрос, который мы провели на днях в группе (на фото фрагмент поста, где видны результаты голосования)
Что принимают за кликджекинг?
Пользователи не до конца разбираются в том, что за зверь этот кликджекинг. Поэтому на практике возникает много вопросов. Даже если посмотреть на скрин выше (там речь идет о коде для ретаргетинга из ВКонтакте, который устанавливается на сайте), видно, что мнения разделились. И часть людей считают это кликджекингом. Чисто теоретически код для ретаргетинга из ВКонтакте вполне можно отнести к кликджекингу. Но пока прецедентов не случалось.
Таргетированная реклама по коду из соцсетей, как я уже писала, – это, пожалуй, самый волнующий вопрос, да оно и понятно. Если рассматривать принцип работы, то он вполне вписывается в схему кликджекинга. Смотрите сами: вы ставите код на сайт, пользователь заходит, смотрит нужные разделы, в это время система подхватывают о нем информацию и собирают его в специальные базы. После чего за пользователем начинает гоняться реклама холодильника, ну или что он там смотрел.
Яндекс напрямую ничего не говорит про код из ВК:
Судя по всему, код ретаргетинга может рассматриваться как кликджекинг, но, скорее всего, для него сделано исключение.
С этим же вопросом я обратилась в службу поддержки ВКонтакте.
Что делать? Использовать спокойно, пока санкций за это не замечено.
Что еще может быть под подозрением:
- Социальный замок. Если кто не знает, суть такая: часть контента на странице закрыта специальным кодом. Чтобы посмотреть, что там такого интересного спрятали, надо поделиться сообщением в своих социальных сетях.
Конечно, это отнести к кликджекингу нельзя, ведь посетитель сразу видит условия и сам принимает решение, делиться информацией или нет. Да и потом, система не собирает данные о пользователях, вы просто улучшаете шаринг своего контента, не совершая ничего незаконного. Использовать можно.
- Форма подписки (когда на сайте открывается поп-ап и большая часть контента скрыта) – такие способы собрать информацию о пользователе также вызвали сомнения в честности. Однако напрасно, нет в них ничего запрещенного.
Всплывающее окно видно, его практически всегда легко закрыть. Пользователь видит форму и сам принимает решение, что делать: оставить контактные данные или закрыть форму и смотреть контент.
У всплывающего окна могут быть несколько другие проблемы: мешает и раздражает, сложно найти кнопку, чтобы закрыть, всплывает несколько раз. Но это не относится к кликджекингу. Использовать можно.
- Активный фон сайта (здесь речь идет о том, что пользователь случайно может кликнуть не на ту кнопку или перепутать элементы). Также к кликджекингу не относится, хотя и очень похоже.
Здесь больше вопросы к юзабилити и удобству сайта. Делайте все гармонично, смотрите, чтобы пользователям было комфортно и интуитивно просто на вашем сайте. Не обманывайте, пусть покупка будет желанной, а не случайной (чтобы гаденького осадочка не осталось). Но в целом лучше не использовать.
- Push-рассылки. Кто не знает – это небольшие сообщения, которые появляются во всплывающем окне при просмотре сайта. Своего рода альтернатива рассылкам. К кликджекингу отношения не имеет, поскольку сообщения будут показываться только после того, как вы согласитесь их просматривать.
Никаких данных в этих случаях о пользователе не собирается дополнительно. К минусам, разве что назойливость можно отметить. Использовать можно, но не для всех тематик подойдет.
Страхи и мифы мы рассмотрели. Теперь коротко скажу, чего стоит опасаться.
Итак, если код, который вы ставите на сайт, будет получать от пользователей данные, которые они самостоятельно не предоставляют (телефон, почту и т.д.), провоцировать действия, которые пользователи не планировали делать и все в таком духе – здесь можно бить в колокола и срочно удалять такие системы увеличения продаж с сайта. В противном случае слетите в органике по всем направлениям.
Каких сервисов точно стоит опасаться?
Пока изучала материалы для статьи, в Сети нашла много упоминаний о сервисах-вредителях, которые доставили использующим их людям массу неприятностей в виде санкций Яндекса.
Делюсь самыми распространенными, чтобы вы не наступили на грабли:
- socfishing.ru
- leadvizit.ru
- socbox.ru
- soceffect.ru
- lptracker.ru
- sochunt.ru
- userclick.su
Ну разве заподозришь здесь обманную технологию? На первый взгляд все чинно-благородно и попробовать бесплатно очень хочется. Кстати, приведенный выше список сервисов – далеко не исчерпывающий. Просто посмотрите их, изучите и сторонитесь похожих.
Что делать, если опасаетесь за судьбу своего сайта?
У вас на сайте стоит код стороннего сервиса, и вы не уверены, что это не приведет к последствиям? Яндекс рекомендует смотреть, делает ли сервис обращение к социальным сетям во время работы или нет.
Как проверить? Заходите на сайт, кликаете правой кнопкой мыши, и из выпавшего списка выбираете «исследовать элемент» (Firebug). В открывшимся окне выбираете вкладку «сети» (network) и в формирующемся списке окна проверяем, чтобы не было обращения к соцсетям:
Опасность в том, что часто сервисы, обещающие увеличение продаж («удержим посетителей, догоним ушедших» и т. п.), не распространяются о том, что используют обманную технологию, за которую ваш сайт может попасть под санкции.
Проверяйте! Не будем забывать, что незнание не освобождает от ответственности, а санкции накладываются не на сервис, который вам предоставил код, а на ваш сайт, потому что вы его используете.
Будьте внимательнее к своему бизнесу. Повышайте конверсию честными способами, работайте комплексно над продвижением сайта, уделяйте должное внимание юзабилити и будет вам счастье.
Кликджекинг — Вебмастер. Справка
Кликджекинг — это мошенническая техника, которая может использоваться, например, для сбора персональных данных посетителей сайта без их ведома.
Посетитель, зашедший на сайт с кликджекингом, может незаметно для себя оформить подписку в социальной сети или «лайкнуть» какую-либо запись. После этих действий сайт автоматически определяет учетную запись посетителя, а его владелец может использовать личные данные по своему усмотрению. Например, номер телефона — для навязчивых звонков с предложениями купить тот или иной товар. Чаще всего подобный механизм используется в сервисах по «улучшению продаж».
Если на вашем сайте обнаружен кликджекинг, рекомендуем полностью отказаться от его использования. При этом не обязательно отказываться от сервиса, предоставляющего подобную услугу. Достаточно отключить ее. Однако стоит помнить, что кликджекинг — мошенническая техника, и вам решать, стоит ли доверять сервисам, которые могут использовать подобные механизмы.
Типичной реализацией кликджекинга является создание на сайте скрытых элементов, которые взаимодействуют с социальной сетью. Как правило, элементы располагаются поверх кнопок, форм, видеороликов и т. п. Также они могут перемещаться вслед за курсором мыши по странице. Такие элементы не видны посетителю, но их можно обнаружить в HTML-коде страниц.
Чтобы найти кликджекинг на сайте, необходимо выявить фрагменты кода, отвечающие за скрытые элементы. Для поиска вам требуется авторизоваться в социальной сети и использовать консоль (веб-консоль) браузера.
Рекомендуем воспользоваться такими браузерами, как Mozilla Firefox, Яндекс.Браузер, Google Chrome, Opera. Для вызова консоли браузера обычно используется сочетание клавиш Ctrl + Shift + J, а также Ctrl + Shift + K при работе в Mozilla Firefox. Для семейства операционных систем Apple используются сочетания ⌥ + ⌘ + J и ⌥ + ⌘ + K соответственно.
Внимание. Если вы решили удалить с сайта HTML-код, отвечающий за кликджекинг, перед этим создайте резервную копию сайта.
Ниже приведен пример работы в веб-консоли Mozilla Firefox с авторизацией во Вконтакте.
Авторизуйтесь в социальной сети. Если вы по тем или иным причинам не можете этого сделать, то обнаружение кликджекинга по данному алгоритму возможно не во всех случаях.
Выберите URL страницы вашего сайта для проверки на наличие кликджекинга.
- Удалите cookies сайта в браузере.
Откройте новую вкладку в браузере.
Откройте консоль браузера. Затем введите в адресную строку выбранный ранее URL. Дождитесь загрузки страницы, имитируя активность посетителя: шевелите мышью, прокручивайте страницу.
Выявите обращения сайта к адресам социальной сети.
Для поиска в консоли перейдите на вкладку Сеть и найдите адреса социальной сети, которые соответствуют событиям «авторизация», «лайк». Например, во Вконтакте событию «авторизация» соответствует путь URL widget_auth.php, событию «лайк» — widget_like.php.
Если подобный адрес социальной сети не найден, то попытки кликджекинга не произошло. Возможно вы уже удалили со страницы код, реализующий кликджекинг, или вам не удается воспроизвести попытку кликджекинга по данному алгоритму.
Определите код, который вызывает подгрузку скрытого элемента сайта.
Для поиска перейдите на вкладку Инспектор. Найдите HTML-элементы, соответствующие ранее указанным адресам социальной сети.
Далее проверьте каждый найденный элемент — отвечает ли он за скрытую или видимую часть сайта. Для проверки наведите курсор мыши на элемент — на странице сайта подсветится его область. Элемент может находиться в невидимой части экрана. Чтобы увидеть его, нажмите на элемент правой клавишей мыши. Затем в контекстном меню выберите пункт Прокрутить в вид.
Если элемент сайта является скрытым, то, вероятнее всего, вы зафиксировали кликджекинг — перейдите к следующему шагу.
Примечание. Если на вкладке Инспектор искомый фрагмент кода не обнаружен, но на вкладке Сеть есть обращения к социальной сети по указанным выше адресам — вы зафиксировали кликджекинг.
Определите код, который вызывает взаимодействие с социальной сетью. При этом особое внимание уделите элементам script, iframe или object.
Если элемент не найден, можно выявить его, последовательно удаляя фрагменты кода, которые вызывают сомнения. После удаления повторите шаги с 3 по 8.
Когда необходимые изменения внесены на сайт, вы можете воспользоваться кнопкой Я все исправил в Вебмастере на странице Безопасность и нарушения, чтобы дополнительно сообщить роботу о предпринятых вами действиях.
Примечание.
Повторно нажать кнопку Я все исправил для одного сайта можно через месяц. Далее, во избежание злоупотребления кнопкой, этот период будет увеличиваться и может составить три месяца. Поэтому рекомендуем воспользоваться кнопкой только тогда, когда вы уверены, что нарушений на сайте больше нет.
Если в Вебмастере права на сайт подтверждены у нескольких пользователей, договоритесь, кто и когда отправит сайт на перепроверку. После нажатия кнопки ни один из пользователей не сможет нажать ее повторно в течение месяца.
Проверить сайт на кликджекинг | Санкции ПС «Яндекс» за кликджекинг
В конце декабря 2015 года Яндекс запустил алгоритм ранжирования, который может понижать позиции сайтов, использующих технологию кликджекинга. В этой статье мы расскажем о том, что это за технология и как она влияет на ранжирование сайта.
Clickjacking подразумевает размещение на сайте невидимых элементов, с которыми пользователь взаимодействует без своего согласия. То есть он, не подозревая об этом, выполняет выгодное для злоумышленника действие.
Примеры кликджекинга
Эта обманная технология эффективно используется в целях деанонимизации посетителей сайта. Наиболее часто к ней прибегают для идентификации ID в социальных сетях («ВКонтакте», Facebook, Twitter и др.). Происходит это следующим образом:
- Злоумышленник скрывает в прозрачном iFrame кнопку из социальной сети («Мне нравится», Follow и т. п.). Невидимый глазу iFrame размещается над элементом страницы, на который пользователь должен нажать. Типовой пример такого элемента — кнопки воспроизведения видео, которые обычно располагаются в нижнем левом углу либо в центре окна плеера. Также распространен вариант, при котором iFrame перемещается вслед за курсором мыши.
- Посетитель страницы жмет на скрытую кнопку — допустим, это «лайк» или вступление в группу во «ВКонтакте».
- Злоумышленник таким образом получает информацию о профиле пользователя в соцсети и, как правило, прямой доступ к нему через личные сообщения или по контактным данным, если такие указаны на странице.
Отношение поисковой системы к таким манипуляциям ярко негативное. Несмотря на это, некоторые «специалисты» предлагают его в качестве «сервиса по увеличению продаж», причем нередко даже не ставят клиента в известность о том, что в действительности будут делать. Поэтому стоит насторожиться, если Вам предлагают сервис, который выполняет следующие действия:
- предоставляет информацию, которую пользователь не сообщает самостоятельно;
- производит идентификацию профиля в соцсети;
- осуществляет звонки без явного запроса номера телефона.
Все эти действия могут повлечь за собой санкции Яндекса за применение кликджекинга.
Что нужно знать о влиянии кликджекинга на ранжирование?
Для многих веб-мастеров и владельцев сайтов внедрение нового алгоритма стало неожиданностью. О работе кликджекинг-фильтра они узнали уже после того, как их сайты резко потеряли по 20–30 позиций в выдаче. Причина пессимизации прояснилась только после обращения в службу техподдержки ПС.
Как сообщает Яндекс, алгоритм работает только по факту реального применения кликджекинга. То есть если такой код имеется на сайте, но не активен, то фильтр на него не среагирует.
Также стоит отметить, что ограничения вводятся на основании анализа данных за краткосрочный период. Если кликджекинг использовался, например, несколько недель назад, это никак не отразится на позициях сайта в текущий момент.
Санкции распространяются только на сайты, на которых фильтр обнаружил активный код кликджекинга. При этом ресурсы, предлагающие обманные сервисы, под действие алгоритма не подпадают. К слову, за январь 2016 года Яндекс обнаружил более 15 000 сайтов, использующих эту технологию, и около 50 сервисов, предоставляющих ее. В их числе vk-tracker.ru, soceffect.ru, soctracker.com, soctracker.ru, soctraffic.ru, soc-spy.ru и др.
При обнаружении на сайте технологии кликджекинга позиции по каждому из запросов стремительно упадут, а на их восстановление уйдет около двух недель. При этом поисковая система не гарантирует их 100%-го возвращения на прежний уровень.
Для убедительности покажем пару наглядных примеров из реальной практики.
Пример 1. Фильтр Яндекса среагировал на действие сервиса CoMagic. Позиции упали, на их восстановление ушло несколько дней. С учетом того, что эти произошло в канун Дня влюбленных и незадолго до 23 февраля, Вы можете себе представить, сколько потенциальных переходов на сайт было упущено.
Пример 2. Применение санкций спровоцировал сервис, предложенный ресурсом http://admeo.ru/. В среднем позиции упали на 18,94, а после снятия фильтра возросли лишь на 17,88 пункта. Отрицательная разница — 1,06. «Мелочи», — скажете Вы? Нет. Это упущенная выгода.
Как проверить сайт на наличие кликджекинга?
Узнать, работает ли на сайте кликджекинг, можно в службе техподдержки внешнего сервиса. Тем не менее, как показывает практика, не все сервисы признают факт использования данной технологии.
Проверку сайта можно осуществить и самостоятельно. Например, современные браузеры содержат специальные инструменты для веб-разработчиков, позволяющие узнать, обращается ли сервис к соцсетям, работая с сайтом.
Отчет плагина Firebug об обращении к соцсетям
Если сайт не интегрирован с соцсетями, может быть полезен стандарт CSP (Content Security Policy), ограничивающий использование внешних ресурсов.
Узнать о применении технологии кликджекинга можно в сервисе Яндекс.Вебмастер. Там в разделе «Нарушения» должно появиться специальное предупреждение.
Кликджекинг-фильтр будет безопасен для позиций сайта, когда на нем останутся только «чистые» сервисы, позволяющие определить контактные данные пользователя исключительно с его согласия (наиболее известный пример — форма обратной связи). В таком случае будет достигнута главная цель внедрения алгоритма — ограждение пользователя от навязчивой рекламы и возможных вредных действий со стороны злоумышленников.
Полезно
0
Как кликджекинг вредит вашему бизнесу и сайту?
Способов продвижения бизнеса в сети сегодня множество. Каждый СЕО-специалист старается найти собственные варианты быстро и наверняка получить клиентов для бизнеса заказчика. Среди методов есть не только разрешенные честные способы, но откровенно мошеннические схемы. Одним из вариантов может стать продвижение с помощью кликджекинга. Что это такое и стоит ли его использовать?
Что такое кликджекинг?
Само слово пришло к нам из английского, буквальный перевод слова Clickjacking – захват клика. По сути кликджекинг – мошеннический способ получения конфиденциальной информации о пользователе.
Самое безобидное, что может произойти, это подписка на группы и сообщества в социальных сетях без вашего ведома. Самое критичное – получение мошенниками полного контроля над вашим аккаунтом или даже компьютером. Как это происходит? На странице сайта вы видите активные элементы – кнопки, видеоролики и прочее. Но при использовании кликджекинга безопасные и безобидные страницы могут оказаться совсем не таким, как кажутся. Злоумышленники прописывают в коде дополнительные элементы – невидимые кнопки, накладывающиеся на визуально заметные.
Одна такая кнопка при нажатии на нее способна оформить подписку, поставить лайк от вашего имени, дозволить доступ к аккаунту или выдать любую другую личную информацию вплоть до паролей на ресурсах.
Как применяют кликджекинг в продвижении сайтов и бизнеса?
Есть несколько целей, которые чаще всего достигаются при помощи кликджекинга при продвижении бизнеса, сайта или бренда.
- Повышение популярности группы, бренда, товара, статьи или видеофайла (в счетчиках отражается количество лайков и репостов). Благодаря кликджекингу выпущенный медиафайл получает множество просмотров. В сообществе появляется масса новых подписчиков. Возможности этого метода довольно широки.
- Сбор базы контактов. Нажатие пользователем невидимой кнопки позволяет получить конфиденциальную информацию, указанную в учетной записи. Это могут быть контактные телефоны, электронная почта, ID (идентификационные номера) в интернет-магазинах или социальных сетях.
- Кража личной информации. С помощью кликджекинга можно получить телефоны и адреса электронной почты, также злоумышленники получают пароли, конфиденциальные данные.
Если вам предложат искать контакты посетителей вашего сайта и прозванивать их, не стоит соглашаться на такой тип продвижения. Согласно законодательству это – мошенничество. Любой из посетителей сайта может обратиться в правоохранительные органы, после чего владелец ресурса понесет административное наказание.
Даже если этого не дойдет, вы все равно попадете под санкции поисковых систем. Обнаруженный на вашем сайте кликджекинг поспособствует мгновенному падению позиции ресурса в органической выдаче поисковика как минимум на 20-30 пунктов.
Как понять, что вам предлагают использовать кликджекинг?
Не каждый специалист в области «черного» СЕО скажет, какие именно мошеннические способы продвижения он собирается применять. Как определить, что вам предлагают использовать именно кликджекинг? Если в процессе общения прозвучат слова «сбор персональных данных», отнеситесь внимательно – любая конфиденциальная информация, полученная без согласия пользователя, будет незаконной добычей. Также вы можете попробовать самостоятельно обнаружить вредоносный код на страницах сайта или обратиться к специалисту в этой области. Кроме того, следует обратить внимание на компании и студии, позиционирующие себя как Call-центры. Обычно их представители предлагают «дожать» клиента, подвести его к покупке, а базу собирают с помощью кликджекинга.
Как кликджекинг вредит вашему бизнесу?
Обнаруженный код не всегда влечет санкции со стороны поисковых систем, а только в том случае, если он активирован и незаконный сбор данных о пользователях происходит. Но если кнопка на прозрачном фрейме уже работает, то будьте готовы к наказанию от ПС Jandex. Ноне только санкции поисковиков станут «наградой» за использование мошеннических способов увеличения продаж.
Представьте себе ситуацию, когда вы рассматривали покупку недвижимости в определенном ЖК. А на следующий день вам позвонил некто с предложением приобрести квартиру. Порадуют ли вас назойливые звонки от торговых агентов? А как это отразится на репутации компании, которая действует подобным образом?
Так и в практически любой сфере – звонки по холодной базе скорее вредят, чем приносят пользу.
Что делать, чтобы не стать жертвой кликджекинга?
От хитрых ходов мошеннического продвижения защититься очень сложно. Если ваши данные уже попали в мошенническую базу – будьте готовы к внезапным звонкам с предложением купить что-либо или даже попыткам выманить у вас финансовые средства обманным путем. Следует запомнить три простых правила.
- Если вы не уверены в добропорядочности ресурса, не давайте согласия на обработку и фиксацию персональных данных.
- Вы владелец сайта? Не используйте мошеннические способы продвижения и увеличения продаж. Ни к чему хорошему это не приведет, вы лишь заработаете санкции со стороны поисковых систем или даже административное наказание.
- Будьте крайне осторожны в выборе ресурсов для общения, просмотра роликов или сбора информации.
Опасности подстерегают нас не только в реальном мире. Сеть Internet – огромное информационное пространство, где также есть мошенники, грабители и другие личности, практикующие незаконные способы получения финансов, информации и т. д.
что это, фильтр от Яндекса и примеры clickjacking
В этой статье мы поговорим про кликджекинг и как сервисы по «увеличению продаж» могут их грандиозно понизить.
- Определение
- Кликджекинг (clickjacking) — механизм, позволяющий получить конфиденциальную информацию о пользователе внедрив вредоносный код на сайт. Идея заключается в том, что поверх интерактивного элемента (часто это кнопка) накладывается невидимая (прозрачная) ссылка / кнопка с другим функционалом (переход на сайт злоумышленника, предоставление данных из социальной сети и т.п.).
Приведу пример. Если бы на сайте автора использовалась подобная технология (разумеется, автор не использует кликджекинг), то выглядело бы это приблизительно так:
Только синяя область была бы полностью прозрачной.
Кликая на кнопку «отправить» вы бы на самом деле кликнули бы на другой элемент (синюю область) и, например, отдали бы автору всю информацию о своем профиле «ВКонтакте», а в последствии бы получали спам в духе: «вы были на нашем сайте, но ничего не купили… я хотел бы вас проконсультировать…», а также получали бы раздражающие звонки на телефон. Думаю, что активным пользователям интернета эта ситуация уже знакома.
Отношение поисковых систем к кликджекингу
Как только сервисы использующие кликджекинг стали набирать популярность, в мире маркетинга развязались серьезные споры. Одни ребята боролись за справедливость и отстаивали точку зрения, что кликджекинг — зло (к ним относится и автор), а другие считали так: «все, что не делается — все к лучшему».
Но какие-бы разборки не устраивали маркетологи — страдают пользователи. И рано или поздно кто-то должен был встать на их защиту. За пару дней до публикации статьи от Яндекса с гордым названием: «черный кликджекинг с полным его разоблачением», автор уже начал было думать, что Яндекс останется равнодушным к этом вопросу, но не тут то было.
В декабре 2015 года Яндекс ввел санкции (фильтр) всем сайтам, которые используют кликджекинг. Фильтр накладывается на весь сайт и сильно обрушивает позиции. В статье от Яндекса написано про понижение позиций в абстрактной форме, без цифр. На деле это выглядит вот так:
При санкциях за кликджекинг мы можем наблюдать резкий спад органического трафика из Яндекса, но при этом нейтральное отношение от Google:
Правила игры, статистика и рекомендации от Яндекса
Под санкции попадают только те сайты, которые:
- Прямо в данный момент используют кликджекинг.
- Реально используют технологию кликджекинга, то есть имеют рабочий код.
Чаще всего санкции за кликджекинг приходят вместе с очередным сервисом по «увеличению продаж», поэтому будьте максимально внимательны.
Яндекс:
Многие веб-сайты не сами реализуют технологию кликджекинга, а получают ее в составе сторонних сервисов, например по «улучшению продаж». Зачастую вебмастер даже не подозревает, что его сайт использует кликджекинг. Обратите внимание: понижены в результатах поиска будут именно сайты, которые применили кликджекинг, а не сайты сервисов, которые предоставили им данную обманную технику.
Яндекс рекомендует не внедрять сервисы, которые:
- Идентифицируют пользователя в социальных сетях.
- Помогают получить данные пользователя, которые он не указывает самостоятельно.
- Позволяет сделать звонок пользователю, который не предоставил свой номер телефона.
Под санкции уже попали 15000 сайтов.
Что делать, если вы попали под санкции
Если в beta версии вебмастера вы увидели нарушение за кликджекинг, то вам необходимо:
- Выявить причину санкций (понять, за какой именно сервис/код сайта вы получили санкции).
- Отказаться от использования сервиса и удалить код с сайта.
- В вебмастере нажать на кнопку, что вы все исправили.
Обычно, в течении 1-2 недель вы постепенно восстановите свои позиции в Яндексе.
Краткие выводы
- Внедряя очередной сервис будьте предельно внимательны. Важно, чтобы сервис не получал информацию о пользователе, которую он не передавал с помощью сайта.
- Попав под санкции — постарайтесь максимально быстро выявить причину и удалить код, после чего обратиться в Яндекс для снятия санкций.
Заказать звонок
Это мой клиент!
Пора уже познакомить этих людей с вашим бизнесом! Отправьте нам свои контактные данные и наши менеджеры с удовольствием вас проконсультируют.
Что такое кликджекинг? Черный способ под санкциями Яндекса
В цифровую эпоху, кража личной информации может принести огромные финансовые потери. Мошенники сегодня умеют по-разному красть информацию пользователей из интернета. Одним из часто практикуемых способов обмана является кликджекинг (от англ. Clickjacking). Изначально термин «Кликджекинг» ввели специалисты в IT-безопасности Робер Хансен и Еремия Гроссман. Они нашли уязвимость нулевого дня линейке продуктов Adobe и в браузерах от Microsoft и Mozilla, из-за которой злоумышленник мог получить доступ к компьютеру жертвы. Причем, кроме целенаправленной установки на портал такого метода воровства данных, он может быть установлен без ведома владельца сайта.
В чем суть?
Механизм кликджекинга представляет из себя способ получения доступа к конфиденциальной информации или компьютеру человека, посредством помещения поверх видимой страницы невидимого слоя, в который загружается ссылка на вредоносную страницу. При этом она маскируется от пользователя, находясь поверх элементов управления или любых других мест, куда вероятнее всего кликнет человек. Неподозревающий пользователь нажимает на кнопку или ссылку и при этом срабатывает код злоумышленника (иногда вредоносный слой располагается на всей странице сразу, и тогда куда бы ни кликнул пользователь в любом случае сработает скрипт). Результатом могут стать различные действия: подписка на страницу в соцсетях, кражи паролей и логинов, покупки в интернет-магазинах и т.п.
Приведем пример: после попытки включения плеера с видео, срабатывает скрипт и аккаунт человека в социальной сети добавляет в друзья злоумышленника. От него начинает идти спам, реклама и даже звонки. Естественно, это не понравится никому и многие сервисы борются с этим.
Как защититься?
Конечно, 100% защиты от кликджекинга не существует. Однако можно повысить шансы не попасться на эту уловку с помощью таких мер:
- Следить за тем, чтобы к вам на сайт не могли встроить вредоносный код.
-
Регулярно обновлять приложения и плагины. Это может обезопасить от встраивания кода в устаревшую версию без актуальной защиты. -
Кликать на неизвестные ссылки и скачивать/устанавливать подозрительные программы. Это основа интернет-гигиены. -
Регулярно обновлять браузеры и плагины для них. Очень важно получать своевременные обновления для Flash Player, т.к. мошенники часто используют ее для своих махинаций. -
Установить специальные расширения для браузера, которые помогут в борьбе с кликджекингом.
Как борются другие сервисы?
Многие поисковые системы считают кликджекинг вредоносной практикой и борются с сайтами, которые используют его, путем понижения их позиций в поисковой выдаче. Специалисты Яндекса считают, что заработок с помощью кликджекинга не приносит никакой пользы пользователям, а только наносит вред. При этом, кроме понижения в позиции, такие сайты могут даже банить. Так что будьте осторожны и не используйте на своём портале кликджекинг намеренно и не позволяйте сделать это мошенникам.
Что такое кликджекинг | Пример атаки | X-Frame-Options Плюсы и минусы
Что такое кликджекинг
Clickjacking — это атака, которая заставляет пользователя щелкнуть элемент веб-страницы, который невидим или замаскирован под другой элемент. Это может привести к тому, что пользователи будут непреднамеренно загружать вредоносное ПО, посещать вредоносные веб-страницы, предоставлять учетные данные или конфиденциальную информацию, переводить деньги или покупать продукты в Интернете.
Обычно кликджекинг выполняется путем отображения невидимой страницы или элемента HTML внутри iframe поверх страницы, которую видит пользователь.Пользователь считает, что он нажимает на видимую страницу, но на самом деле он щелкает невидимый элемент на дополнительной странице, транспонированной поверх него.
Невидимая страница может быть вредоносной страницей или законной страницей, которую пользователь не намеревался посещать, например страницей на банковском сайте пользователя, которая разрешает перевод денег.
Существует несколько вариантов атаки кликджекинга, например:
- Likejacking — метод, при котором кнопка «Мне нравится» в Facebook манипулируется, заставляя пользователей «ставить лайки» странице, которую они на самом деле не собирались любить.
- Cursorjacking — метод исправления пользовательского интерфейса, который изменяет курсор с позиции, которую пользователь воспринимает, на другую позицию. Cursorjacking основан на уязвимостях во Flash и браузере Firefox, которые теперь исправлены.
Пример атаки Clickjacking
- Злоумышленник создает привлекательную страницу, обещающую предоставить пользователю бесплатную поездку на Таити.
- В фоновом режиме злоумышленник проверяет, вошел ли пользователь на свой банковский сайт, и, если да, загружает экран, который позволяет переводить средства, используя параметры запроса для вставки банковских реквизитов злоумышленника в форму.
- Страница банковского перевода отображается в невидимом фрейме над страницей бесплатного подарка, при этом кнопка «Подтвердить перевод» точно выровнена над кнопкой «Получить подарок», видимой пользователю.
- Пользователь заходит на страницу и нажимает кнопку «Забронировать бесплатную поездку».
- На самом деле пользователь щелкает невидимый iframe и нажимает кнопку «Подтвердить перенос». Деньги переводятся злоумышленнику.
- Пользователь перенаправляется на страницу с информацией о бесплатном подарке (не зная, что произошло в фоновом режиме).
Этот пример иллюстрирует, что при атаке кликджекинга вредоносное действие (в данном случае на веб-сайте банка) невозможно отследить до злоумышленника, поскольку пользователь выполнил его, законно вошедший в свою учетную запись.
Защита от кликджекинга
Есть два основных способа защиты от кликджекинга:
- Клиентские методы — самый распространенный называется Frame Busting. В некоторых случаях методы на стороне клиента могут быть эффективными, но не считаются лучшей практикой, поскольку их можно легко обойти.
- Серверные методы — самый распространенный — X-Frame-Options. Специалисты по безопасности рекомендуют серверные методы как эффективный способ защиты от кликджекинга.
Снижение кликджекинга с помощью заголовка ответа X-Frame-Options
Заголовок ответа X-Frame-Options передается как часть HTTP-ответа веб-страницы, указывая, следует ли разрешить браузеру отображать страницу внутри тега или
Для заголовка X-Frame-Options разрешены три значения:
- DENY — запрещает любому домену отображать эту страницу во фрейме
- SAMEORIGIN — позволяет отображать текущую страницу во фрейме на другой странице, но только в пределах текущего домена
- ALLOW-FROM URI — позволяет отображать текущую страницу во фрейме, но только в определенном URI, например www.example.com/frame-page
Узнайте, как Imperva Web Application Firewall может помочь вам в борьбе с атаками с использованием clickjacking.
Использование опции SAMEORIGIN для защиты от кликджекинга
X-Frame-Options позволяет издателям контента предотвращать использование злоумышленниками своего контента в невидимом фрейме.
Параметр DENY является наиболее безопасным и предотвращает любое использование текущей страницы во фрейме. Чаще используется SAMEORIGIN, поскольку он позволяет использовать фреймы, но ограничивает их текущим доменом.
Ограничения параметров X-Frame
- Чтобы включить параметр SAMEORIGIN на веб-сайте, заголовок X-Frame-Options должен быть возвращен как часть HTTP-ответа для каждой отдельной страницы (не может применяться между сайтами).
- X-Frame-Options не поддерживает белый список разрешенных доменов, поэтому он не работает с многодоменными сайтами, которым необходимо отображать содержимое во фреймах между ними.
- На одной странице можно использовать только одну опцию, поэтому, например, одна и та же страница не может отображаться в виде фрейма как на текущем, так и на внешнем сайтах.
- Параметр ALLOW-FROM поддерживается не всеми браузерами.
- X-Frame-Options не рекомендуется использовать в большинстве браузеров.
Тест кликджекинга — Ваш сайт уязвим?
Основной способ проверить, уязвим ли ваш сайт для кликджекинга, — это создать HTML-страницу и попытаться включить конфиденциальную страницу вашего сайта в iframe. Важно выполнить тестовый код на другом веб-сервере, потому что это типичное поведение при атаке с использованием clickjacking.
Используйте следующий код, предоставленный как часть руководства по тестированию OWASP:
Тестовая страница Clickjack Веб-сайт уязвим для кликджекинга!
Просмотрите HTML-страницу в браузере и оцените страницу следующим образом:
- Если появляется текст «Веб-сайт уязвим для кликджекинга», а под ним вы видите содержимое вашей конфиденциальной страницы, страница уязвима для кликджекинга .
- Если отображается только текст «Веб-сайт уязвим для кликджекинга», и вы не видите содержимое своей конфиденциальной страницы, эта страница не уязвима для простейшей формы кликджекинга.
Однако необходимо дополнительное тестирование, чтобы увидеть, какие методы защиты от кликджекинга используются на странице и могут ли их обойти злоумышленники.
Как Imperva помогает смягчить атаку кликджекинга
Чтобы добраться до точки кликджекинга, сайт должен быть взломан, что предотвращает Imperva WAF.Вы также должны убедиться, что ресурсы вашего сайта отправляют правильные HTTP-заголовки X-Frame-Options, что предотвратит размещение некоторых частей вашего сайта на других страницах или за пределами вашего домена.
Что такое кликджекинг? Учебник и примеры
В этом разделе мы объясним, что такое кликджекинг, опишем распространенные примеры кликджекинга и обсудим, как защититься от этих атак.
Что такое кликджекинг?
Clickjacking — это атака на основе интерфейса, при которой пользователя обманом заставляют щелкнуть активный контент на скрытом веб-сайте, щелкнув другой контент на ложном веб-сайте.Рассмотрим следующий пример:
Интернет-пользователь заходит на сайт-приманку (возможно, это ссылка, предоставленная по электронной почте) и нажимает кнопку, чтобы выиграть приз. По незнанию, злоумышленник обманул их и заставил нажать альтернативную скрытую кнопку, что привело к оплате счета на другом сайте. Это пример атаки кликджекинга. Метод зависит от включения невидимой интерактивной веб-страницы (или нескольких страниц), содержащей кнопку или скрытую ссылку, например, в iframe.Iframe накладывается поверх ожидаемого пользователем содержимого веб-страницы-приманки. Эта атака отличается от атаки CSRF тем, что от пользователя требуется выполнить действие, такое как нажатие кнопки, тогда как атака CSRF зависит от подделки всего запроса без ведома или ввода пользователя.
Защита от CSRF-атак часто обеспечивается использованием CSRF-токена: одноразового номера для конкретного сеанса или одноразового номера. Атаки Clickjacking не смягчаются токеном CSRF, поскольку целевая сессия устанавливается с контентом, загруженным с аутентичного веб-сайта, и все запросы происходят в домене.Токены CSRF помещаются в запросы и передаются на сервер как часть нормально работающего сеанса. Отличие от обычного пользовательского сеанса заключается в том, что процесс происходит внутри скрытого iframe.
Как построить базовую атаку кликджекинга
Атаки кликджекинга используют CSS для создания слоев и управления ими. Злоумышленник использует целевой веб-сайт как слой iframe, накладываемый на веб-сайт-ловушку. Пример использования тега стиля и параметров выглядит следующим образом:
...
Целевой iframe веб-сайта позиционируется в браузере так, чтобы было точное перекрытие целевого действия с веб-сайтом-приманкой с использованием соответствующих значений ширины и высоты положения.Значения абсолютного и относительного положения используются, чтобы гарантировать, что целевой веб-сайт точно перекрывает ловушку, независимо от размера экрана, типа браузера и платформы. Z-index определяет порядок наложения слоев iframe и веб-сайта. Значение непрозрачности определяется как 0,0 (или близко к 0,0), поэтому содержимое iframe прозрачно для пользователя. Защита браузера от кликджекинга может применять определение прозрачности iframe на основе пороговых значений (например, Chrome версии 76 включает это поведение, а Firefox — нет).Злоумышленник выбирает значения непрозрачности так, чтобы желаемый эффект был достигнут без запуска защитного поведения.
Clickjacking с вводом предварительно заполненной формы
Некоторые веб-сайты, требующие заполнения и отправки формы, позволяют предварительно заполнить поля формы с помощью параметров GET перед отправкой. Другие веб-сайты могут потребовать текст перед отправкой формы. Поскольку значения GET являются частью URL-адреса, целевой URL-адрес может быть изменен, чтобы включать значения по выбору злоумышленника, а прозрачная кнопка «Отправить» накладывается на сайт-обманку, как в базовом примере кликджекинга.
Скрипты удаления кадров
Атаки кликджекинга возможны всякий раз, когда веб-сайты могут быть созданы во фрейме. Таким образом, превентивные методы основаны на ограничении возможности создания фреймов для веб-сайтов. Обычной защитой на стороне клиента, реализуемой через веб-браузер, является использование сценариев перебора или разрыва кадра. Они могут быть реализованы через проприетарные надстройки или расширения JavaScript браузера, такие как NoScript. Скрипты часто создаются таким образом, что они выполняют некоторые или все из следующих действий:
- проверяет и обеспечивает, что текущее окно приложения является главным или верхним окном,
- сделать все кадры видимыми,
- предотвращает нажатие на невидимые рамки,
- перехватывает и сигнализирует пользователю о потенциальных атаках типа clickjacking.
Методы блокировки кадров часто зависят от браузера и платформы, и из-за гибкости HTML они обычно могут быть обойдены злоумышленниками. Поскольку прерыватели фреймов — это JavaScript, настройки безопасности браузера могут препятствовать их работе, или даже браузер может даже не поддерживать JavaScript. Эффективный обходной путь злоумышленника против прерывателей фреймов — использовать атрибут HTML5 iframe sandbox
. Когда это установлено с allow-forms
или allow-scripts
и опущено значение allow-top-navigation
, то сценарий блокировки кадров может быть нейтрализован, поскольку iframe не может проверить, является ли он верхним окно:
Значения allow-forms
и allow-scripts
разрешают указанные действия внутри iframe, но навигация верхнего уровня отключена. Это препятствует перебору фреймов, обеспечивая при этом функциональность на целевом сайте.
Сочетание кликджекинга с атакой DOM XSS
До сих пор мы рассматривали кликджекинг как автономную атаку. Исторически сложилось так, что кликджекинг использовался для выполнения таких действий, как повышение «лайков» на странице Facebook.Однако истинная сила кликджекинга раскрывается, когда он используется в качестве носителя для другой атаки, такой как DOM XSS-атака. Реализация этой комбинированной атаки относительно проста, если предположить, что злоумышленник первым обнаружил XSS-эксплойт. Затем XSS-эксплойт объединяется с целевым URL-адресом iframe, так что пользователь нажимает кнопку или ссылку и, следовательно, выполняет XSS-атаку DOM.
Многоступенчатый кликджекинг
Манипуляции со входными данными на целевом веб-сайте злоумышленником могут потребовать нескольких действий.Например, злоумышленник может захотеть обманом заставить пользователя купить что-то на веб-сайте розничной торговли, поэтому перед размещением заказа необходимо добавить товары в корзину. Эти действия могут быть реализованы злоумышленником с использованием нескольких разделов или фреймов. Такие атаки требуют значительной точности и осторожности с точки зрения злоумышленника, чтобы они были эффективными и незаметными.
Как предотвратить атаки кликджекинга
Мы обсудили часто встречающийся механизм предотвращения на стороне браузера, а именно скрипты блокировки кадров.Однако мы видели, что злоумышленнику часто легко обойти эти средства защиты. Следовательно, были разработаны протоколы, управляемые сервером, которые ограничивают использование iframe в браузере и снижают вероятность кликджекинга.
Кликджекинг — это поведение на стороне браузера, и его успех или иным образом зависит от функциональности браузера и соответствия преобладающим веб-стандартам и передовой практике. Защита от кликджекинга на стороне сервера обеспечивается путем определения и передачи ограничений на использование таких компонентов, как iframe.Однако реализация защиты зависит от соответствия браузера и соблюдения этих ограничений. Двумя механизмами защиты от кликджекинга на стороне сервера являются X-Frame-Options и Content Security Policy.
Параметры X-Frame
X-Frame-Options изначально был представлен как неофициальный заголовок ответа в Internet Explorer 8 и быстро был принят в других браузерах. Заголовок предоставляет владельцу веб-сайта контроль над использованием фреймов или объектов, поэтому включение веб-страницы во фрейм может быть запрещено директивой deny
:
X-Frame-Options: отказать
В качестве альтернативы, создание фреймов может быть ограничено тем же источником, что и веб-сайт, с помощью директивы sameorigin
.
Опции X-Frame: sameorigin
или на указанный веб-сайт с помощью директивы allow-from
:
X-Frame-Options: allow-from https: // normal-website.ком
X-Frame-Options не реализован последовательно во всех браузерах (например, директива allow-from
не поддерживается в Chrome версии 76 или Safari 12). Однако при правильном применении в сочетании с политикой безопасности контента в рамках стратегии многоуровневой защиты она может обеспечить эффективную защиту от атак типа «кликджекинг».
Политика безопасности контента (CSP)
Политика безопасности контента (CSP) — это механизм обнаружения и предотвращения, который обеспечивает защиту от атак, таких как XSS и кликджекинг.CSP обычно реализуется на веб-сервере как возвращаемый заголовок формы:
Content-Security-Policy: политика
где policy — это строка директив политики, разделенных точкой с запятой. CSP предоставляет клиентскому браузеру информацию о разрешенных источниках веб-ресурсов, которые браузер может применять для обнаружения и перехвата злонамеренного поведения.
Рекомендуемая защита от кликджекинга заключается в включении директивы frame-ancestors
в политику безопасности контента приложения.Директива frame-ancestors 'none'
аналогична по поведению директиве X-Frame-Options deny
. Директива frame-ancestors 'self'
в целом эквивалентна директиве X-Frame-Options sameorigin
. Следующий CSP добавляет фреймы в белый список только для одного домена:
Content-Security-Policy: фрейм-предки «я»;
В качестве альтернативы кадрирование можно ограничить именованными сайтами:
Content-Security-Policy: нормальный веб-сайт предков фреймов.com;
Чтобы быть эффективными против кликджекинга и XSS, CSP нуждаются в тщательной разработке, внедрении и тестировании и должны использоваться как часть стратегии многоуровневой защиты.
Clickjacking-атак: что это такое и как их предотвратить
Збигнев Банах — чт, 15 авг.2019 г. —
Атаки Clickjacking пытаются обманом заставить пользователя непреднамеренно щелкнуть неожиданный элемент веб-страницы.Большинство методов кликджекинга используют уязвимости, связанные с фреймами HTML, а профилактика заключается в предотвращении фреймирования страниц. В этом сообщении блога мы увидим, как работает кликджекинг, как его можно предотвратить и почему эта угроза безопасности приложений не исчезнет в ближайшее время.
Clickjacking относится к любой атаке, при которой пользователь может случайно щелкнуть неожиданный элемент веб-страницы. Название было придумано на основе перехвата кликов , и этот метод чаще всего применяется к веб-страницам путем наложения вредоносного контента на надежную страницу или путем размещения прозрачной страницы поверх видимой.Когда пользователь щелкает невинно выглядящий элемент на видимой странице, он на самом деле щелкает соответствующее место на накладываемой странице, и щелчок запускает вредоносное действие — от подделки лайка или подписки в социальных сетях до перекачивания денег из банка пользователя. учетная запись.
В большинстве атак с использованием кликджекинга используются уязвимости, связанные с фреймами HTML, а методы защиты сосредоточены на предотвращении фреймирования страниц. В этом сообщении блога мы увидим, как работает кликджекинг, как его можно предотвратить и почему эта угроза безопасности приложений не исчезнет в ближайшее время.
Щелкните здесь, чтобы начать: как выглядит типичная атака кликджекинга
Безусловно, наиболее распространенный подход к кликджекингу заключается в том, чтобы представить пользователю сочетание двух наложенных веб-страниц в окне браузера и некий стимул щелкнуть мышью в определенных местах. Злоумышленник начинает с загрузки уязвимого целевого веб-сайта в iframe, устанавливает для него полную прозрачность и помещает кадр перед вредоносной веб-страницей, созданной для получения кликов в подходящих местах.
Например, представьте забавную браузерную игру, отображаемую во всплывающем окне, возможно, предлагающую призы или привлекательный контент для победителей.Игра может отображаться как фоновая страница, а целевое веб-приложение, такое как сайт банка или электронной коммерции, накладываться поверх нее в полностью прозрачном фрейме. Злоумышленник создает страницу игры так, чтобы интерактивные элементы находились в том же положении, что и выбранные элементы управления на целевом сайте. При попытке щелкнуть внутриигровые предметы пользователь фактически щелкает невидимые элементы управления на уязвимой веб-странице с потенциально серьезными последствиями.
В зависимости от используемого сайта жертва может непреднамеренно рассылать 5-звездочные обзоры, любить сомнительные страницы Facebook, давать разрешения приложениям Facebook, входить в систему с использованием схем единого входа или совершать покупки в один клик для отправки злоумышленнику дорогих товаров.В сочетании с методами перетаскивания атака может также обмануть пользователя, заставив его заполнить текстовые поля в веб-форме или заполнить CAPTCHA. В этом случае тщательно подготовленные взаимодействия с игрой заставляют пользователя бессознательно перетаскивать текст на невидимой странице и бросать его в поле формы.
Типы кликджекинг-атак
Clickjacking — это не одна конкретная атака, а широкое семейство векторов и методов атаки, которые в широком смысле называются атаками восстановления пользовательского интерфейса . Атаки можно разделить на две общие категории в зависимости от использования наложенного контента.На сегодняшний день наиболее популярными являются атаки на основе оверлеев, а встраивание страниц в невидимые фреймы является наиболее распространенным техническим подходом. Опять же, есть несколько основных категорий кликджекинга на основе оверлея:
- Полное прозрачное наложение: Это метод, использованный в нашем примере выше, где прозрачная легитимная страница (здесь называется инструментальной страницей ) накладывается на тщательно созданную вредоносную страницу. Страница инструмента загружается в невидимый iframe и размещается над видимой страницей путем установки более высокого значения z-index.Одна из первых громких атак с использованием кликджекинга использовала этот метод против страницы настроек плагина Adobe Flash, чтобы обманом заставить пользователей предоставить Flash-анимации доступ к камере и микрофону компьютера.
- Обрезка: Для этой атаки злоумышленник накладывает только выбранные элементы управления с прозрачной страницы на видимую страницу. В зависимости от цели атаки это может означать закрытие кнопок невидимыми гиперссылками для запуска действия, отличного от ожидаемого, закрытие текстовых меток вводящими в заблуждение инструкциями, замену подписей кнопок ложными командами или закрытие всей допустимой страницы вводящим в заблуждение содержимым, оставляя открыта только одна оригинальная кнопка.
- Скрытое наложение: Это был первый продемонстрированный подход к кликджекингу. Злоумышленник создает iframe размером 1×1 пиксель, содержащий вредоносный контент, и помещает его под курсором мыши, чтобы он был скрыт курсором, но любой щелчок будет регистрироваться на вредоносной странице.
- Отбрасывание события клика: Допустимая страница отображается на переднем плане, полностью скрывая вредоносную страницу за ней. Злоумышленник устанавливает для свойства CSS-указатель-события верхнего уровня значение none, в результате чего события щелчка «пропадают» через наложенную легитимную страницу, регистрируясь только на вредоносной странице ниже.
- Быстрая замена содержимого: Непрозрачные оверлеи используются для прикрытия целевых элементов управления, удаляются только на долю секунды, чтобы зарегистрировать щелчок, и немедленно заменяются. Для этого злоумышленник должен предсказать точный момент клика жертвы, но при небольшом знании привычек и психологии пользователей компьютера это проще, чем кажется.
Даже без использования уязвимостей кликджекинга для вставки оверлеев, у злоумышленников есть множество способов обманом заставить пользователей щелкнуть неожиданные элементы управления:
- Прокрутка: Злоумышленник частично прокручивает допустимое диалоговое окно или другой элемент веб-страницы с экрана, поэтому пользователь видит только некоторые элементы управления.Например, диалоговое окно с предупреждением может быть прокручено за пределы экрана, так что будут видны только кнопки «ОК» и «Отмена», а злоумышленник разместит безобидный текст приглашения таким образом, чтобы оно выглядело так, как будто кнопки относятся к этому сообщению, а не как предупреждение.
- Перемещение: Эта атака требует, чтобы злоумышленник быстро переместил доверенный диалог (или другой элемент пользовательского интерфейса) под курсор, в то время как пользователь сосредоточен на щелчке по другим, невинно выглядящим элементам. Если это сработает, пользователь инстинктивно щелкнет замещенный элемент управления, прежде чем поймет, что что-то изменилось.Как и в случае быстрой замены содержимого, злоумышленник может быстро переместить диалоговое окно назад после щелчка, чтобы избежать обнаружения.
- Drag-and-drop: В то время как большинство атак с использованием clickjacking явно сосредоточены на перехвате кликов, можно использовать уязвимости перетаскивания, чтобы обмануть пользователя для выполнения множества других действий, таких как заполнение веб-форм путем перетаскивания невидимого текста в невидимые текстовые поля или раскрытие злоумышленнику конфиденциальной личной информации.
- …и многие другие: Динамическое взаимодействие между пользователем и элементами веб-страницы, ставшее возможным благодаря объединению JavaScript, DOM и CSS, предлагает бесчисленные варианты, позволяющие обманом заставить пользователей выполнять неожиданные действия. Поскольку атаки кликджекинга используют доверие пользователя к отображаемому контенту и элементам управления, их может быть трудно обнаружить автоматически, и новые атаки будут продолжать появляться.
Как предотвратить кликджекинг
Большинство популярных атак с использованием кликджекинга включают в себя на каком-то этапе фрейминг целевой веб-страницы в iframe, поэтому все основные методы предотвращения направлены на запрет фреймов.В устаревших решениях для выделения страниц из фреймов использовались клиентские скрипты, в то время как более современные и безопасные подходы основаны на настройке заголовков безопасности HTTP для определения политики кадрирования:
- Framebusting или framebreaking: До того, как поддержка новых HTTP-заголовков стала широко распространенной, разработчики веб-сайтов были сами по себе и должны были развертывать специальные сценарии framebuster (или framekiller), чтобы предотвратить фрейминг своих страниц. Первые скрипты очистки кадра просто проверяли
top.location
, чтобы убедиться, что это текущая страница — в противном случае —top.Расположение
было установлено на себя. Однако эти сценарии можно было легко заблокировать от внешнего фрейма или иным образом обойти, и были разработаны более сложные решения. Несмотря на это, существует множество способов обхода даже самых сложных программных средств защиты от фреймов, и такие сценарии следует использовать только для обеспечения элементарной защиты устаревших браузеров. Подход, рекомендуемый в настоящее время OWASP, заключается в том, чтобы скрыть весь текст HTML-документа и показать его только после проверки того, что страница не обрамлена. - X-Frame-Options: Вероятно, лучшим решением в настоящее время является использование заголовка HTTP-ответа
X-Frame-Options
(XFO) в ответах сервера.Первоначально представленный Microsoft в Internet Explorer 8, а затем формализованный в RFC 7034, заголовокX-Frame-Options
используется для указания того, может ли страница быть встроена в< embed>
илиэлемент
. Заголовок поддерживает три возможных директивы: deny, чтобы блокировать все попытки кадрирования,sameorigin,
, чтобы разрешить кадрирование только страницами одного и того же происхождения, илиallow-from
, чтобы разрешить кадрирование по страницам из указанных URI.Однакоallow-from
не поддерживается некоторыми браузерами (включая Chrome и Safari), поэтому, если вам нужно указать источники, лучше использовать CSP (см. Ниже). Для общей защиты от кадрирования вам нужно всего лишь указатьX-Frame-Options: deny
илиX-Frame-Options: sameorigin
в заголовках вашего сервера. - Content-Security-Policy с предками кадра: HTTP-заголовок Content-Security-Policy (CSP) изначально был разработан для защиты от XSS и других атак путем внедрения данных.Однако он также предоставляет директиву
frame-ancestors
для указания источников, которым разрешено встраивать страницу (в
Content-Security-Policy: frame-ancestors ... ;
Вы можете указать любое количество источников, и поддерживаемые значения источника включают IP-адреса или адреса хостов, типы схем, « self
», чтобы указать источник текущего документа, и « none
», чтобы запретить любое встраивание.Это дает вам большую гибкость для определения источников, особенно в сложных развертываниях, но для базовой защиты обычно достаточно двух последних вариантов: frame-ancestors
‘ self
‘ эквивалентно директиве XFO sameorigin
, а frame-ancestors
‘ none
‘ соответствует deny
в XFO.
Хотя все еще не является гарантией абсолютной безопасности от кликджекинга, HTTP-заголовок X-Frame-Options
по-прежнему является наиболее универсальным способом повышения общей устойчивости веб-сайта, устраняя не только типичные попытки кликджекинга, но и множество других уязвимостей — см. статья для подробного обсуждения его преимуществ.Хотя директива CSP frame-ancestors
должна обеспечивать защиту, эквивалентную X-Frame-Options
, на практике XFO все еще поддерживается более широко и единообразно, даже если он официально объявлен устаревшим. Если указаны оба заголовка, спецификация CSP указывает, что предки кадра должны иметь приоритет, а X-Frame-Options
должен быть отклонен, но некоторые старые браузеры (например, Google Chrome 40 и Mozilla Firefox 35) делают обратное. Какое бы решение вы ни выбрали, вы можете использовать Netsparker для проверки своих веб-сайтов на предмет наличия заголовков X-Frame-Options
и Content-Security-Policy
, а также убедиться, что выбранные вами политики безопасности применяются единообразно на всех страницах.
Помимо схем защиты от фреймов на стороне сервера и клиента, пользователи также защищены от кликджекинга функциями безопасности, встроенными в современные браузеры. Процесс рендеринга веб-страницы включает в себя несколько уровней проверок, чтобы гарантировать, что пользовательские интерфейсы ведут себя так, как ожидалось пользователем, включая алгоритмы защиты от кликов для противодействия атакам с изменением положения и прокрутки. Браузеры также могут блокировать всплывающие окна и другое необычное поведение веб-страниц или предупреждать пользователя о попытках подозрительных операций.
Почему угроза кликджекинга сохраняется
X-Frame-Options
было промежуточным решением, которое широко использовалось поставщиками браузеров, а директива CSP frame-ancestors
обеспечивает более стандартизованную и гибкую версию того же подхода. Оба заголовка в настоящее время могут обеспечить эффективную защиту от фреймов и атак с использованием фреймов, а в будущем фрейм-предок
должны получить всеобщее распространение, чтобы предотвратить злоупотребление iframe.Но помните, что кликджекинг не связан с фреймами — это обман пользователя и использование его доверия к тому, что он видит в окне браузера. Поскольку большая часть трафика просмотра веб-страниц в настоящее время поступает с мобильных устройств, потенциал создания вводящих в заблуждение пользовательских интерфейсов огромен, и защиты традиционного доступа к веб-браузерам уже недостаточно.
Об авторе
Збигнев Банах
Автор технического контента в Netsparker.Опираясь на свой опыт работы в качестве ИТ-журналиста и технического переводчика, он делает все возможное, чтобы обеспечить безопасность в Интернете более широкой аудитории в блоге и на веб-сайте Netsparker.
Будьте в курсе тенденций в области веб-безопасности
Clickjacking: просматриваемая дыра в веб-безопасности
Clickjacking — это атака, которая заставляет веб-пользователя нажимать кнопку, ссылку или изображение и т. iframe.Этот вредоносный метод потенциально может раскрыть конфиденциальную информацию или, что реже, получить контроль над компьютером пользователя. Например, на Facebook клик-джек может привести к тому, что неавторизованный пользователь спамит всю вашу сеть друзей из вашей учетной записи.
Мы знаем о кликджекинге, также называемом «атаками восстановления пользовательского интерфейса», уже много лет, как они были первоначально описаны в 2008 году Робертом Хансеном и Иеремией Гроссманом. Существуют контрмеры, которые веб-сайты могут применять для защиты от атак типа «кликджекинг», такие как фреймбастеры, X-Frame Option и некоторые клиентские подключаемые модули, которые можно установить в браузере.Однако недавние исследования показали, что веб-сайты могут не воспринимать эту уязвимость серьезно — или, по крайней мере, они не пытаются защитить свои веб-сайты от кликджекинга.
Насколько безопасны веб-сайты?
Busting Frame Busting: a Study of Clickjacking Vulnerability on Popular Sites, автор Густав Ридстедт и Эли Бурштейн и др. др., описывает проведенное в 2010 году исследование практики фреймбастинга на веб-сайтах из списка Alexa Top 500. Исследование показало, что в то время только около 14 процентов веб-сайтов из топ-500 Alexa и 37 процентов веб-сайтов из топ-100 Alexa использовали фреймбастеры для защиты своих веб-сайтов от кликджекинга.
Примечание : Таблица справа показывает процент веб-сайтов Alexa Top, использующих настройку фреймов. |
|
Таблица 1: Фреймбастинг среди лучших сайтов Alexa
Вдохновленный этим исследованием, я решил провести опрос, чтобы проверить, сколько веб-сайтов учитывают эту уязвимость, и развернуть контрмеры для предотвращения кликджекинга .Я написал несколько коротких сценариев, чтобы проверить, могут ли веб-страницы протестированных веб-сайтов быть включены в мои сценарии. Если мой сценарий мог успешно запускаться и формировать веб-страницы тестовых целей, это указывало на то, что контрмеры не применялись, и был возможен щелчок. В ходе опроса был опрошен ряд веб-сайтов Alex Top 10, Top 20 банковских веб-сайтов и 5 популярных веб-приложений с открытым исходным кодом ( Joomla, wordpress, phpbb, Drupal, Gallery ).
Категория опроса | Защищенные цели (%) |
Топ-10 веб-сайтов Alexa | 70% |
Банк 20 лучших веб-сайтов | 30% |
20% |
Таблица 2: Использование контрмер кликджекинга
Из приведенной выше таблицы можно сделать вывод, что многие веб-сайты не обеспечивают абсолютно никаких контрмер против возможных атак кликджекинга, даже сегодня, через два года после Исследование 2010 г.Такое отсутствие достаточной защиты вызывает удивление, поскольку некоторые веб-сайты требуют безопасной среды, например банки, предоставляющие услуги онлайн-банкинга.
Итак, почему веб-сайты не принимают мер по защите от кликджекинга?
На этот вопрос может быть много ответов, но я думаю, что три основных фактора способствуют незнанию уязвимостей, связанных с кликджекингом на веб-сайтах.
1. Clickjacking не считается серьезной проблемой, потому что сложно манипулировать.
Я считаю, что это самая частая причина. Некоторые веб-разработчики считают кликджекинг более низким риском, поскольку получить конфиденциальную информацию от конечного пользователя сложнее по сравнению с другими атаками, такими как XSS и SQL-инъекция. Однако атаки с использованием кликджекинга на Facebook в 2010 году показали, что вред наносится даже при рассылке спама всем в вашей адресной книге.
Кроме того, когда веб-сайт уязвим для кликджекинга, злоумышленник может отключить защиту токена от подделки межсайтовых запросов (CSRF), которая защищает от атак CSRF, которые заставляют браузеры выполнять действия без ведома или разрешения пользователя.
2. Меры противодействия кликджекингу ненадежны .
Было описано множество контрмер, которые помогают пользователям сети защититься от атак типа «кликджекинг». Но в настоящее время единственный способ полностью предотвратить атаки кликджекинга — это использовать веб-браузер, такой как Lynx, чисто текстовый веб-браузер, не поддерживающий JavaScript. Lynx не только устарел, но еще и трудно представить современный пользовательский интерфейс веб-сайта без использования JavaScript.
По словам Роберта Хансена, одного из первых, кто обнаружил эту уязвимость, «комбинация Firefox и NoScript, расширения, которое блокирует содержимое JavaScript, Flash и Java, убережет вас от» очень большого количества проблем, 99 .99% на данный момент ». Но опять же, компромисс — это ухудшение взаимодействия с пользователем из-за блокировки JavaScript.
3. Недостаточная осведомленность
Поскольку кликджекинг является относительно новым вредоносным методом, ущерб, причиненный этой уязвимостью, широко не известен.
Что мог сделать администратор веб-сайта, чтобы защититься от атак типа «кликджекинг»?
В общем, есть два популярных метода, которые можно легко реализовать для защиты от уязвимостей, связанных с кликджекингом: первый — применить к вашим веб-страницам блокировку фреймов JavaScript; другой — добавить X-FRAME-OPTIONS в заголовок ответа.
framebuster — это фрагмент кода JavaScript, который предотвращает отображение веб-страницы в кадре. На разных веб-сайтах используется множество разновидностей фреймбастеров. Согласно рекомендациям сообщества OWASP, самый надежный блокировщик фреймов:
%MINIFYHTML29dd0c97f92e9ee90e512146a9b4e8ce24%
<сценарий>
if (self == top) {
var theBody = document.getElementsByTagName ('body') [0];
тело.style.display = "блок";
} еще {
top.location = self.location;
}
X-FRAME-OPTIONS — это метод защиты на основе браузера. Чтобы включить защиту X-FRAME-OPTIONS, веб-разработчики должны отправлять HTTP-заголовок с именем X-FRAME-OPTIONs в ответах HTML. Есть две опции для X-FRAME-OPTIONS, первая — DENY, которая предотвращает рендеринг страницы, если она обрамлена; другой — SAMEORIGIN, который предотвращает отображение страницы только в том случае, если источник контекста просмотра верхнего уровня отличается от источника контента, содержащего директиву X-FRAME-OPTIONS.
Поскольку все основные браузеры приняли X-FRAME-OPTIONS, и его проще реализовать, чем фреймбастеры, и поэтому он является хорошим выбором.
Ни X-FRAME-OPTIONS, ни фреймбастеры не доказали свою 100-процентную эффективность, но они значительно снижают риск кликджекинга. Их определенно стоит внедрить на свои веб-сайты, если они работают без какой-либо защиты от атак типа «кликджекинг».
Связанные
Что такое кликджекинг? Лучшие методы предотвращения атак
Кибер-злоумышленники постоянно совершенствуют свои методы, позволяющие избежать обнаружения.Теперь они могут скрыть, казалось бы, безобидную веб-страницу невидимым слоем, содержащим вредоносные ссылки. Этот метод атаки, известный как кликджекинг, может заставить вас активировать веб-камеру или перевести деньги с вашего банковского счета.
В этом посте мы расскажем о различных типах атак с использованием clickjacking и научим вас, как лучше всего защитить себя от этой угрозы безопасности приложений.
Что такое кликджекинг?
Clickjacking (или захват кликов) — это тип кибератаки, при которой невидимая вредоносная ссылка размещается в пользовательском интерфейсе веб-сайта.Поскольку кликджекинг происходит на невидимом слое iframe, загруженном поверх законной страницы, посетители обычно не могут определить, когда происходит атака кликджекинга.
Источник: intigriti.com
В атаке clickjacking есть две жертвы — веб-сайт хоста и посетитель. Веб-сайт хоста используется в качестве платформы для облегчения атаки кликджекинга, и посетитель становится жертвой конкретного намерения атаки.
Некоторые распространенные типы атак с использованием кликджекинга включают:
- Кража учетных данных для входа в систему
- Активация веб-камеры или микрофона
- Приглашение к загрузке вредоносных программ
- Авторизация денежных переводов
- Незапрашиваемые покупки продуктов
- Определение вашего местоположения
Намерения кликджекинга являются не ограничиваясь этим списком.Поскольку пользовательские интерфейсы могут быть замаскированы любым типом ссылок (исправление пользовательского интерфейса), деструктивные возможности безграничны.
Вот несколько примеров наиболее известных типов атак с использованием кликджекинга.
Мошенничество с переводом денег
В этой атаке восстановления пользовательского интерфейса злоумышленник обманом заставляет вас щелкнуть ссылку на вредоносной странице, которая разрешает перевод денег с вашего банковского счета.
Вот обзор процесса:
Сначала жертве предоставляется безобидный на вид веб-сайт, который можно загрузить по ссылке в электронном письме.Такие веб-сайты обычно продвигают непреодолимое предложение, например бесплатный подарок или праздничное предложение.
Когда веб-сайт загружается и жертва нажимает кнопку, чтобы потребовать свой «бесплатный подарок», она фактически нажимает ссылку подтверждения перевода средств на невидимом уровне веб-приложения. Если жертва вошла в свой банк в это время, ее деньги будут мгновенно переведены на счет злоумышленника.
Пока незатребованная передача происходит в фоновом режиме, жертва перенаправляется на страницу с дополнительной информацией об их «бесплатном подарке».’
Активация веб-камеры и микрофона
В этой атаке с использованием кликджекинга пользовательские настройки Adobe Flash незаметно загружаются по другой ссылке. При нажатии на зараженную ссылку пользователи изменяют настройки своего плагина Adobe Flash, чтобы злоумышленники получили доступ к своей веб-камере и микрофону.
Likejacking
При атаке Likejacking пользователей обманом заставляют нажимать кнопку «Нравится» на странице Facebook, когда они нажимают на представленную ссылку. Чтобы атака была успешной, пользователю необходимо войти в Facebook при нажатии на ссылку.
Учетные записи социальных сетей также уязвимы для кликджекинга. Twitter стал жертвой успешной атаки в 2009 году, известной как твит-бомба.
Твиттер-бомба представляла собой непрерывный цикл, в котором пользователи нажимали на опубликованную в твиттере ссылку, затем щелкали ссылку на открывшейся веб-странице, которая затем твитнула исходную ссылку в своей учетной записи, продвигая своих последователей, нажимающих на ссылку, и т. Д.
Атака кликджекингом в твиттере
Cursorjacking
cursorjacking — это форма кликджекинга, при которой создается дубликат курсора и прикрепляется к реальному курсору с заданным смещением.Виден только повторяющийся курсор. Если есть определенная область экрана, на которую злоумышленник знает, что пользователь щелкнет, они могут стратегически сместить настоящий скрытый курсор, чтобы при перемещении фальшивого курсора в эту область нажималась вредоносная ссылка.
Cursorjacking был возможен из-за уязвимостей в Firefox. Эти недостатки безопасности были исправлены в Firefox 30.
Загрузки вредоносного ПО
Злоумышленник может инициировать загрузку вредоносного ПО, когда пользователь щелкает перехваченную ссылку.Вредоносное ПО может повредить программное обеспечение системы или создать шлюз для сложных постоянных угроз.
Предотвращение атак с использованием кликджекинга
Если вы хотите измерить уязвимость своего веб-сайта до внедрения защиты от кликджекинга. обратитесь к этой шпаргалке по OWASP.
Снижение кликджекинга может быть достигнуто как на стороне клиента, так и на стороне сервера. Обсудим варианты обоих сценариев.
Предотвращение кликджекинга на стороне сервера
Многие атаки кликджекинга происходят на дубликатах законных веб-сайтов.Злоумышленник может клонировать ваш сайт и превратить его в оружие с помощью скрытых на нем перехваченных ссылок. Помимо разрушительных последствий для пользователей, вашему бизнесу может быть нанесен непоправимый ущерб репутации.
Поэтому вам необходимо убедиться, что ни одна из ваших веб-страниц не может быть заключена в теги или
Есть два способа сделать это:
1. Укажите правильную директиву Content-Security-Policy frame-ancestors.
Политика безопасности контента (CSP) с ее директивой frame-ancestors является высокоэффективной тактикой кибербезопасности против встраивания веб-страниц.
Помимо защиты вашего веб-сайта от встраивания iframe, Content-Security-Policy также защищает ваш веб-сайт от межсайтовых сценариев (XSS), одного из наиболее распространенных типов кибератак.
Для реализации этой защиты вам необходимо сначала убедиться, что ваш веб-сервер настроен на возврат Content-Security-Policy. После того, как CSP был добавлен на ваш веб-сайт, соответствующие заголовки ответов директивы CSP frame-ancestors могут быть настроены на запрет встраивания.
Директива ‘none’ frame-ancestors не позволит всем доменам встраивать ваш веб-сайт во фрейм.
Например:
Набор заголовков Content-Security-Policy «frame-ancestors none;»
Если вы хотите включить встраивание только для своего домена, вы должны включить директиву «self» предков кадра следующим образом:
Заголовок set Content-Security-Policy «frame-ancestors ‘self ‘; »
Чтобы разрешить домену за пределами вашего собственного для встраивания ваших веб-страниц, вам необходимо использовать схему «data:» и указать URI из белого списка.Однако это небезопасный метод, и его можно обойти, введя несколько произвольных данных: URI.
2. Укажите директиву запрета x-frame-options
Заголовок ответа x-frame-options указывает, разрешено ли браузеру встраивать ваши веб-страницы во фрейм.
Заголовок ответа x-frame-options в конечном итоге станет устаревшим и будет заменен директивой frame-ancestor, поэтому он не должен быть вашим основным методом защиты.
Чтобы отправлять правильные HTTP-заголовки x-frame-options с ресурсов вашего веб-сайта, вам необходимо установить для директивы значение ‘deny.’
Например:
X-Frame-Options : DENY
После того, как ваши x-frame-options настроены на директиву deny на стороне сервера, все попытки загрузка вашего сайта во фрейме будет заблокирована. Это эквивалентно фреймам-предкам, не являющимся дефектными в Политике безопасности контента.
Если вы хотите разрешить кадрирование только для своего собственного домена, вы должны установить ту же директиву происхождения следующим образом:
X-Frame-Options : SAMEORIGIN
Это эквивалентно frame- предки самостоятельной директивы Политики безопасности контента.это позволит кадрировать ваш веб-контент только в том случае, если родитель имеет то же происхождение.
Предотвращение кликджекинга на стороне клиента
Предотвращение кликджекинга на стороне клиента не так эффективно, как тактика предотвращения на стороне сервера. Эти методы следует применять как второстепенный вариант.
1. Скрипты удаления фрейма
Скрипты удаления фрейма предотвращают работу вашего веб-сайта внутри фрейма. С помощью надстроек Javascript вы можете указать, как браузер должен реагировать, когда ваша страница загружается во фрейме.
Распространенный метод блокировки кадров — заставить браузер перезагрузить смещенную ложную веб-страницу в верхнем окне. Таким образом, веб-сайт-ловушка загружается поверх вредоносного слоя iframe.
Это действие может быть вызвано следующими строками Javascript:
Однако эту защиту легко обойти.Злоумышленник может заблокировать попытку принудительной перезагрузки с помощью следующих строк Javascript:
Другой способ обойти скрипты блокировки фреймов — использовать атрибут песочницы HTML 5 iframe.
Вот пример кода Javascript:
Если опустить атрибут allow-top-navigation, iframe, содержащий ложную веб-страницу, не может быть загружен сверху невидимой страницы.С помощью этой защиты злоумышленник может разрешить браузеру запускать сценарии и отправлять формы.
Сценарии блокировки фреймов не являются рекомендуемой защитой от атак с использованием кликджекинга. Многие веб-браузеры блокируют загрузку фреймов кода Javascript и браузеры, которые этого не делают, можно легко обмануть, чтобы разрешить вредоносное наложение.
Исследование, проведенное Standford Web Security Group, описывает уязвимости методов перебора фреймов, связанных с перехватом кликов.
2. Установите расширения браузера
Расширения браузера, предотвращающие кликджекинг, не обеспечивают наилучшего взаимодействия с пользователем, поскольку отключают весь JavaScript на загруженных веб-сайтах. Многие популярные веб-сайты, такие как Facebook, Twitter и Youtube, работают на Javascript, и эти расширения будут препятствовать их функциональности.
Чтобы поддерживать работу Javascript на надежных сайтах, вам необходимо вручную указать белый список.
Вот список надстроек блокировки Javascript для разных браузеров.
Chrome
Scriptsafe — это расширение для Chrome.
Mozilla Firefox
NoScript — это надстройка браузера Mozilla Firefox.
Safari
JS Blocker — это расширение браузера Safari.
Microsoft Edge
Javascript Toggle ON и Off — это надстройка, которую можно установить в Microsoft Edge.
DuckDuckGo
Duckduckgo не имеет надстройки для блокировки Javascript, которую вы можете установить, но они предлагают альтернативный браузер, специально разработанный для блокировки веб-сайтов с Javascript. Вы можете получить доступ к этому браузеру здесь.
Internet Explorer
Чтобы отключить Javascript в Internet Explorer, выполните следующие действия:
- Выберите значок шестеренки в правом верхнем углу или нажмите ALT + X
- В раскрывающемся меню выберите «Свойства обозревателя»
- Щелкните вкладка «Безопасность»
- Щелкните «Пользовательский уровень»
- В разделе «Активные сценарии» выберите «Отключить».
- Выберите «Да» для подтверждения.
Существует ли риск утечки данных для вашего бизнеса?
В UpGuard мы можем защитить ваш бизнес от утечки данных, выявить все утечки данных и помочь вам постоянно контролировать состояние безопасности всех ваших поставщиков.
Проверьте свою устойчивость к утечкам данных, НАЖМИТЕ ЗДЕСЬ , чтобы получить БЕСПЛАТНЫЙ рейтинг надежности прямо сейчас!
Атаки кликджекинга и способы их предотвращения
Атаки кликджекинга основаны на визуальных приемах, которые заставляют посетителей веб-сайта нажимать на элементы пользовательского интерфейса, которые будут выполнять действия на другом веб-сайте. В этой статье показано, как на практике работают атаки кликджекинга и как их предотвратить.
Что такое кликджекинг?
Цель атаки кликджекинга — заставить ничего не подозревающих посетителей сайта выполнить действия на другом сайте (целевом сайте).Например, пользователя может привлечь веб-сайт, который обещает ему исключительный приз. Когда пользователь нажимает кнопку, чтобы принять приз, его щелчок вместо этого используется для покупки товара на веб-сайте электронной коммерции. Обычно эта атака выполняется путем сокрытия пользовательского интерфейса целевого веб-сайта и организации видимого пользовательского интерфейса таким образом, чтобы пользователь не знал, что щелкнул целевой веб-сайт. Из-за такого расположения UI этот вид атаки также известен как UI, восстанавливающий или UI, восстанавливающий атаку .
Из-за этого обмана пользователь невольно выполняет такие операции, как перевод денег, покупка продуктов, загрузка вредоносных программ, предоставление им , как в социальной сети и т. Д. Но как это работает? Читайте дальше, и вы узнаете
Типы атак с использованием Clickjacking
В зависимости от характера конкретной операции атака может иметь разные имена. Рассмотрим, например, следующие варианты:
- Likejacking : Этот вид атаки направлен на захват кликов пользователей и перенаправление их на «лайки» на странице Facebook или в других социальных сетях.
- Cookiejacking : в этом случае пользователь должен взаимодействовать с элементом пользовательского интерфейса, например, с помощью перетаскивания, и предоставить злоумышленнику файлы cookie, хранящиеся в его браузере. Таким образом, злоумышленник может выполнять действия на целевом веб-сайте от имени пользователя.
- Filejacking : С помощью этого типа атаки пользователь позволяет злоумышленнику получить доступ к своей локальной файловой системе и взять файлы.
- Cursorjacking : Этот метод изменяет положение курсора на другое место, отличное от того, где пользователь его воспринимает.Таким образом, пользователь считает, что он совершает действие, в то время как на самом деле он совершает другое.
- Атаки менеджеров паролей : Этот тип атаки направлен на то, чтобы обмануть менеджеры паролей, чтобы воспользоваться их функцией автозаполнения.
Это лишь некоторые из множества других возможных вариантов кликджекинга. Даже если существует много вариантов, имейте в виду, что основной принцип, на который они опираются, тот же: захват действий пользователя с помощью уловки пользовательского интерфейса.
Clickjacking в действии
Чтобы понять подробности атаки clickjacking, давайте посмотрим, как это может происходить на практике.Это поможет вам узнать его поведение и разработать стратегию его предотвращения.
Для запуска примера приложения, которое вы собираетесь загрузить, вам просто нужно установить Node.js на вашем компьютере. Однако, , принципы, лежащие в основе уязвимости, связанной с кликджекингом, и стратегии предотвращения не зависят от конкретного языка программирования или фреймворка .
Настройка среды
Начнем с клонирования примера приложения из репозитория GitHub, прилагаемого к этой статье.Выполните следующую команду на своем компьютере:
git clone https://github.com/auth0-blog/clickjacking-sample-app.git
После завершения загрузки установите зависимости проекта, переместив проект и запустите эту команду:
npm install
Теперь вы можете запустить уязвимый веб-сайт примера проекта, набрав следующее:
npm start
Наконец, откройте браузер и перейдите по адресу http: / / localhost: 3000 адрес.Вы должны увидеть следующую страницу:
Проект реализует определенную страницу фильма на фиктивном веб-сайте потоковой передачи фильмов. Помимо возможности транслировать фильм в потоковом режиме, вы также можете купить соответствующий DVD. Однако для просмотра и покупки фильма вам потребуется сеанс с аутентификацией. Чтобы упростить задачу, в этом проекте не реализован фактический процесс аутентификации. Вы можете смоделировать аутентифицированный сеанс, щелкнув ссылку допустимый сеанс в сообщении внизу страницы.После получения смоделированного сеанса пользователя это сообщение исчезнет.
Запустить атаку кликджекинга
После того, как веб-сайт фильма будет запущен, вы собираетесь настроить для него атаку кликджекинга. У вас будет другой веб-сайт, веб-сайт злоумышленника, код которого захватит ваш щелчок и перенаправит его на веб-сайт фильма, а вы этого не заметите.
Итак, запустим сайт злоумышленника, выполнив следующую команду в окне терминала:
узел злоумышленник-сервер.js
Затем откройте новую вкладку или новый экземпляр браузера и перейдите по адресу http: // localhost: 4000. Вы должны увидеть следующую страницу:
Эта страница обещает вам чудесный отпуск, просто нажав Примите приз! Кнопка . Похоже, это совершенно не связано с сайтом фильма. Однако, если вы нажмете кнопку, вы фактически покупаете DVD на веб-сайте фильма. Вы можете проверить это, открыв инструмент разработчика в своем браузере и проанализировав сетевой трафик, нажав кнопку.Это пример отслеживания в Chrome DevTools:
. Вы можете заметить HTTP-запрос POST к конечной точке http: // localhost: 3000 / buy
веб-сайта фильма.
Какая связь между этим сайтом и сайтом фильма? Вы откроете для себя это через мгновение.
«Атака кликджекинга направлена на захват действия пользователя с помощью уловки пользовательского интерфейса».
Tweet This
Анатомия атаки
Чтобы понять, что произошло, давайте взглянем на страницу сайта злоумышленника.Перейдите в папку views
и откройте страницу index.ejs
. Тело страницы выглядит следующим образом:
Ты победитель !!!
Вы выиграли замечательный отпуск в тропиках!
Примите его, нажав кнопку ниже.
Его содержимое представляет собой шаблон EJS с двумя основными элементами:
- Видимая часть страницы определяется блоком div с идентификатором
attacker_website
. - iframe с
weak_website
id
указывает на веб-сайт фильма, но на самом деле вы не видите его на странице злоумышленника.
Трюк, соединяющий два веб-сайта, выполняется правилами CSS, определяющими положение и видимость этих элементов. Давайте посмотрим на них:
<стиль>
#vulnerable_website {
положение: относительное;
непрозрачность: 0,0;
ширина: 800 пикселей;
высота: 900 пикселей;
верх: 75 пикселей;
слева: -95px;
z-индекс: 2;
отступ слева: 80 пикселей;
}
#attacker_website {
позиция: абсолютная;
z-индекс: 1;
}
#attacker_website button {
маржа слева: 100 пикселей;
}
Как видите, iframe weak_website
присвоил 0.0
для его непрозрачности, что делает его прозрачным. Кроме того, он расположен так, что перекрывает div attacker_website
. Вы можете увидеть, как iframe перекрывает div, изменив значение непрозрачности iframe на 0,3
. После изменения этого значения перезапустите сайт злоумышленника. Вы должны увидеть страницу злоумышленника, как показано на следующем рисунке:
Вы видите, что Примите приз! Кнопка перекрывает кнопку Купить DVD на веб-сайте фильма.
Свойство z-index
завершает работу: невидимый iframe находится над блоком div злоумышленника. Итак, пользователи думают, что нажимают Примите приз! , но на самом деле они нажимают кнопку Купить DVD .
Теперь, когда вы знаете, как работает атака кликджекинга, должно быть понятно, почему этот метод также известен как UI, восстанавливающий .
Обратите внимание, что для успешной атаки у вас должен быть действующий сеанс на веб-сайте фильма.Однако сама атака не связана с использованием файлов cookie сеанса. Атака может быть проведена даже против веб-сайта, не требующего аутентификации.
Отличия от CSRF
Механика атаки clickjacking может быть похожа на атаку CSRF, когда злоумышленник отправляет запрос на целевой сервер, используя ваш активный сеанс. Однако они совсем другие.
Фактически, в случае CSRF злоумышленник создает HTTP-запрос и использует сеанс пользователя для отправки его на сервер.В случае кликджекинга пользователь напрямую взаимодействует с целевым веб-сайтом. Атакующий не создает никаких запросов. Запрос, отправленный на целевой сервер, является законным запросом пользователя. Прочтите это сообщение в блоге, чтобы узнать больше об атаках CSRF и способах их предотвращения.
Предотвратить атаки кликджекинга
Теперь вы знаете, как работают атаки кликджекинга. Давайте обсудим, как вы можете предотвратить их и сделать свой сайт более безопасным.
Даже если пример приложения, приведенный в этой статье, представляет собой традиционное веб-приложение, учтите, что ядром атаки является возможность включить веб-сайт или приложение в iframe.Это означает, что атака кликджекинга может затронуть любой тип приложения независимо от технологии или инфраструктуры, использованной для его создания. Таким образом, уязвимы не только обычные веб-приложения, но и React, Angular и другие приложения.
То же самое относится к серверной части приложения.
«Узнайте, как защитить свои веб-приложения от атак с использованием clickjacking».
Tweet This
Защита на стороне клиента
Поскольку атаки кликджекинга используют iframe, вы можете подумать, что применение какой-то защиты на стороне клиента, которая предотвращает загрузку вашего веб-сайта в iframe, может защитить его.Этот метод, известный как с блокировкой фреймов , может быть реализован с помощью нескольких строк JavaScript.
Рассмотрите возможность добавления следующего скрипта в заголовок страницы уязвимого веб-сайта:
<мета-кодировка = utf-8>
Киноцентр уязвимых
<сценарий>
if (top! = window) {
вершина.location = window.location;
}
Если страница уязвимого веб-сайта находится за пределами самого верхнего окна браузера, она перезагружается в верхнем окне. На практике этот сценарий заменяет страницу злоумышленника скрытой страницей, позволяя пользователю разоблачить атаку.
Вроде хорошее решение проблемы. Однако у этого подхода есть несколько проблем. Например, некоторые браузеры или надстройки браузера могут блокировать автоматическую перезагрузку.Кроме того, злоумышленник может построить свою страницу таким образом, чтобы нейтрализовать эту защиту. Например, злоумышленник может просто добавить на свою страницу следующий скрипт:
<сценарий>
window.onbeforeunload = function () {
вернуть ложь;
};
Обрабатывая событие onbeforeunload
, злоумышленник пытается отключить закрытие текущей страницы.Этот подход не может работать в некоторых браузерах, поскольку может потребоваться подтверждение пользователя. Но у злоумышленника есть другие варианты. Например, они могут использовать атрибут песочницы iframe
, как показано ниже:
В этом случае злоумышленник указывает, что содержимому iframe разрешено выполнять сценарии ( allow-scripts
), отправлять формы ( allow-forms
) и обрабатывать как исходящее из то же происхождение ( allow-same-origin
).Никакие другие разрешения не указаны, поэтому содержимое iframe не может заменить содержимое верхнего уровня, как это разрешило бы значение allow-top-navigation
.
Другими словами, клиентскую защиту от атак типа clickjacking легко обойти, и ее не рекомендуется использовать, кроме как для смягчения проблемы в устаревших браузерах.
Если вы хотите попробовать эту защиту на стороне клиента и соответствующую нейтрализацию атакующего, вы можете загрузить адаптированный проект с помощью следующей команды:
git clone -b client-side-defenses https: // github.com / auth0-blog / clickjacking-sample-app.git
Учтите, что, помимо показанного здесь подхода, существуют другие аналогичные методы, основанные на JavaScript и HTML, которые пытаются предотвратить атаки кликджекинга. Однако в целом попытки на стороне клиента заблокировать атаки кликджекинга обычно не работают, поскольку их легко обойти.
Лучший подход к предотвращению атак с использованием кликджекинга — попросить браузер заблокировать любую попытку загрузить ваш веб-сайт в iframe. Вы можете сделать это, отправив HTTP-заголовок X-Frame-Options
.
Начните с исходного примера проекта, следуя инструкциям, приведенным в разделе «Настройка среды». Затем отредактируйте файл server.js
, как показано ниже:
// server.js
const express = require ('экспресс');
const session = require ('экспресс-сеанс');
const bodyParser = require ('body-parser');
const порт = 3000;
константное приложение = экспресс ();
app.set ('просмотры', './templates');
app.set ('движок просмотра', 'ejs');
// 👇 новый код
app.use (function (req, res, next) {
рез.setHeader ('Параметры X-кадра', 'sameorigin');
следующий();
});
// ... существующий код ...
app.listen (порт, () => console.log (`Сервер прослушивает http: // localhost: $ {port}`));
Вы настроили промежуточное ПО Express, которое добавляет HTTP-заголовок X-Frame-Options
к каждому ответу браузера. Значение, связанное с этим заголовком ответа, — sameorigin
, которое сообщает браузеру, что только страницы одного и того же веб-сайта могут включать эту страницу в iframe.
С этим ограничением злоумышленник не сможет использовать описанный выше метод для захвата кликов пользователей. Вы можете убедиться, что эта защита работает, изменив прозрачность iframe на странице злоумышленника:
<стиль>
#vulnerable_website {
положение: относительное;
непрозрачность: 0,3; // 👈 измененный код
ширина: 800 пикселей;
высота: 900 пикселей;
верх: 75 пикселей;
слева: -95px;
z-индекс: 2;
отступ слева: 80 пикселей;
}
#attacker_website {
позиция: абсолютная;
z-индекс: 1;
}
#attacker_website button {
маржа слева: 100 пикселей;
}
После применения этого изменения перезапустите веб-сайт злоумышленника.Вы должны увидеть что-то похожее на следующую картинку:
На этот раз содержимое iframe заблокировано.
Альтернативное значение для заголовка X-Frame-Options
— deny
, что предотвращает любую попытку поместить страницу во фрейм.
Чтобы попробовать этот подход, вы можете загрузить вариант проекта примера приложения с помощью следующей команды:
git clone -b x-frame-options https://github.com/auth0-blog/clickjacking-sample-app.git
Использование CSP
Основные браузеры поддерживают заголовок X-Frame-Options
. Однако он никогда не был стандартизирован, поэтому могут быть браузеры, не поддерживающие его. Альтернативный стандартный подход к предотвращению атак типа «кликджекинг» — использование определенных директив политики безопасности контента (CSP).
Например, после восстановления исходного состояния проекта примера приложения измените содержимое файла server.js
следующим образом:
// server.js
const express = require ('экспресс');
const session = require ('экспресс-сеанс');
const bodyParser = require ('body-parser');
const порт = 3000;
константное приложение = экспресс ();
app.set ('просмотры', './templates');
app.set ('движок просмотра', 'ejs');
// 👇 новый код
app.use (function (req, res, next) {
res.setHeader ("Content-Security-Policy", "frame-ancestors 'self';");
следующий();
});
// ... существующий код ...
app.listen (порт, () => console.log (`Сервер прослушивает http: // localhost: $ {port}`));
В этом случае вы присоединяете заголовок Content-Security-Policy
с «self» предков кадра ; Значение
для каждого исходящего ответа.Эта директива CSP позволяет получить тот же результат, что и заголовок X-Frame-Options
со значением sameorigin
.
Альтернативные значения для управления внедрением iframe через заголовок Content-Security-Policy
:
-
frame-ancestors 'none';
: Это предотвращает любую попытку включить страницу во фрейм. -
кадры-предки https://www.authorized-website.com;
: Эта директива позволяет указать, какому веб-сайту разрешено встраивать страницу во фрейм.Вы можете указать несколько URI.
Auth0 защищает свою страницу универсального входа от атак кликджекинга, отправляя заголовки
X-Frame-Options
иContent-Security-Policy
. Если указаны оба заголовка, приоритет имеетX-Frame-Options
.
Чтобы протестировать подход CSP для защиты образца приложения от кликджекинга, загрузите проект, выполнив следующую команду:
git clone -b content-security-policy https: // github.com / auth0-blog / clickjacking-sample-app.git
«Используйте политику безопасности контента для предотвращения атак с использованием кликджекинга».
Tweet This
Использование cookie-файла sameSite origin
Если ваше веб-приложение уязвимо для кликджекинга из-за файлов cookie сеанса, как в примере приложения, которое поставляется с этой статьей, вы можете защитить его, используя свойство cookie sameSite
. В этом случае защита основана не на нарушении поведения iframe, а на предотвращении того, чтобы сеанс был действительным, когда веб-сайт находится в iframe.Учтите, что этот подход не поможет вам, когда действия вашего сайта не зависят от активного сеанса.
Свойство
sameSite
было введено недавно, поэтому старые браузеры могут его не поддерживать.
Давайте посмотрим, как можно применить этот подход. Восстановите исходный проект, как описано в разделе «Настройка среды», и измените содержимое файла server.js
, как показано в следующем фрагменте кода:
// server.js
// ... существующий код ...
app.use (express.static ('общедоступный'));
app.use (session ({
секрет: 'мой-секрет',
повторно сохранить: правда,
saveUninitialized: правда,
cookie: {
httpOnly: правда,
sameSite: 'strict' // 👈 новый код
}
}));
app.use (bodyParser.urlencoded ({extended: true}));
// ... существующий код ...
app.listen (порт, () => console.log (`Сервер прослушивает http: // localhost: $ {port}`));
Вы просто добавили свойство sameSite
со значением 'strict'
в файл cookie сеанса.Это значение указывает браузеру не отправлять cookie сеанса, если запрос поступает из другого домена.
Чтобы убедиться, что пользователь не может завершить покупку через веб-сайт злоумышленника, вам необходимо получить доступ к веб-сайту злоумышленника по адресу http://127.0.0.1:4000. Это необходимо, потому что вы используете одно и то же доменное имя ( localhost ) как для уязвимых, так и для злоумышленников веб-сайтов, а файлы cookie используются независимо от порта. Конечно, на производстве у вас не будет этой проблемы.
Чтобы загрузить проект, реализующий эту защиту от кликджекинга, выполните следующую команду:
git clone -b same-site-cookie https://github.com/auth0-blog/clickjacking-sample-app.git
Об Auth0
Современный подход Auth0 к идентификации позволяет организациям обеспечивать безопасный доступ к любому приложению для любого пользователя. Платформа Auth0 — это настраиваемая операционная система идентификации, которая настолько проста, насколько хотят команды разработчиков, и настолько гибкой, насколько им нужно.Защищая миллиарды транзакций входа в систему каждый месяц, Auth0 обеспечивает удобство, конфиденциальность и безопасность, поэтому клиенты могут сосредоточиться на инновациях. Для получения дополнительной информации посетите https://auth0.com.
Заключение
Эта статья познакомила вас с анализом того, как работает атака кликджекинга и как вы можете защитить свое веб-приложение, применяя различные подходы. У каждой из предложенных стратегий есть свои преимущества и недостатки. Поскольку главная задача защиты безопасности не должна быть проигнорирована, лучший подход состоит в том, чтобы объединить эти подходы, чтобы в случае неудачи одного, скажем, из-за отсутствия поддержки браузера, другой мог добиться успеха.
Для более подробного обсуждения предотвращения кликджекинга вы можете взглянуть на шпаргалку OWASP.
Что такое кликджекинг-атака (с примерами) и как ее предотвратить
Clickjacking — это онлайн-атака, при которой жертва обманом заставляет жертву щелкнуть что-либо, не осознавая этого. Clickjacking также называется атакой восстановления пользовательского интерфейса (атакой восстановления пользовательского интерфейса). Классическая атака кликджекинга «исправляет» видимый для жертвы пользовательский интерфейс, встраивая вредоносный веб-сайт в невидимый iframe поверх исходной веб-страницы.
У жертвы нет визуальных подсказок, что есть невидимый iframe вверху страницы, которую она действительно видит. Невидимая страница содержит интерактивные элементы, которые совпадают с фактическими кнопками на видимой странице внизу. Следовательно, когда жертва нажимает, например, кнопку «Загрузить pdf», она на самом деле щелкает невидимый элемент, который загружает вредоносный скрипт, который затем запускает их браузер.
iframe — это, по сути, фрейм внутри фрейма. Iframes позволяют вам встраивать контент из других источников (веб-сайтов) на свои веб-страницы.Когда вы посещаете веб-сайт, на котором отображается встроенное видео Youtube, например, это видео Youtube живет в iframe.
Как и в случае со многими онлайн-атаками, атаки clickjacking обычно используют ту или иную форму социальной инженерии, чтобы направить цели на скомпрометированный / вредоносный сайт. Это может быть электронное письмо, текстовое сообщение, сообщение в Facebook и т. Д.
Это не просто щелчки мышью. Используя комбинацию таблиц стилей, текстовых полей и окон iframe, злоумышленник может обмануть ничего не подозревающего пользователя, заставив его думать, что он вводит свой пароль на своем сайте онлайн-банкинга, хотя на самом деле они вводят его на сайте, контролируемом злоумышленником. .
Два исследователя безопасности, Джеремайя Гроссман и Роберт Хансен, придумали термин «кликджекинг» после того, как в 2008 году обнаружили, что проигрыватель Adobe Flash уязвим для кликджекинга.
Существует множество различных вариантов атак с использованием кликджекинга, и поэтому выражение «атака восстановления пользовательского интерфейса» сегодня более распространено. Это общий термин, включающий все варианты.
Рабочий пример кликджекинга
- Злоумышленник создает веб-сайт, который выглядит законно, и встраивает вредоносный веб-сайт в iframe.Iframe невидим, поэтому вредоносный сайт не виден, а жертва видит только сайт, который выглядит законно.
- Невидимые элементы на внедренном вредоносном сайте выстраиваются в линию с интерактивными элементами на видимой странице, которая выглядит нормально. При нажатии на невидимые элементы запускаются нежелательные действия, такие как загрузка вредоносного сценария.
- Злоумышленник использует ту или иную форму социальной инженерии, чтобы обманом заставить цель перейти на вредоносный веб-сайт и перейти по вредоносной ссылке.Это может быть ссылка на фальшивый выигранный конкурс или, например, на интересную фотографию знаменитости.
- Как только цель заходит на сайт и нажимает на ссылку, браузер цели выполняет вредоносный скрипт, и происходят неприятные вещи.
Встроенный сайт также может быть легитимным, но уязвимым (для кликджекинга). Давайте возьмем тот же пример, что и выше, но сделаем встроенный невидимый сайт amazon.com. В этом примере, когда жертва нажимает ссылку или кнопку, чтобы сказать, потребовать свой приз или просмотреть фотографию, она фактически совершает дорогостоящую покупку на Amazon.Конечно, для того, чтобы этот пример работал, жертва должна войти в свою учетную запись Amazon и включить покупки в один клик. Но ты получил идею.
Это также может быть веб-сайт жертвы онлайн-банкинга в невидимом окне iframe. Фальшивая кнопка на самом деле могла быть подтверждением перевода средств злоумышленнику. Если жертва вошла в систему своего банковского сайта, средства переводятся злоумышленнику (или организации, контролируемой злоумышленником).
Это также подчеркивает тот факт, что как пользователи веб-сайтов, так и администраторы веб-сайтов должны принимать меры для предотвращения таких атак.Любой законный веб-сайт, который может быть встроен в iframe, уязвим для использования в атаке с использованием clickjacking или восстановления пользовательского интерфейса.
Ниже мы рассмотрим, как пользователи и администраторы могут защитить себя. Но сначала давайте рассмотрим различные атаки восстановления пользовательского интерфейса. Все они в основном вариации на тему классической атаки кликджекинга.
Примеры атак Clickjacking
Классический
Мы объяснили классическую атаку выше.Он состоит из создания законно выглядящего веб-сайта и встраивания вредоносного или легитимного (и уязвимого) веб-сайта в невидимый iframe. Затем злоумышленник обманом заставляет жертву (с помощью социальной инженерии) щелкнуть вредоносный или законный, но нежелательный элемент. Законным, но нежелательным элементом может быть что-то вроде кнопки покупки Amazon в один клик для совершения нежелательной покупки. Или это может быть вредоносный элемент, который загружает неприятный скрипт в ваш браузер. В любом случае жертва считает, что запрашивает свой приз или открывает привлекательную фотографию на законно выглядящем и видимом веб-сайте.
Лайкджекинг
Чрезвычайно распространенной формой атаки на пользовательский интерфейс является взлом: захват лайков в Facebook. Likejacking работает аналогично классической атаке clickjacking. Но это обманом заставляет пользователей Facebook «нравиться» то, что они никогда не собирались делать. Страница злоумышленника в Facebook встроена в невидимый iframe. Следовательно, пользователь не осознает, что на самом деле нажимает невидимую кнопку «Нравится» злоумышленника. Известно, что это нападение произошло в Италии в 2011 году.
Cursorjacking
Cursorjacking заключается в изменении местоположения курсора с того места, где жертва его воспринимает. Типичная атака с перехватом курсора заменяет фактический курсор фальшивым, используя изображение, и смещает его относительно местоположения настоящего курсора. Благодаря грамотному расположению элементов злоумышленник может обманом заставить жертву щелкнуть элементы, которые она никогда не собиралась нажимать.
Когда жертва щелкает на заданном элементе поддельным курсором, настоящий курсор, который смещен от поддельного, фактически щелкает вредоносный элемент.Настоящий курсор может оставаться видимым при атаке с перехватом курсора. Но прилагаются усилия, чтобы сосредоточить внимание жертвы на фальшивом.
Cookiejacking
Cookiejacking — это атака восстановления пользовательского интерфейса, которая крадет файлы cookie жертвы. Получив файлы cookie, злоумышленник может прочитать содержащуюся в них информацию и использовать ее для выдачи себя за жертву. Обычно это достигается обманом, заставляя жертву перетащить элемент на страницу. Но на самом деле они выбирают содержимое своих файлов cookie на встроенной невидимой странице и передают его злоумышленнику.
Filejacking
При атаке с использованием файлового джека злоумышленник использует способность веб-браузеров перемещаться по файловой системе компьютера. Примером может быть загрузка фотографии в социальные сети. Откроется окно обозревателя файлов, и вы сможете перемещаться по файловой системе. При атаке с использованием файлового джека нажатие кнопки «Обзор файлов» (или как там ее называет ваш браузер) устанавливает активный файловый сервер, потенциально предоставляя злоумышленнику доступ ко всей вашей файловой системе.
Как предотвратить атаки кликджекинга?
Способ защиты от атак кликджекинга зависит от того, на каком конце атаки вы находитесь.Защита на стороне клиента отличается от защиты на стороне сервера, и обе они одинаково важны.
Клиентская
1. Используйте браузер, поддерживающий API-интерфейс Intersection Observer
API-интерфейс Intersection Observer может отслеживать «видимость» целевых элементов на веб-странице. Этот API позволяет браузеру определять, когда окно в рамке скрыто.
Следующие настольные браузеры поддерживают API в настоящее время:
- Google Chrome 58 и выше
- Mozilla Firefox 55 и выше
- Microsoft Edge 16 и выше
- Opera 45 и выше
На мобильных устройствах существует так много браузеров, которые доступны как в Apple App Store, так и в Google Play Store, что перечислить их все практически невозможно.Однако браузеры по умолчанию как на iOS, так и на Android поддерживают Intersection Observer API, так что это хорошие новости.
- iOS Safari с iOS версии 12.2 и выше
- Chrome для Android 51 и выше
2. Используйте надстройку браузера
Некоторые надстройки браузера могут обеспечить некоторую защиту от атак типа «кликджекинг».
Некоторые популярные варианты:
- NoScript : надстройка браузера NoScript не позволяет пользователям нажимать на невидимые или «исправленные» элементы веб-страницы.NoScript бесплатен, но поддерживается только Mozilla Firefox.
- NoClickjack : надстройка браузера NoClickjack поддерживается Google Chrome, Mozilla Firefox, Microsoft Edge и Opera. Надстройка делает видимыми все фреймы на веб-странице.
На стороне сервера
На стороне сервера способ защиты от кликджекинга заключается в добавлении соответствующих директив в заголовки HTTP вашего веб-сайта.
1. X-Frame-Options Директива
Представленный Microsoft в выпуске Internet Explorer 2009 года, HTTP-заголовок X-Frame-Options
обеспечивал частичную защиту от кликджекинга.Большинство основных браузеров сегодня поддерживают директиву X-Frame-Options
(Safari, Firefox, Chrome и Opera). В заголовке, установленном администратором веб-сайта, указывается его политика кадрирования. Возможные варианты:
- DENY: запрещает все кадрирование
- ALLOW-FROM origin: Запрещает создание фреймов с внешних сайтов.
- SAMEORIGIN: позволяет создавать фреймы только для указанных сайтов.
Заголовок X-Frame Options
никогда не был официальным интернет-стандартом и был вытеснен политикой frame-ancestors
.Несмотря на этот факт, многие веб-сайты до сих пор используют X-Frame-Options
.
2. Директива предков кадров
Директива frame-ancestors
политики безопасности контента (CSP) может контролировать (разрешая или запрещая) встраивание контента потенциально вредоносными страницами с использованием iframe, объекта и т. Д. CSP — это заголовок HTTP-ответа, который позволяет вам определять, какой динамический ресурсы могут загружаться в зависимости от источника запроса.
Как упоминалось выше, директива frame-ancestors
заменяет директиву X-Frame-Options
. Если страница обслуживается с обоими заголовками, веб-браузер должен использовать политику frame-ancestors
. Однако некоторые браузеры могут игнорировать это требование.
Как добавить директиву frame-ancestors
на ваши веб-сайты
Мы собираемся предоставить инструкции о том, как включить директиву frame-ancestors
на вашем веб-сайте как в Apache, так и в Nginx.
Apache
- Сначала нам нужно включить
mod_headers
.
заголовки sudo a2enmod
- Затем нам нужно перезапустить apache
sudo service apache2 перезапуск
- Затем нам нужно отредактировать httpd.conf или apache.conf в зависимости от вашей установки, чтобы добавить директиву
frame-ancestors
.
Запретить из всех источников
Набор заголовков Content-Security-Policy «frame-ancestors 'none';»
Разрешить себе, но запретить все другие источники
Набор заголовков Content-Security-Policy "frame-ancestors 'self';"
Разрешить с определенных доменов
Заголовок набора Content-Security-Policy "frame-ancestors example1.com example2.com example3.com; "
Разрешить из собственного и указанного доменов
Набор заголовков Content-Security-Policy «frame-ancestors 'self' example1.com example2.com example3.com;»
Не забудьте перезапустить Apache после внесения изменений
sudo service apache2 перезапуск
Nginx
В Nginx вам необходимо отредактировать соответствующий файл конфигурации вашего сайта и добавить директиву frame-ancestors
в блок «server».
Запретить из всех источников
add_header set Content-Security-Policy "предки кадра 'none';"
Разрешить себе, но запретить все другие источники
add_header set Content-Security-Policy "frame-ancestors 'self';";
Разрешить с определенных доменов
add_header set Content-Security-Policy "frame-ancestors example1.com example2.com example3.com;"
Разрешить из собственного и указанного доменов
add_header set Content-Security-Policy «сам» предков кадра example1.com example2.com example3.com; "
Не забудьте перезапустить Nginx после внесения изменений.
sudo service nginx перезапуск
Заключение
Вот и все. Clickjacking — довольно неприятная атака. К счастью, у администраторов сайта есть защита, как и у посетителей сайта. Однако нет ничего 100%. Так что оставайтесь бдительными.
Вот еще несколько здравых советов, взятых из моей статьи «Что такое вредоносные программы троянских коней и как их избежать», которые могут помочь вам защитить себя на стороне клиента.
- Никогда не нажимайте всплывающие окна. Никогда не знаешь, куда они тебя приведут.
- Если ваш браузер отображает предупреждение о веб-сайте, к которому вы пытаетесь получить доступ, вам следует обратить внимание и получить необходимую информацию в другом месте.
- Не нажимайте ссылки (URL-адреса) в сообщениях электронной почты, если вы точно не знаете, кто отправил этот URL-адрес и на что он ведет. И даже тогда внимательно проверьте ссылку. Это ссылка HTTP или HTTPS? Сегодня большинство легитимных сайтов используют HTTPS. Есть ли в ссылке орфографические ошибки (gooogle вместо google)? Если вы можете добраться до пункта назначения, не используя ссылку, сделайте это.
.
Добавить комментарий