 Під час атаки клікджекінга користувачеві надається фальшивий інтерфейс, де його дії застосовуються до прихованого стороннього сайту
Clickjacking (класифікується як атака UI redressing) — це зловмисна техніка, за допомогою якої хакер обманним шляхом змушує користувача натиснути щось, що фактично відрізняється від того, що бачить користувач на екрані, що може призводити до потенційного розкриття конфіденційної інформації або здіснення дій від імені жертви .     

Клікджекінг — це випадок проблеми прихованого відображення легітимного сайту або программи так що користувач впевнений що взаємодіє з іншим сайтом або програмою, що є проблемою зловживання зловмисником можливостями оформлення дизайну. 

Історія
У 2002 році було помічено, що можна завантажити одну програму над іншою програмою та зробити першу абсолютно прозорою так, щоб дії користувача в другій програмі впливали безпосередньо на першу, при цьому користувач цього абсолютно не помітить. Однак до 2008 року це ігнорувалося як головна проблема  .

У 2008 році Джеремія Гроссман і Роберт Хансен виявили, що Adobe Flash Player вразливий до атаки clickjacking, що дозволяє зловмиснику отримувати доступ до комп’ютера без відома користувача. 

Термін «clickjacking» був введений Джеремією Гроссманом і Робертом Хансеном  , утворюючи слів «click» і «jacking»(з англ. викрадення). 

Оскільки було виявлено більше атак подібного характеру, акцент у терміні «UI redressing» було змінено, щоб докладно описати категорію цих атак, а не просто як clickjacking. 

Опис
Одна з форм клікджекінгу використовує вразливі місця в програмах або веб-сторінках, щоб дозволити зловмиснику маніпулювати комп’ютером користувача, його данними або діями від імені користувача для власної вигоди.

Наприклад, сайт зловмисника який атакує жертву, використовуючи данну атаку, обманом змушує її виконувати небажані дії, натискаючи приховані посилання. На такому сайті зловмисники завантажують іншу сторінку поверх оригінальної сторінки абсолютно прозоро, щоб обманом змусити користувача виконати дії, результати яких не будуть такими, як очікує користувач. Нічого не підозрюючи користувачі думають, що вони натискають видимі кнопки, тоді як вони насправді виконують дії на прихованій сторінці. Користувач може бути авторизований на такій сторінці, отже, зловмисники можуть обманом змусити користувача виконати дії від свого імені, які користувач ніколи не збирався робити. Пізніше неможливо відстежити такі дії зловмисників, оскільки користувачі фактично самостійно виконували дії на сайті.

Категорії клікджекінгу

* Класичний: працює переважно через веб-браузер 
* Likejacking: використовує можливості соціальних мереж Facebook  
* Вкладений: клікджекінг, створений для впливу на Google+ 
* Cursorjacking: маніпулює виглядом і розташуванням курсору 
* MouseJacking : використання вводу з клавіатури або миші через RF посилання 
* Безбраузерний: не використовує браузер 
* Cookiejacking : викрадає файли cookie з браузерів 
* Filejacking: здатність налаштувати уражений пристрій як файловий сервер 
* Атака на менеджер паролів: клікджекінг, який використовує вразливість у функції автозаповнення браузерів 

Класичний
Класичний клікджекінг — це ситуація, коли зловмисник на власних веб-сторінках вбудовує абсолютно прозоро легітимний сайт через iframe, щоб маніпулювати діями, які виконує курсор користувача, що призводить до введення користувача в оману щодо того, що саме було натиснуто. 

Користувач може отримати електронний лист із посиланням на відео з новиною, але інша веб-сторінка, скажімо, сторінка продукту на Amazon, може бути «прихована» вгорі під кнопкою «PLAY». Користувач намагається запустити відео, але насправді «купує» продукт на Amazon. Хакер може використати лише один клік, тому він сподівається на те, що відвідувач увійшов на Amazon.com і ввімкнув замовлення в 1 клік.

Хоча технічна реалізація цих атак може бути складною через кросбраузерну несумісність, ряд інструментів, таких як BeEF або Metasploit Project, пропонують майже повністю автоматизовану експлуатацію клієнтів на вразливих веб-сайтах. Clickjacking може бути використанний з іншими веб-атаками, такі як XSS .  

Likejacking
Лайкджекінг — це зловмисна техніка, за допомогою якої користувачі, які переглядають веб-сайт, змушують лайкнути сторінку Facebook або інші публікації або аккаунти в соціальних мережах, які вони навіть і не думали лайкати.  Термін «likejacking» походить із коментаря, який опублікувала Корі Баллоу в своїй статті How to "Like" Anything on the Web (Safely) , яка є однією з перших задокументованих публікацій, що пояснюють можливість зловмисної діяльності щодо лайків Facebook. 

Згідно зі статтею в IEEE Spectrum, рішення для likejacking було розроблено на одному з хакатонів Facebook.  Доступний букмарклет «Подобається», який уникає можливості використання цієї атаки з кнопкою «Подобається» у Facebook . 

Вкладений clickjacking
Вкладений клікджекінг, порівняно з класичним клікджекінгом, працює шляхом вбудовування зловмисного веб-фрейму між двома фреймами оригінальної нешкідливої веб-сторінки : кадром сторінки з фреймом і тим, що відображається у верхньому вікні. Це працює через уразливість у HTTP-заголовку X-Frame-Options, у якому, коли цей елемент має значення SAMEORIGIN, веб-браузер перевіряє лише два вищезгадані рівні. Той факт, що додаткові кадри можуть бути додані між цими двома, залишаючись непоміченими, означає, що зловмисники можуть використовувати це для своєї вигоди.

У минулому з Google+ і несправною версією X-Frame-Options зловмисники могли вставляти кадри за власним вибором, використовуючи вразливість у системі пошуку зображень Google . Між фреймами відображення зображень, які також були присутні в Google+, ці керовані зловмисниками кадри могли завантажуватися та не обмежуватися, що дозволяло зловмисникам вводити в оману кожного, хто потрапляв на сторінку відображення зображення. 

Cursorjacking
CursorJacking — це техніка зміни користувальницького інтерфейсу для зміни розташування курсора, яку сприймає користувач, відкрита в 2010 році Едді Борді, дослідником Vulnerability.fr , Маркус Німіц продемонстрував це за допомогою спеціальної піктограми курсору, а в 2012 році Маріо Хайдеріх продемонстрував приховування курсору. 

Jordi Chancel, дослідник Alternativ-Testing.fr, виявив уразливість CursorJacking, яка використовує код Flash, HTML і JavaScript у Mozilla Firefox у системах Mac OS X (виправлено у Firefox 30.0), яка може призвести до довільного виконання коду та шпигунства веб-камери. 

Другу вразливість CursorJacking знову виявив Джорді Ченсел у Mozilla Firefox у системах Mac OS X (виправлено у Firefox 37.0), знову використовуючи коди Flash, HTML і JavaScript, що також може призвести до шпигунства за допомогою веб-камери та запуску шкідливого аддона, дозволяючи запуск шкідливих програм на комп’ютері зараженого користувача. 

MouseJack
На відміну від інших методів клікджекінгу, які виправляють інтерфейс користувача, MouseJack — це вразливість інтерфейсу бездротового апаратного забезпечення, про яку вперше повідомив Марк Ньюлін з Bastille.net у 2016 році, яка дозволяє вводити дані з зовнішньої клавіатури в уразливі місця.  Logitech надала патчі мікропрограми, але інші виробники не відреагували на цю вразливість. 

Browserless
У безбраузерному клікджекінгу зловмисники використовують уразливості в програмах, щоб відтворити в них класичний клікджекінг, не використовуючи при цьому веб-браузер.

Цей метод клікджекінгу в основному поширений на мобільних пристроях, як правило, на пристроях Android, особливо через спосіб роботи сповіщень . Оскільки сповіщення мають невелику затримку між моментом запиту сповіщення та моментом його фактичного відображення на екрані, зловмисники можуть використовувати цей проміжок, щоб створити фіктивну кнопку, яка прихована під сповіщенням і яку все ще можна натиснути. . 

CookieJacking
CookieJacking — це форма клікджекінгу, за якої файли cookie викрадаються з веб-переглядачів жертви. Це робиться шляхом обману змусити користувача перетягнути об’єкт, який здається нешкідливим, але насправді змушує користувача вибрати весь вміст цільового файлу cookie. Звідти зловмисник може отримати файл cookie та всі дані, якими він володіє.  

FileJacking
У FileJacking зловмисники використовують можливості веб-браузера для навігації комп’ютером і доступу до комп’ютерних файлів, щоб отримати особисті дані. Це робиться шляхом обману змусити користувача встановити активний файловий сервер (через вікно вибору файлів і папок, яке використовують браузери). Завдяки цьому зловмисники тепер можуть отримати доступ і отримати файли з комп’ютерів своїх жертв. 

Атака менеджера паролів
Дослідник з Університету Карнегі-Меллона 2014 року показав, що хоча браузери відмовляються від автозаповнення, якщо протокол на поточній сторінці входу відрізняється від протоколу на момент збереження пароля, деякі менеджери паролів ненадійно заповнюватимуть паролі для версії http https-збережених паролів. Більшість адміністраторів не захищали від атак на основі iFrame та перенаправлення та розкривали додаткові паролі, коли використовувалася синхронізація паролів між кількома пристроями. 

Профілактика

На стороні клієнта

NoScript
Захист від клікджекінгу (включаючи лайкджекінг) можна додати до настільних і мобільних  версій Mozilla Firefox шляхом встановлення надбудови NoScript : її функція ClearClick, випущена 8 жовтня 2008 року, не дозволяє користувачам клацати невидимі або «перероблені» елементи сторінки вбудованих документів або аплетів.  Відповідно до «Посібника з безпеки веб-переглядача» Google від 2008 року, ClearClick від NoScript є «вільно доступним продуктом, який пропонує розумний ступінь захисту» від Clickjacking.  У NoScript 2.2.8 RC1 додано захист від новішої атаки перехоплення курсору. 

NoClickjack
Розширення браузера NoClickjack додає клієнтський захист від клацань для користувачів Google Chrome, Mozilla Firefox, Opera та Microsoft Edge, не перешкоджаючи роботі законних iFrames. NoClickjack базується на технології, розробленій для GuardedID. Доповнення NoClickjack є безкоштовним.

GuardedID
GuardedID (комерційний продукт) включає захист від кліків на стороні клієнта для користувачів Internet Explorer, не втручаючись у роботу законних iFrames.  Захист GuardedID clickjack змушує всі кадри стати видимими. Охороняються ID команди з надбудовою NoClickjack, щоб додати захист для Google Chrome, Mozilla Firefox, Opera та Microsoft Edge .

Gazelle
Gazelle — це захищений веб-браузер проекту Microsoft Research на базі IE, який використовує модель безпеки, схожу на ОС, і має власний обмежений захист від атаки clickjcking.  У Gazelle вікно іншого походження може відображати динамічний вміст на екрані іншого вікна, лише якщо вміст, який воно малює, є непрозорим.

Intersection Observer v2
API Intersection Observer v2  представляє концепцію відстеження фактичної «видимості» цільового елемента, як це визначила б людина.  Це дозволяє віджету в рамці виявляти, коли він закритий. Ця функція ввімкнена за замовчуванням, починаючи з Google Chrome 74, випущеного в квітні 2019 року.  На даний момент Chrome є єдиним браузером, у якому реалізовано API.

На стороні сервера

Framekiller
Власники веб-сайтів можуть захистити своїх користувачів від зміни користувальницького інтерфейсу (зловмисників на основі фреймів) на стороні сервера, додавши фрагмент JavaScript-знищувача фреймів на ті сторінки, які вони не хочуть включати у фрейми з різних джерел. 

Такий захист на основі JavaScript не завжди надійний. Це особливо вірно в Internet Explorer,  де цей вид контрзаходу можна обійти «проектно», включивши цільову сторінку в елемент . 

X-Frame-Options
У 2009 році в Internet Explorer 8 був представлений новий HTTP-заголовок X-Frame-Options, який пропонував частковий захист від клікджекінгу   і був прийнятий іншими браузерами ( Safari,  Firefox,  Chrome,  і Opera  ) незабаром після цього.

Заголовок, якщо його встановив власник веб-сайту, оголошує свою бажану політику кадрування:

* DENY - повна заборона на відображення сайту в iframe
* ALLOW-FROM origin - дозвіл на відображення сайту в iframe тільки на вказаних сайтах
* SAMEORIGIN  - дозвіл на відображення сайту в iframe на тому ж сайті

Крім того, деякі рекламні сайти повертають нестандартне значення ALLOWALL з наміром дозволити розміщувати свій вміст на будь-якій сторінці (еквівалентно невстановленню X-Frame-Options взагалі).

У 2013 році заголовок X-Frame-Options був офіційно опублікований як RFC 7034 , але не є стандартом Інтернету. Документ надається виключно в ознайомлювальних цілях. Рекомендація W3C щодо політики безпеки вмісту рівня 2 надає альтернативну директиву безпеки, frame-ancestors, яка має на меті застаріти заголовок X-Frame-Options. 

Такий заголовок безпеки, як X-Frame-Options, не захистить користувачів від атак клікджекінгів, які не використовують фрейм. 

Content Security Policy
Директива frame-ancestors політики безпеки вмісту (введена у версії 1.1) може дозволяти або забороняти вбудовування вмісту потенційно ворожими сторінками за допомогою iframe, об’єкта тощо. Ця директива застаріла директиву X-Frame-Options. Якщо сторінка обслуговується з обома заголовками, веб-переглядач має віддати перевагу політиці предків кадрів.  — хоча деякі популярні браузери не підкоряються цій вимозі. 

Приклад політики предків кадрів:
 # Заборонити вбудовування. Усі фрейми iframe тощо будуть порожніми або міститимуть сторінку помилки певного браузера.
 Content-Security-Policy: frame-ancestors 'none'

 # Дозволити вставляти лише власний вміст .
 Content-Security-Policy: frame-ancestors 'self'

 # Дозволити певним джерелам вставляти цей вміст
 Content-Security-Policy: frame-ancestors www.example.com www.wikipedia.org

Дивіться також

* Фішинг
* Вірусологія
* XSS
* HTML

Джерела





