Clickjacking

1. Введение:

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

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

2. Защитные техники:

Эффективных способов защиты от кликджекинга на стороне клиента не существует. Поэтому необходимо правильно настроить серверную часть, чтобы наш сайт НИКОГДА не стал "приманкой" для подобных атак.

2.1. Реализация X-Frame-Options или CSP(frame-ancestors):

Заголовок HTTP-ответа X-Frame-Options может использоваться для указания того, разрешено ли браузеру отображать страницу в <фрейме> или . Сайты могут использовать этот параметр для предотвращения атак Clickjacking, гарантируя, что их содержимое не будет встраиваться в другие сайты. Установите заголовок X-Frame-Options для всех ответов, содержащих HTML-контент. Вот возможные значения опций:

  • DENY: запрещает любому домену обрамлять содержимое. Настройка "DENY" рекомендуется, если только не выявлена особая необходимость в обрамлении.

  • SAMEORIGIN: разрешает обрамлять содержимое только текущего сайта.

  • ALLOW-FROM URI: разрешает указанному 'URI' обрамлять эту страницу.

2.2. Использование политики безопасности содержимого (CSP):

Политика безопасности содержимого (CSP) - это механизм обнаружения и предотвращения, который обеспечивает защиту от таких атак, как XSS и clickjacking. CSP обычно реализуется на веб-сервере в виде заголовка вида: Content-Security-Policy: policy где policy - это строка директив политики, разделенных точками с запятой. CSP предоставляет браузеру клиента информацию о разрешенных источниках веб-ресурсов, которую браузер может применить для обнаружения и перехвата вредоносного поведения.

Рекомендуемая защита от кликджекинга - это включение frame-ancestors в политику безопасности содержимого приложения. Директива frame-ancestors 'none' по своему поведению аналогична директиве X-Frame-Options deny директива. Директива frame-ancestors 'self' в целом эквивалентна директиве X-Frame-Options sameorigin в том смысле, что они указывают на домен self. Следующий CSP ведет белый список фреймов только для того же домена:Content-Security-Policy: frame-ancestors 'self';

В качестве альтернативы фрейминг может быть ограничен именованными сайтами/доменами: Content-Security-Policy: frame-ancestors normal-website.com;

3. Выводы:

Заголовки ответов X-Frame-Options иContent-Security-Policy определяют, разрешено ли браузеру встраивать или отображать страницу в <inframe> элементе . Поскольку эта тема больше связана с настройкой сервера, а не с самим уязвимым кодом, вот ссылка на более "интерактивный" ресурс, где вы можете узнать, как обычно ведет себя Clickjacking.

Last updated