Clickjacking
Clickjacking (класифікується як атака UI redressing) — це зловмисна техніка, за допомогою якої хакер обманним шляхом змушує користувача натиснути щось, що фактично відрізняється від того, що бачить користувач на екрані, що може призводити до потенційного розкриття конфіденційної інформації або здіснення дій від імені жертви . [1] [2] [3] [4] [5]
Клікджекінг — це випадок проблеми прихованого відображення легітимного сайту або програми так що користувач впевнений що взаємодіє з іншим сайтом або програмою, що є проблемою зловживання зловмисником можливостями оформлення дизайну. [6]
У 2002 році було помічено, що можна завантажити одну програму над іншою програмою та зробити першу абсолютно прозорою так, щоб дії користувача в другій програмі впливали безпосередньо на першу, при цьому користувач цього абсолютно не помітить. Однак до 2008 року це ігнорувалося як головна проблема [7] .
У 2008 році Джеремія Гроссман і Роберт Хансен виявили, що Adobe Flash Player вразливий до атаки clickjacking, що дозволяє зловмиснику отримувати доступ до комп’ютера без відома користувача. [7]
Термін «clickjacking» був введений Джеремією Гроссманом і Робертом Хансеном [8] [9], утворюючи слів «click» і «jacking»(з англ. викрадення). [7]
Оскільки було виявлено більше атак подібного характеру, акцент у терміні «UI redressing» було змінено, щоб докладно описати категорію цих атак, а не просто як clickjacking. [7]
Одна з форм клікджекінгу використовує вразливі місця в програмах або веб-сторінках, щоб дозволити зловмиснику маніпулювати комп’ютером користувача, його данними або діями від імені користувача для власної вигоди.
Наприклад, сайт зловмисника який атакує жертву, використовуючи данну атаку, обманом змушує її виконувати небажані дії, натискаючи приховані посилання. На такому сайті зловмисники завантажують іншу сторінку поверх оригінальної сторінки абсолютно прозоро, щоб обманом змусити користувача виконати дії, результати яких не будуть такими, як очікує користувач. Нічого не підозрюючи користувачі думають, що вони натискають видимі кнопки, тоді як вони насправді виконують дії на прихованій сторінці. Користувач може бути авторизований на такій сторінці, отже, зловмисники можуть обманом змусити користувача виконати дії від свого імені, які користувач ніколи не збирався робити. Пізніше неможливо відстежити такі дії зловмисників, оскільки користувачі фактично самостійно виконували дії на сайті.
- Класичний: працює переважно через веб-браузер [7]
- Likejacking: використовує можливості соціальних мереж Facebook [10] [11]
- Вкладений: клікджекінг, створений для впливу на Google+ [12]
- Cursorjacking: маніпулює виглядом і розташуванням курсору [7]
- MouseJacking : використання вводу з клавіатури або миші через RF посилання [13]
- Безбраузерний: не використовує браузер [7]
- Cookiejacking : викрадає файли cookie з браузерів [7]
- Filejacking: здатність налаштувати уражений пристрій як файловий сервер [7]
- Атака на менеджер паролів: клікджекінг, який використовує вразливість у функції автозаповнення браузерів [7]
Класичний клікджекінг — це ситуація, коли зловмисник на власних веб-сторінках вбудовує абсолютно прозоро легітимний сайт через iframe, щоб маніпулювати діями, які виконує курсор користувача, що призводить до введення користувача в оману щодо того, що саме було натиснуто. [14]
Користувач може отримати електронний лист із посиланням на відео з новиною, але інша веб-сторінка, скажімо, сторінка продукту на Amazon, може бути «прихована» вгорі під кнопкою «PLAY». Користувач намагається запустити відео, але насправді «купує» продукт на Amazon. Хакер може використати лише один клік, тому він сподівається на те, що відвідувач увійшов на Amazon.com і ввімкнув замовлення в 1 клік.
Хоча технічна реалізація цих атак може бути складною через кросбраузерну несумісність, ряд інструментів, таких як BeEF або Metasploit Project, пропонують майже повністю автоматизовану експлуатацію клієнтів на вразливих веб-сайтах. Clickjacking може бути використанний з іншими веб-атаками, такі як XSS . [15] [16]
Лайкджекінг — це зловмисна техніка, за допомогою якої користувачі, які переглядають веб-сайт, змушують лайкнути сторінку Facebook або інші публікації або аккаунти в соціальних мережах, які вони навіть і не думали лайкати. [17] Термін «likejacking» походить із коментаря, який опублікувала Корі Баллоу в своїй статті How to "Like" Anything on the Web (Safely) [18], яка є однією з перших задокументованих публікацій, що пояснюють можливість зловмисної діяльності щодо лайків Facebook. [19]
Згідно зі статтею в IEEE Spectrum, рішення для likejacking було розроблено на одному з хакатонів Facebook. [20] Доступний букмарклет «Подобається», який уникає можливості використання цієї атаки з кнопкою «Подобається» у Facebook . [21]
Вкладений клікджекінг, порівняно з класичним клікджекінгом, працює шляхом вбудовування зловмисного веб-фрейму між двома фреймами оригінальної нешкідливої веб-сторінки : кадром сторінки з фреймом і тим, що відображається у верхньому вікні. Це працює через уразливість у HTTP-заголовку X-Frame-Options
, у якому, коли цей елемент має значення SAMEORIGIN
, веб-браузер перевіряє лише два вищезгадані рівні. Той факт, що додаткові кадри можуть бути додані між цими двома, залишаючись непоміченими, означає, що зловмисники можуть використовувати це для своєї вигоди.
У минулому з Google+ і несправною версією X-Frame-Options
зловмисники могли вставляти кадри за власним вибором, використовуючи вразливість у системі пошуку зображень Google . Між фреймами відображення зображень, які також були присутні в Google+, ці керовані зловмисниками кадри могли завантажуватися та не обмежуватися, що дозволяло зловмисникам вводити в оману кожного, хто потрапляв на сторінку відображення зображення. [12]
CursorJacking — це техніка зміни користувальницького інтерфейсу для зміни розташування курсора, яку сприймає користувач, відкрита в 2010 році Едді Борді, дослідником Vulnerability.fr [22], Маркус Німіц продемонстрував це за допомогою спеціальної піктограми курсору, а в 2012 році Маріо Хайдеріх продемонстрував приховування курсору. [23]
Jordi Chancel, дослідник Alternativ-Testing.fr, виявив уразливість CursorJacking, яка використовує код Flash, HTML і JavaScript у Mozilla Firefox у системах Mac OS X (виправлено у Firefox 30.0), яка може призвести до довільного виконання коду та шпигунства веб-камери. [24]
Другу вразливість CursorJacking знову виявив Джорді Ченсел у Mozilla Firefox у системах Mac OS X (виправлено у Firefox 37.0), знову використовуючи коди Flash, HTML і JavaScript, що також може призвести до шпигунства за допомогою веб-камери та запуску шкідливого аддона, дозволяючи запуск шкідливих програм на комп’ютері зараженого користувача. [25]
На відміну від інших методів клікджекінгу, які виправляють інтерфейс користувача, MouseJack — це вразливість інтерфейсу бездротового апаратного забезпечення, про яку вперше повідомив Марк Ньюлін з Bastille.net у 2016 році, яка дозволяє вводити дані з зовнішньої клавіатури в уразливі місця. [26] Logitech надала патчі мікропрограми, але інші виробники не відреагували на цю вразливість. [27]
У безбраузерному клікджекінгу зловмисники використовують уразливості в програмах, щоб відтворити в них класичний клікджекінг, не використовуючи при цьому веб-браузер.
Цей метод клікджекінгу в основному поширений на мобільних пристроях, як правило, на пристроях Android, особливо через спосіб роботи сповіщень . Оскільки сповіщення мають невелику затримку між моментом запиту сповіщення та моментом його фактичного відображення на екрані, зловмисники можуть використовувати цей проміжок, щоб створити фіктивну кнопку, яка прихована під сповіщенням і яку все ще можна натиснути. . [7]
CookieJacking — це форма клікджекінгу, за якої файли cookie викрадаються з веб-переглядачів жертви. Це робиться шляхом обману змусити користувача перетягнути об’єкт, який здається нешкідливим, але насправді змушує користувача вибрати весь вміст цільового файлу cookie. Звідти зловмисник може отримати файл cookie та всі дані, якими він володіє. [28]
У FileJacking зловмисники використовують можливості веб-браузера для навігації комп’ютером і доступу до комп’ютерних файлів, щоб отримати особисті дані. Це робиться шляхом обману змусити користувача встановити активний файловий сервер (через вікно вибору файлів і папок, яке використовують браузери). Завдяки цьому зловмисники тепер можуть отримати доступ і отримати файли з комп’ютерів своїх жертв. [29]
Дослідник з Університету Карнегі-Меллона 2014 року показав, що хоча браузери відмовляються від автозаповнення, якщо протокол на поточній сторінці входу відрізняється від протоколу на момент збереження пароля, деякі менеджери паролів ненадійно заповнюватимуть паролі для версії http https-збережених паролів. Більшість адміністраторів не захищали від атак на основі iFrame та перенаправлення та розкривали додаткові паролі, коли використовувалася синхронізація паролів між кількома пристроями. [30]
Захист від клікджекінгу (включаючи лайкджекінг) можна додати до настільних і мобільних [31] версій Mozilla Firefox шляхом встановлення надбудови NoScript : її функція ClearClick, випущена 8 жовтня 2008 року, не дозволяє користувачам клацати невидимі або «перероблені» елементи сторінки вбудованих документів або аплетів. [32] Відповідно до «Посібника з безпеки веб-переглядача» Google від 2008 року, ClearClick від NoScript є «вільно доступним продуктом, який пропонує розумний ступінь захисту» від Clickjacking. [33] У NoScript 2.2.8 RC1 додано захист від новішої атаки перехоплення курсору. [23]
Розширення браузера NoClickjack додає клієнтський захист від клацань для користувачів Google Chrome, Mozilla Firefox, Opera та Microsoft Edge, не перешкоджаючи роботі законних iFrames. NoClickjack базується на технології, розробленій для GuardedID. Доповнення NoClickjack є безкоштовним.
GuardedID (комерційний продукт) включає захист від кліків на стороні клієнта для користувачів Internet Explorer, не втручаючись у роботу законних iFrames. [34] Захист GuardedID clickjack змушує всі кадри стати видимими. Охороняються ID команди[прояснити] з надбудовою NoClickjack, щоб додати захист для Google Chrome, Mozilla Firefox, Opera та Microsoft Edge .
Gazelle — це захищений веб-браузер проекту Microsoft Research на базі IE, який використовує модель безпеки, схожу на ОС, і має власний обмежений захист від атаки clickjcking. [35] У Gazelle вікно іншого походження може відображати динамічний вміст на екрані іншого вікна, лише якщо вміст, який воно малює, є непрозорим.
API Intersection Observer v2 [36] представляє концепцію відстеження фактичної «видимості» цільового елемента, як це визначила б людина. [37] Це дозволяє віджету в рамці виявляти, коли він закритий. Ця функція ввімкнена за замовчуванням, починаючи з Google Chrome 74, випущеного в квітні 2019 року. [38] На даний момент Chrome є єдиним браузером, у якому реалізовано API.
Власники веб-сайтів можуть захистити своїх користувачів від зміни користувальницького інтерфейсу (зловмисників на основі фреймів) на стороні сервера, додавши фрагмент JavaScript-знищувача фреймів на ті сторінки, які вони не хочуть включати у фрейми з різних джерел. [33]
Такий захист на основі JavaScript не завжди надійний. Це особливо вірно в Internet Explorer, [33] де цей вид контрзаходу можна обійти «проектно», включивши цільову сторінку в елемент <IFRAME SECURITY=restricted>. [39]
У 2009 році в Internet Explorer 8 був представлений новий HTTP-заголовок X-Frame-Options
, який пропонував частковий захист від клікджекінгу [40] [41] і був прийнятий іншими браузерами ( Safari, [42] Firefox, Chrome, [43] і Opera [44] ) незабаром після цього.
Заголовок, якщо його встановив власник веб-сайту, оголошує свою бажану політику кадрування:
- DENY - повна заборона на відображення сайту в iframe
- ALLOW-FROM origin - дозвіл на відображення сайту в iframe тільки на вказаних сайтах
- SAMEORIGIN - дозвіл на відображення сайту в iframe на тому ж сайті
Крім того, деякі рекламні сайти повертають нестандартне значення ALLOWALL
з наміром дозволити розміщувати свій вміст на будь-якій сторінці (еквівалентно невстановленню X-Frame-Options взагалі).
У 2013 році заголовок X-Frame-Options був офіційно опублікований як RFC 7034 [45], але не є стандартом Інтернету. Документ надається виключно в ознайомлювальних цілях. Рекомендація W3C щодо політики безпеки вмісту рівня 2 надає альтернативну директиву безпеки, frame-ancestors, яка має на меті застаріти заголовок X-Frame-Options. [46]
Такий заголовок безпеки, як X-Frame-Options, не захистить користувачів від атак клікджекінгів, які не використовують фрейм. [47]
Директива frame-ancestors
політики безпеки вмісту (введена у версії 1.1) може дозволяти або забороняти вбудовування вмісту потенційно ворожими сторінками за допомогою iframe, об’єкта тощо. Ця директива застаріла директиву X-Frame-Options. Якщо сторінка обслуговується з обома заголовками, веб-переглядач має віддати перевагу політиці предків кадрів. [48] — хоча деякі популярні браузери не підкоряються цій вимозі. [49]
Приклад політики предків кадрів:
# Заборонити вбудовування. Усі фрейми iframe тощо будуть порожніми або міститимуть сторінку помилки певного браузера. Content-Security-Policy: frame-ancestors 'none'
# Дозволити вставляти лише власний вміст . Content-Security-Policy: frame-ancestors 'self'
# Дозволити певним джерелам вставляти цей вміст Content-Security-Policy: frame-ancestors www.example.com www.wikipedia.org
- ↑ Robert McMillan (17 вересня 2008). At Adobe's request, hackers nix 'clickjacking' talk. PC World. Архів оригіналу за 17 липня 2015. Процитовано 8 жовтня 2008.
- ↑ Megha Dhawan (29 вересня 2008). Beware, clickjackers on the prowl. India Times. Архів оригіналу за 24 липня 2009. Процитовано 8 жовтня 2008.
- ↑ Dan Goodin (7 жовтня 2008). Net game turns PC into undercover surveillance zombie. The Register. Процитовано 8 жовтня 2008.
- ↑ Fredrick Lane (8 жовтня 2008). Web Surfers Face Dangerous New Threat: 'Clickjacking'. newsfactor.com. Архів оригіналу за 13 жовтня 2008. Процитовано 8 жовтня 2008.
- ↑ Shahriar, Hossain; Devendran, Vamshee Krishna (4 липня 2014). Classification of Clickjacking Attacks and Detection Techniques. Information Security Journal: A Global Perspective (англ.). 23 (4–6): 137—147. doi:10.1080/19393555.2014.931489. ISSN 1939-3555.
- ↑ The Confused Deputy rides again!, Tyler Close, October 2008
- ↑ а б в г д е ж и к л м Niemietz, Marcus (2012). UI Redressing Attacks on Android Devices (PDF). Black Hat.
- ↑ You don't know (click)jack Robert Lemos, October 2008
- ↑ JAstine, Berry. Facebook Help Number 1-888-996-3777. Архів оригіналу за 2 червня 2016. Процитовано 7 червня 2016.
- ↑ Viral clickjacking 'Like' worm hits Facebook users. Naked Security (амер.). 31 травня 2010. Процитовано 23 жовтня 2018.
- ↑ Facebook Worm – "Likejacking". Naked Security (амер.). 31 травня 2010. Процитовано 23 жовтня 2018.
- ↑ а б Lekies, Sebastian (2012). On the fragility and limitations of current Browser-provided Clickjacking protection schemes (PDF). USENIX.
- ↑ Wireless Mouse Hacks & Network Security Protection. MOUSEJACK (англ.). Процитовано 3 січня 2020.
- ↑ Sahani, Rishabh; Randhawa, Sukhchandan (1 грудня 2021). Clickjacking: Beware of Clicking. Wireless Personal Communications (англ.). 121 (4): 2845—2855. doi:10.1007/s11277-021-08852-y. ISSN 0929-6212.
- ↑ The Clickjacking meets XSS: a state of art. Exploit DB. 26 грудня 2008. Процитовано 31 березня 2015.
- ↑ Krzysztof Kotowicz. Exploiting the unexploitable XSS with clickjacking. Процитовано 31 березня 2015.
- ↑ Cohen, Richard (31 травня 2010). Facebook Work - "Likejacking". Sophos. Архів оригіналу за 4 червня 2010. Процитовано 5 червня 2010.
- ↑ Ballou, Corey (2 червня 2010). "Likejacking" Term Catches On. jqueryin.com. Архів оригіналу за 5 червня 2010. Процитовано 8 червня 2010.
- ↑ Perez, Sarah (2 червня 2010). "Likejacking" Takes Off on Facebook. ReadWriteWeb. Архів оригіналу за 16 серпня 2011. Процитовано 5 червня 2010.
- ↑ Kushner, David (June 2011). Facebook Philosophy: Move Fast and Break Things. spectrum.ieee.org. Процитовано 15 липня 2011.
- ↑ Perez, Sarah (23 квітня 2010). How to "Like" Anything on the Web (Safely). ReadWriteWeb. Процитовано 24 серпня 2011.
- ↑ Podlipensky, Paul. Cursor Spoofing and Cursorjacking. Podlipensky.com. Paul Podlipensky. Архів оригіналу за 22 листопада 2017. Процитовано 22 листопада 2017.
- ↑ а б Krzysztof Kotowicz (18 січня 2012). Cursorjacking Again. Процитовано 31 січня 2012.
- ↑ Mozilla Foundation Security Advisory 2014-50. Mozilla. Процитовано 17 серпня 2014.
- ↑ Mozilla Foundation Security Advisory 2015-35. Mozilla. Процитовано 25 жовтня 2015.
- ↑ What is MouseJack!. Bastille (амер.). Процитовано 3 січня 2020.
- ↑ CERT VU#981271 Multiple wireless keyboard/mouse devices use an unsafe proprietary wireless protocol. www.kb.cert.org. Процитовано 3 січня 2020.
- ↑ Valotta, Rosario (2011). Cookiejacking. tentacoloViola - sites.google.com. Архів оригіналу за 7 серпня 2019. Процитовано 23 жовтня 2018.
- ↑ Filejacking: How to make a file server from your browser (with HTML5 of course). blog.kotowicz.net. Процитовано 23 жовтня 2018.
- ↑ Password Managers: Attacks and Defenses (PDF). Процитовано 26 липня 2015.
- ↑ Giorgio Maone (24 червня 2011). NoScript Anywhere. hackademix.net. Процитовано 30 червня 2011.
- ↑ Giorgio Maone (8 жовтня 2008). Hello ClearClick, Goodbye Clickjacking. hackademix.net. Процитовано 27 жовтня 2008.
- ↑ а б в Michal Zalevski (10 грудня 2008). Browser Security Handbook, Part 2, UI Redressing. Google Inc. Процитовано 27 жовтня 2008.
- ↑ Robert Hansen (4 лютого 2009). Clickjacking and GuardedID ha.ckers.org web application security lab. Архів оригіналу за 11 липня 2012. Процитовано 30 листопада 2011.
- ↑ Wang, Helen J.; Grier, Chris; Moschchuk, Alexander; King, Samuel T.; Choudhury, Piali; Venter, Herman (August 2009). The Multi-Principal OS Construction of the Gazelle Web Browser (PDF). 18th Usenix Security Symposium, Montreal, Canada. Процитовано 26 січня 2010.
- ↑ Intersection Observer - W3C Editor's Draft.
- ↑ Trust is Good, Observation is Better.
- ↑ De-anonymization via Clickjacking in 2019.
- ↑ Giorgio Maone (27 жовтня 2008). Hey IE8, I Can Has Some Clickjacking Protection. hackademix.net. Процитовано 27 жовтня 2008.
- ↑ Eric Lawrence (27 січня 2009). IE8 Security Part VII: ClickJacking Defenses. Процитовано 30 грудня 2010.
- ↑ Eric Lawrence (30 березня 2010). Combating ClickJacking With X-Frame-Options. Процитовано 30 грудня 2010.
- ↑ Ryan Naraine (8 червня 2009). Apple Safari jumbo patch: 50+ vulnerabilities fixed. Архів оригіналу за 12 червня 2009. Процитовано 10 червня 2009.
- ↑ Adam Barth (26 січня 2010). Security in Depth: New Security Features. Процитовано 26 січня 2010.
- ↑ Web specifications support in Opera Presto 2.6. 12 жовтня 2010. Архів оригіналу за 14 січня 2012. Процитовано 22 січня 2012.
- ↑ HTTP Header Field X-Frame-Options. IETF. 2013.
- ↑ Content Security Policy Level 2. W3C. 2016.
- ↑ lcamtuf's blog: X-Frame-Options, or solving the wrong problem.
- ↑ Content Security Policy Level 2. w3.org. 2 липня 2014. Процитовано 29 січня 2015.
- ↑ Clickjacking Defense Cheat Sheet. Процитовано 15 січня 2016.