«Клікджекінг» – він же «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 на веб-ресурсах.