Почему атакующему стоит выполнить атаку clickjacking, если он может сымитировать клик с помощью JavaScript?

Вопрос или проблема

Почему злоумышленник выбирает проводить атаку clickjacking? Если он создаст вредоносный сайт, он может просто выполнить действие автоматически, ему не нужно “обманывать” пользователя, чтобы тот кликнул на скрытый iframe (то есть clickjacking).

Так почему же?

Злоумышленник, конечно, может имитировать клики на своем сайте, но он хочет инициировать клики на другом сайте (например, на paypal.com). Существует только два варианта:

  • Если целевой сайт уязвим к межсайтовому скриптингу, то злоумышленник может внедрить JavaScript-код и действительно инициировать клики на этом сайте от имени пользователя.
  • Если цель уязвима к clickjacking (то есть ее можно поместить в iframe), тогда злоумышленник может попробовать заставить жертву кликать на элементы интерфейса внутри фреймового сайта.

Обратите внимание, что невозможно имитировать клики внутри другого сайта в iframe из-за политики одинакового происхождения. Целевой сайт в значительной степени недоступен для JavaScript, поэтому злоумышленник не может выбрать элементы и инициировать клик.

Хотя в другом ответе объясняется что невозможно провести clickjacking на другом сайте из iframe, я хотел бы затронуть как политика одинакового происхождения (SOP) на самом деле предотвращает это.

Как сказано в объяснении SOP от Port Swigger

Происхождение состоит из схемы URI, домена и номера порта.

SOP предотвращает скриптам, работающим на одном происхождении (https://attacker.com), доступ к JS-свойствам или их изменение на другом происхождении (https://paypal.com).

Что предотвращает clickjacking.

Хотя iframe может отображать сайт PayPal, JS-код на сайте злоумышленника не может инициировать действия, такие как нажатие кнопок внутри iframe PayPal, благодаря SOP.

Ответ или решение

Атакующий может задуматься, почему следует использовать атаку кликджекинга, когда программноэму click (нажатие) можно имитировать с помощью JavaScript. Давайте рассмотрим основные причины и ограничения, связанные с этой проблемой.

Первым делом, необходимо понимать, что атака кликджекинга отношения к свойству "одного происхождения" (same-origin policy, SOP). Это правило безопасности веба ограничивает доступ скриптов, работающих на одном источнике, к ресурсам другого источника. Например, JavaScript, выполняющийся на сайте злоумышленника (https://attacker.com), не сможет получить доступ к элементам или свойствам сайта, такого как PayPal (https://paypal.com). Таким образом, если цель атаки заключается в взаимодействии с элементами другого веб-сайта (например, нажатием кнопок), злоумышленник не сможет сделать это с помощью JavaScript.

Почему же тогда злоумышленник должен применять кликджекинг? Вот основные причины:

  1. Непосредственное взаимодействие пользователя: Кликджекинг эксплуатирует взаимодействие между жертвой и интерфейсом легитимного сайта. Злоумышленник может создать легитимный виджет, чтобы максимально эффективно обмануть пользователя, заставив его кликнуть на скрытые элементы, которые ведут к нежелательным действиям, например, переводу денег.

  2. Необходимость во внешних действиях: Если веб-приложение не подвержено уязвимостям кросс-доменного скриптинга (XSS), атака кликджекинга остается единственным способом для воздействия на целевой сайт. Например, PayPal или банковский сайт. В таких случаях злоумышленнику необходимо заставить конечного пользователя самостоятельно взаимодействовать с интерфейсом.

  3. Трудности в обнаружении: Кликджекинг может быть более труднодоступной для обнаружения атакой. В отличие от прямой интеграции JavaScript, который можно отследить в консоли разработчика браузера, пользователь может не заметить скрытые фреймы или манипуляции с интерфейсом. Это делает кликджекинг более опасным, поскольку жертва, скорее всего, не осознает, что совершает нежелательные действия.

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

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

Оцените материал
Добавить комментарий

Капча загружается...