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

Клікджекінг — це випадок проблеми прихованого відображення легітимного сайту або програми так що користувач впевнений що взаємодіє з іншим сайтом або програмою, що є проблемою зловживання зловмисником можливостями оформлення дизайну. The Confused Deputy rides again!, Tyler Close, October 2008

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

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

Термін «clickjacking» був введений Джеремією Гроссманом і Робертом Хансеном You don't know (click)jack Robert Lemos, October 2008 , утворюючи слів «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, де цей вид контрзаходу можна обійти «проектно», включивши цільову сторінку в елемент <IFRAME SECURITY=restricted>.

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

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