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