«Кликджекинг» — он же «Clickjacking», он же «угон клика», он же «подмена пользовательского интерфейса», он же «перекрытие iframe» — позволяет хакеру выполнить клик на сайте от имени посетителя. Как он это делает? Атакующий создаёт страницу с тщательно размещёнными визуальными элементами. Поверх размещается прозрачный iframe. Пользователь заманчиво нажимает на эти элементы, но в действительности неосознанно нажимает на элемент на другой странице. Весь фокус заключается в прозрачности, так что «жертва» взаимодействует с элементом пользовательского интерфейса, которого просто не видит.

Известно, что Clickjacking использовался уже в 2002 году, однако, как серьёзная проблема безопасности веб-приложений рассматривается лишь с 2008 года. И правильно, ведь атака направлена как на пользователя, так и на другой веб-сайт или веб-приложение. Пользователь является прямой жертвой, а сайт используется в качестве инструмента.

Примеры кликджекинга.

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

  1. Злоумышленник создает невидимый iframe (прозрачное наложение) поверх вредоносной страницы и загружает страницу инструмента в это наложение. Вредоносная страница содержит визуальный элемент, который заманивает пользователя на нажатие. Например, это может быть графический элемент, который выглядит как видеоплеер с кнопкой воспроизведения посередине. Пользователь нажимает на символ воспроизведения, но из-за наложения он нажимает на элемент пользовательского интерфейса на странице инструмента.
  2. Атакующий создает фрейм размером 1 × 1 пиксель, который перемещается вместе с курсором мыши. Из-за своего размера и расположения этот кадр полностью невидим (скрыт под кончиком символа курсора). Так что пользователь, щёлкая в любом месте, нажимает на всё, что загружено и расположено в этом кадре 1 × 1.
  3. Атакующий обрезает фрагменты и вставляет их на вредоносной странице. Так можно вставить iframe кнопки «Отправить» и обставить всё так, что она будет органично смотреться на вредоносной странице.

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

Можно использовать несколько методов защиты или даже их комбинацию.

    1. Политика безопасности контента: frame-ancestor

    Content-Security-Policy (CSP) — это заголовок ответа HTTP. Он был разработан в первую очередь для защиты от атак межсайтового скриптинга (XSS). В настоящее время он также включает в себя директиву, которая контролирует, как страница может быть встроена на разных сайтах. Достигается это путём указания родительских страниц. Элемент управления внедрением охватывает следующие теги: <frame>, <iframe>, <embed>, <object> и <applet>.

    1. X-Frame-Options

    X-Frame-Options (XFO) — это заголовок ответа HTTP. Формально, этот вариант – это предшественник CSP директивы. Он был представлен в 2008 году в Microsoft Internet Explorer 8. Однако никогда не был принят в качестве официального стандарта (несмотря на публикацию IETF RFC 7034 от 2013 года).

    1. Framebusting

    Фреймбрейстинг (также известный как фреймбрейкинг или фреймкиллинг) — это метод на стороне клиента. Не требует каких-либо изменений в заголовках HTTP. Всё, что вам нужно сделать, это изменить HTML-код веб-страницы. Это наиболее общий метод защиты от перехвата кликов и работает даже в старых браузерах (таких как IE6). Однако он не так надёжен, как параметры заголовка HTTP, и в некоторых случаях его можно обойти.

Как проверить, уязвим ли сайт?

Можно проверить вручную ресурсы на наличие лишних кодов и вставок. Или же купить сканер уязвимостей Acunetix, который автоматически проверяет наличие заголовка X-Frame-Options и директивы CSP frame-ancestors на веб-ресурсах.