Содержание
Кликджекинг: что это такое?
Оглавление
Отношение поисковых систем
Риски
Как обнаружить кликджекинг
Что не относится к кликджекингу
Кликджекинг (clickjacking) – обманная технология, основанная на размещении вызывающих какие-то действия невидимых элементов на сайте поверх видимых активных (кнопки, воспроизведение видео и т. д.). В результате пользователь, сам того не зная, совершает что-то, что не входило в его планы. Например, собирается воспроизвести видео, но подписывается на чью-то рассылку.
Цель кликджекинга может быть любой – от более-менее безобидной накрутки лайков в социальных сетях или подписчиков до скрытого получения персональных данных, совершения покупок за чужой счет и т. д. Чаще всего идет взаимодействие через социальные сети: лайки, вступления в сообщества, кражу личных данных из профиля.
Отношение поисковых систем
Яндекс относит кликджекинг к факторам, негативно влияющим на ранжирование сайта, потому что технология в той или иной степени наносит вред пользователям.
При обнаружении использования обманной технологии позиции сайта в органической выдаче Яндекса понизятся, пока не прекратится использование кликджекинга.
Отмечают проседание позиций на 20–30 пунктов и заметное снижение поискового трафика по брендовым запросам.
Ограничения в ранжировании снимаются в течение двух неделей после устранения проблемы. В редких случаях нужен срок немного больше.
Наложение санкций за кликджекинг отображается в разделе «Безопасность и нарушения» в Яндекс.Вебмастере.
В Яндекс.Браузере сайт будет показываться с предупреждением, что может заметно сказываться на кликабельности.
Решение о наложении санкций применяется только по актуальным данным. То есть использование кликджекинга, например, месяц назад не сказывается на его сегодняшнем положении в выдаче Яндекса.
Если код обманной технологии есть, но неактивен, ограничения в ранжировании на поиске Яндекса не будет.
Google официально не понижает позиции сайта в выдаче, но замеченные в использовании ресурсы исключаются из контекстно-медийной сети, их владельцы не смогут зарабатывать на размещении рекламы от Гугла.
Риски
Не все владельцы сайтов знают, что на их ресурсе используется кликджекинг. Он может быть добавлен незаметно вместе с любым кодом неизвестного происхождения.
Разработчики не афишируют, что применяют кликджекинг. А результат его работы, например кражу персональных данных, могут выдавать как цель, достигаемую другими методами.
Так, например, кликджекинг используют некоторые сервисы, обещающие повысить продажи с сайта с помощью идентификации посетителей через профили в социальных сетях. Контакты пользователя сохраняются в системе и употребляются для рассылки спама, осуществления навязчивых звонков и т. д.
При решении вопроса о добавлении какого-либо кода на сайт должны насторожить следующие обещания разработчика:
- идентифицировать пользователей по аккаунтам в социальных сетях;
- предоставлять информацию, которую пользователь явно не указывает.
Сервисы, оказывающие подобные услуги, необязательно используют кликджекинг, так как есть и другие, легальные технологии, не обманывающие пользователей и не вызывающие понижение в ранжировании в Яндексе. Но недобросовестные разработчики могут на самом деле применять и кликджекинг, выдавая за него другую методику. Поэтому нужно проверять работу всех добавляемых на сайт элементов.
Код может быть размещен осознанно или нет не только владельцем сайта. Технологию могут внедрить злоумышленники, взломав ресурс.
Как обнаружить кликджекинг
Если в Вебмастере Яндекса появилось сообщение, что сайт использует обманную технологию, нужно выявить элементы, содержащие вредоносный код.
Найти их можно с помощью специального софта или вручную.
Пример софта – расширение Clickjacking Reveal для браузера Google Chrome. Нужно произвести установку, на исследуемом сайте открыть Developer Tools (Ctrl + Shift + I), обновить страницу (Ctrl + F5). Расширение найдет вредоносный код. Если он есть, откроется вкладка Source. В ней будут указаны скрипты, использующие обманную технологию.
Чтобы найти кликджекинг вручную, нужно выявить скрытые элементы. Для этого используется консоль браузера. Во время проверки нужно быть авторизованным в какой-нибудь социальной сети.
Необходимо выполнить следующие действия:
- Авторизоваться в соцсети (например, во «ВКонтакте»).
- Очистить cookies сайта в браузере.
- Открыть консоль (сочетание клавиш Ctrl + Shift + I или Ctrl + Shift + K для Mozilla Firefox).
- Загрузить исследуемую страницу.
- Произвести какие-нибудь действия, имитируя активность обычного пользователя.
- Посмотреть, есть ли обращение к социальной сети. Для этого на вкладке «Сеть» в консоли нужно поискать записи, соответствующие событиям соцсети. Для «ВКонтакте» это widget_auth.php – авторизация, widget_like.php – лайк.
- Далее нужно найти код, вызывающий подгрузку скрытых элементов. Во вкладке «Инспектор» нужно найти фрагменты кода, обращающиеся к социальным сетям. Каждый элемент нужно проверить: относится он к видимому или скрытому участку. Для этого достаточно навести курсор и посмотреть выделенную область экрана.
- Если на вкладке «Сеть» есть обращение к социальным сетям, а во вкладке «Инспектор» не удается обнаружить вызывающий его фрагмент кода, – это кликджекинг.
- Выявить код можно, последовательно удаляя сомнительные фрагменты, проверяя при этом, не исчезло ли обращение к социальным сетям. Особое внимание следует уделить элементам script, iframe и object.
Если найден код, являющийся причиной кликджекинга, его нужно удалить. Предварительно рекомендуется сохранять резервную копию сайта, чтобы случайно не нарушить работу каких-то необходимых и безопасных для пользователей элементов.
После устранения кода кликджекинга нужно зайти в раздел «Безопасность и нарушения» в Вебмастере Яндекса и нажать на кнопку «Я все исправил», чтобы быстрее произошла повторная проверка.
Что не относится к кликджекингу
Внедрение санкций со стороны Яндекса за кликджекинг вызвало много вопросов о некоторых размещаемых на сайтах элементах. Что не попадает под определение и может использоваться:
- код для ретаргетинга из «ВКонтакте». При его установке собирается информация о том, что на сайте смотрел пользователь, а потом в соцсети ему демонстрируется «догоняющая» реклама. Так как все данные обезличены, это не кликджекинг;
- формы для оставления комментариев через социальную сеть. Если они не скрытые, то не попадают под определение и не влияют на положение сайта в выдаче Яндекса;
- социальный замок. Делает недоступной часть контента, пока ссылкой на страничку не поделятся в соцсети. Такой замок не собирает данные, и пользователь о нем знает, поэтому никаких санкций.
Не любое взаимодействие сайта с социальной сетью может относиться к кликджекингу. Обманная технология – это только та, которая работает без ведома пользователей, скрыта от них, тайно получает данные, которые они не собирались о себе сообщать, или заставляет неосознанно совершать незапланированные действия. За использование легальных технологий, обращающихся к соцсетям, со стороны Яндекса нет санкций.
Кликджекинг — Вебмастер. Справка
Кликджекинг — это мошенническая техника, которая может использоваться, например, для сбора персональных данных посетителей сайта без их ведома.
Посетитель, зашедший на сайт с кликджекингом, может незаметно для себя оформить подписку в социальной сети или «лайкнуть» какую-либо запись. После этих действий сайт автоматически определяет учетную запись посетителя, а его владелец может использовать личные данные по своему усмотрению. Например, номер телефона — для навязчивых звонков с предложениями купить тот или иной товар. Чаще всего подобный механизм используется в сервисах по «улучшению продаж».
Если на вашем сайте обнаружен кликджекинг, рекомендуем полностью отказаться от его использования. При этом не обязательно отказываться от сервиса, предоставляющего подобную услугу. Достаточно отключить ее. Однако стоит помнить, что кликджекинг — мошенническая техника, и вам решать, стоит ли доверять сервисам, которые могут использовать подобные механизмы.
Примечание. Сайт, на котором обнаружен кликджекинг, показывается в поисковой выдаче с предупреждением. Также предупреждение отображается при переходе на сайт в Яндекс Браузере. Рекомендуем обратить внимание на записи в блоге Яндекс Вебмастера: Как кликджекинг влияет на ранжирование и Черный кликджекинг с полным его разоблачением.
Типичной реализацией кликджекинга является создание на сайте скрытых элементов, которые взаимодействуют с социальной сетью. Как правило, элементы располагаются поверх кнопок, форм, видеороликов и т. п. Также они могут перемещаться вслед за курсором мыши по странице. Такие элементы не видны посетителю, но их можно обнаружить в 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.
Когда необходимые изменения внесены на сайт, вы можете воспользоваться кнопкой Я все исправил в Вебмастере на странице Безопасность и нарушения, чтобы дополнительно сообщить роботу о предпринятых вами действиях.
Примечание.
Повторно нажать кнопку Я все исправил для одного сайта можно через месяц. Далее, во избежание злоупотребления кнопкой, этот период будет увеличиваться и может составить три месяца. Поэтому рекомендуем воспользоваться кнопкой только тогда, когда вы уверены, что нарушений на сайте больше нет.
Если в Вебмастере права на сайт подтверждены у нескольких пользователей, договоритесь, кто и когда отправит сайт на перепроверку. После нажатия кнопки ни один из пользователей не сможет нажать ее повторно в течение месяца.
Обычно ограничения снимаются в течение двух недель после устранения нарушения. При повторном обнаружении кликджекинга на сайте срок действия ограничений может быть увеличен.
Рекомендуем проверить наличие кликджекинга с помощью инструкции, размещенной выше. После проверки, нажмите кнопку Я все исправил на странице Безопасность и нарушения. Если на сайте действительно не используется данная технология, то ограничения будут сняты.
Проверьте, что на сайте действительно не осталось программного кода, с помощью которого осуществляется кликджекинг. Возможно, на вашем сайте использовалось несколько сервисов, которые могут предоставлять услугу кликдженинга.
Убедитесь, что после нажатия кнопки прошло достаточно времени (более двух недель). Если это не так, возможно, наши алгоритмы еще не успели отследить изменения на сайте.
Что такое кликджекинг | Пример атаки | Плюсы и минусы опций X-Frame
184,1 тыс. просмотров
Что такое кликджекинг
Clickjacking — это атака, которая заставляет пользователя щелкнуть элемент веб-страницы, который невидим или замаскирован под другой элемент. Это может привести к тому, что пользователи непреднамеренно загрузят вредоносное ПО, посетят вредоносные веб-страницы, предоставят учетные данные или конфиденциальную информацию, переведут деньги или приобретут товары в Интернете.
Как правило, кликджекинг выполняется путем отображения невидимой страницы или элемента HTML внутри iframe поверх страницы, которую видит пользователь. Пользователь считает, что он щелкает видимую страницу, но на самом деле он щелкает невидимый элемент на дополнительной странице, расположенной поверх нее.
Невидимая страница может быть вредоносной или законной страницей, которую пользователь не собирался посещать, например страницей на банковском сайте пользователя, которая разрешает перевод денег.
Существует несколько вариантов атаки кликджекинга, например:
- Лайкджекинг – метод, при котором манипулируют кнопкой Facebook «Нравится», заставляя пользователей «лайкать» страницу, которую они на самом деле не собирались лайкать.
- Cursorjacking – метод исправления пользовательского интерфейса, который меняет курсор для позиции, которую воспринимает пользователь, на другую позицию. Cursorjacking основан на уязвимостях в Flash и браузере Firefox, которые уже устранены.
Пример атаки Clickjacking
- Злоумышленник создает привлекательную страницу, которая обещает предоставить пользователю бесплатную поездку на Таити.
- В фоновом режиме злоумышленник проверяет, вошел ли пользователь на его банковский сайт, и если это так, загружает экран, который разрешает перевод средств, используя параметры запроса для вставки банковских реквизитов злоумышленника в форму.
- Страница банковского перевода отображается в невидимом фрейме над страницей бесплатного подарка, при этом кнопка «Подтвердить перевод» точно совмещена с видимой для пользователя кнопкой «Получить подарок».
- Пользователь заходит на страницу и нажимает кнопку «Забронировать бесплатную поездку».
- На самом деле пользователь нажимает на невидимый iframe и нажимает кнопку «Подтвердить перевод». Средства переводятся злоумышленнику.
- Пользователь перенаправляется на страницу с информацией о бесплатном подарке (не зная, что произошло в фоновом режиме).
Этот пример показывает, что при атаке кликджекинга вредоносное действие (в данном случае на веб-сайте банка) невозможно отследить до злоумышленника, поскольку пользователь выполнил его, законно войдя в свою учетную запись.
Предотвращение кликджекинга
Существует два основных способа защиты от кликджекинга:
- Методы на стороне клиента — наиболее распространенный называется блокировкой кадров. Методы на стороне клиента могут быть эффективными в некоторых случаях, но считаются не лучшей практикой, поскольку их можно легко обойти.
- Методы на стороне сервера – наиболее распространенными являются X-Frame-Options. Методы на стороне сервера рекомендуются экспертами по безопасности как эффективный способ защиты от кликджекинга.
Снижение кликджекинга с помощью заголовка ответа X-Frame-Options
Заголовок ответа X-Frame-Options передается как часть ответа HTTP веб-страницы, указывая, следует ли разрешить браузеру отображать страницу внутри Тег или
Для заголовка X-Frame-Options разрешены три значения:
- DENY – ни одному домену не разрешается отображать эту страницу во фрейме
- САМЕОРИГИН – позволяет отображать текущую страницу во фрейме на другой странице, но только в пределах текущего домена
- ALLOW-FROM URI — позволяет отображать текущую страницу во фрейме, но только в определенном URI — например, www.example.com/frame-page
.
Использование параметра SAMEORIGIN для защиты от кликджекинга
X-Frame-Options позволяет издателям контента предотвращать использование злоумышленниками их собственного контента в невидимом фрейме.
Параметр DENY является наиболее безопасным и предотвращает любое использование текущей страницы во фрейме. Чаще используется SAMEORIGIN, так как он позволяет использовать фреймы, но ограничивает их текущим доменом.
Ограничения X-Frame-Options
- Чтобы включить параметр SAMEORIGIN на веб-сайте, заголовок X-Frame-Options должен быть возвращен как часть HTTP-ответа для каждой отдельной страницы (не может применяться на разных сайтах). .
- X-Frame-Options не поддерживает белый список разрешенных доменов, поэтому он не работает с сайтами с несколькими доменами, между которыми необходимо отображать содержимое во фреймах.
- На одной странице можно использовать только одну опцию, поэтому, например, невозможно, чтобы одна и та же страница отображалась в виде фрейма как на текущем сайте, так и на внешнем сайте.
- Параметр ALLOW-FROM поддерживается не всеми браузерами.
- X-Frame-Options — устаревшая опция в большинстве браузеров.
Тест на кликджекинг. Уязвим ли ваш сайт?
Простой способ проверить, уязвим ли ваш сайт для кликджекинга, — создать HTML-страницу и попытаться включить конфиденциальную страницу с вашего веб-сайта в iframe. Важно выполнить тестовый код на другом веб-сервере, потому что это типичное поведение при атаке кликджекинга.
Используйте следующий код, предоставленный как часть Руководства по тестированию OWASP:
<голова>Тестовая страница Clickjack голова> <тело>Веб-сайт уязвим для кликджекинга!
тело>
Просмотрите HTML-страницу в браузере и оцените ее следующим образом:
- Если появится текст «Веб-сайт уязвим для кликджекинга», а под ним вы увидите содержание конфиденциальной страницы, страница уязвима для кликджекинга .
- Если отображается только текст «Веб-сайт уязвим для кликджекинга», а вы не видите содержимое своей конфиденциальной страницы, значит, страница не уязвима для простейшей формы кликджекинга.
Однако требуется дополнительное тестирование, чтобы увидеть, какие методы защиты от кликджекинга используются на странице и могут ли злоумышленники их обойти.
Как Imperva помогает смягчить атаку кликджекинга
Чтобы добраться до точки взлома сайта, сайт должен быть скомпрометирован, а Imperva WAF предотвращает это. Вы также должны убедиться, что ресурсы вашего сайта отправляют правильные заголовки HTTP X-Frame-Options, что предотвратит кадрирование некоторых частей вашего сайта на других страницах или за пределами вашего домена.
Что такое Clickjacking? Учебник и примеры
Твиттер
Фейсбук
Реддит
Электронное письмо
В этом разделе мы объясним, что такое кликджекинг, опишем распространенные примеры атак кликджекинга и обсудим, как защититься от этих атак.
Что такое кликджекинг?
Clickjacking — это атака на основе интерфейса, при которой пользователя обманом заставляют щелкнуть по полезному контенту на скрытом веб-сайте, щелкнув какой-либо другой контент на фиктивном веб-сайте. Рассмотрим следующий пример:
Веб-пользователь заходит на веб-сайт-приманку (возможно, это ссылка, предоставленная по электронной почте) и нажимает кнопку, чтобы выиграть приз. По незнанию они были обмануты злоумышленником, который нажал альтернативную скрытую кнопку, что привело к оплате счета на другом сайте. Это пример атаки кликджекинга. Этот метод зависит от включения невидимой веб-страницы (или нескольких страниц), содержащей кнопку или скрытую ссылку, скажем, внутри iframe. Кадр iframe накладывается поверх предполагаемого содержимого веб-страницы-приманки пользователя. Эта атака отличается от атаки CSRF тем, что от пользователя требуется выполнить действие, такое как нажатие кнопки, тогда как атака CSRF зависит от подделки всего запроса без ведома или ввода пользователя.
Защита от CSRF-атак часто обеспечивается с помощью токена CSRF: одноразового номера для конкретного сеанса или одноразового номера. Атаки Clickjacking не нейтрализуются токеном CSRF, поскольку целевой сеанс устанавливается с контентом, загруженным с подлинного веб-сайта, и все запросы выполняются в домене. Токены CSRF помещаются в запросы и передаются на сервер как часть обычного сеанса. Отличие от обычного пользовательского сеанса заключается в том, что процесс происходит внутри скрытого iframe.
Как построить базовую атаку кликджекинга
Атаки Clickjacking используют CSS для создания слоев и управления ими. Злоумышленник включает целевой веб-сайт в виде слоя iframe, наложенного на веб-сайт-приманку. Пример использования тега стиля и параметров выглядит следующим образом:
<голова>
<стиль>
#целевой_сайт {
должность: родственница;
ширина: 128 пикселей;
высота: 128 пикселей;
непрозрачность: 0,00001;
z-индекс: 2;
}
#приманка_веб-сайт {
положение: абсолютное;
ширина: 300 пикселей;
высота: 400 пикселей;
z-индекс: 1;
}
стиль>
голова>
. ..
<тело>
<дел>
...приманка веб-контента здесь...