Клікджекінг: невидима загроза в інтернеті
Спокуса натиснути на обіцянку безкоштовного iPhone може бути нестерпною. Однак варто пам’ятати, що такий клік може легко стати пасткою, наслідки якої можуть бути досить неприємними.
Клікджекінг, або “викрадення кліків”, також відоме як маніпуляція інтерфейсом користувача. Цей вид атаки полягає у маскуванні справжнього посилання за допомогою невидимого накладення. Таким чином, користувач, думаючи, що виконує одну дію, насправді робить щось зовсім інше.
Активні користувачі соціальних мереж цінують зручність постійного перебування онлайн. Зловмисники вміло використовують цю звичку, непомітно змушуючи користувачів ставити лайки або підписуватися на сторінки. Злочинець може розмістити привабливу кнопку, наприклад, з текстом “Безкоштовний iPhone – обмежена пропозиція”, на своєму сайті. А потім непомітно накласти на неї невидиме вікно з кнопкою “Подобається” або “Поділитися” із соціальної мережі.
За допомогою цього простого трюку користувачі Facebook можуть несвідомо долучатися до груп або фан-сторінок.
Описаний сценарій, звичайно, є відносно безневинним. Єдиним негативом для жертви є додавання до групи в соцмережі. Однак, за певних зусиль, ця ж техніка може бути використана для перевірки, чи користувач увійшов у свій банківський кабінет. Замість того, щоб поставити лайк або поділитися чимось у соцмережах, жертва може натиснути кнопку, яка перекаже кошти на рахунок зловмисника. Найгірше те, що відстежити шахрайство неможливо, адже користувач сам ввів дані до банківського кабінету та натиснув кнопку переказу.
Оскільки клікджекінг часто використовує методи соціальної інженерії, соціальні мережі стають ідеальним інструментом для таких атак.
Давайте розглянемо, як саме їх використовують.
Клікджекінг у Twitter
Приблизно десять років тому Twitter став жертвою масштабної атаки. Вона швидко поширювала повідомлення, що спонукали користувачів до переходу за посиланням, використовуючи природну людську цікавість.
Твіти з текстом “Не натискай” та посиланням швидко поширювалися тисячами акаунтів Twitter. Коли користувач переходив за посиланням, а потім натискав, на вигляд, нешкідливу кнопку на цільовій сторінці, з його акаунту автоматично відправлявся твіт. Цей твіт містив той самий текст “Не натискай” та шкідливе посилання.
Інженери Twitter досить швидко виправили цю атаку. Сама атака виявилася відносно нешкідливою, однак вона стала важливим сигналом про потенційні загрози, пов’язані з клікджекінгом у Twitter. Шкідливе посилання вело на веб-сторінку з прихованим iframe. В цьому кадрі була невидима кнопка, яка відправляла зловмисний твіт з акаунта жертви.
Клікджекінг у Facebook
Користувачі мобільних додатків Facebook стикаються з проблемою, яка дозволяє спамерам публікувати інтерактивний контент у їхніх стрічках без їхньої згоди. Цю помилку виявив спеціаліст з безпеки під час аналізу спам-кампанії. Він помітив, що багато з його контактів публікують посилання на сторінку зі смішними картинками. Перш ніж перейти до фотографій, користувачів просили натиснути на підтвердження повноліття.
Насправді, підтвердження було розташоване в невидимому кадрі.
Коли користувачі підтверджували свій вік, вони потрапляли на сторінку зі смішними картинками. Але в цей час, посилання вже було опубліковано на їхній сторінці Facebook. Це стало можливим через те, що компонент веб-браузера в додатку Facebook для Android не сумісний із заголовками параметрів фрейму (про це поговоримо нижче), що дозволяє використовувати шкідливі накладення фреймів.
Facebook не вважає це проблемою, оскільки вона не впливає на цілісність акаунтів користувачів. Тож, невідомо, чи буде це коли-небудь виправлено.
Клікджекінг у менших соціальних мережах
Слід пам’ятати, що проблема не обмежується лише Twitter та Facebook. Інші, менш популярні, соціальні мережі та блоги також мають уразливості, що дозволяють клікджекінг. Наприклад, LinkedIn мав недолік, який давав змогу зловмисникам змушувати користувачів публікувати та ділитися посиланнями від їхнього імені без їхнього відома. До того як це було виправлено, зловмисники могли завантажувати сторінку LinkedIn ShareArticle у прихований фрейм і накладати його на сторінки з, на перший погляд, безпечними та привабливими посиланнями або кнопками.
Ще один приклад – Tumblr, публічна платформа для ведення блогів. Цей сайт використовує JavaScript для захисту від клікджекінгу. Але цей метод захисту є неефективним, оскільки сторінки можуть бути ізольовані у фреймі HTML5, який блокує виконання коду JavaScript. Зловмисники можуть використати цю вразливість, поєднавши її з плагіном для браузера, що зберігає паролі. Обманом змушуючи користувача вводити невірний текст captcha, вони можуть непомітно відправити їхні паролі на сайт зловмисника.
Підробка міжсайтового запиту
Один із видів клікджекінгу називається підробкою міжсайтового запиту, або CSRF. За допомогою соціальної інженерії, кіберзлочинці націлюють атаки CSRF на користувачів, змушуючи їх виконувати небажані дії. Атака може бути запущена за допомогою посилання, надісланого в електронному листі або в чаті.
Атаки CSRF не мають на меті викрасти дані користувача, оскільки зловмисник не бачить відповіді на підроблений запит. Натомість, атаки спрямовані на запити, які змінюють стан системи, наприклад, зміну пароля або переказ коштів. Якщо жертва має права адміністратора, атака може скомпрометувати весь веб-додаток.
CSRF-атака може залишатися на уразливих веб-сайтах, особливо на тих, що мають так звані “збережені дефекти CSRF”. Це може бути досягнуто за допомогою вставки тегів IMG або IFRAME в поля для вводу, які потім відображатимуться на сторінці, наприклад, у коментарях або на сторінці результатів пошуку.
Запобігання атакам кадрування
Сучасні браузери можуть отримувати інструкції, чи дозволено певному ресурсу завантажуватися у фреймі. Також вони можуть дозволити завантаження ресурсу у фреймі лише тоді, коли запит надходить з того ж сайту, на якому перебуває користувач. Завдяки цьому, користувачів неможливо змусити натискати на невидимі фрейми з контентом з інших сайтів, та, відповідно, їхні кліки не будуть перехоплені.
Методи захисту на стороні клієнта називають блокуванням кадрів або знищенням кадрів. Хоча в деяких випадках вони є ефективними, їх також можна легко обійти. Саме тому методи на стороні клієнта не вважаються надійними. Замість блокування фреймів, експерти з безпеки рекомендують серверні методи, такі як X-Frame-Options (XFO) або новіші, наприклад, Content Security Policy.
X-Frame-Options – це заголовок відповіді, який веб-сервери включають на веб-сторінки, щоб повідомити браузеру, чи дозволено показувати їхній контент у фреймі.
Заголовок X-Frame-Option підтримує три значення:
- DENY – забороняє відображення сторінки у фреймі;
- SAMEORIGIN – дозволяє відображення сторінки у фреймі, тільки якщо вона залишається в тому самому домені;
- ALLOW-FROM URI – дозволяє відображення сторінки у фреймі, але тільки у визначеному URI (уніфікований ідентифікатор ресурсу), наприклад, лише в межах певної веб-сторінки.
До нових методів боротьби з клікджекінгом відноситься політика безпеки контенту (CSP) з директивою frame-ancestors. Цей варіант широко використовується при заміні XFO. Однією з головних переваг CSP в порівнянні з XFO є те, що він дозволяє веб-серверу авторизувати декілька доменів для відображення свого контенту. Однак, він ще не підтримується всіма браузерами.
Директива frame-ancestors CSP має три типи значень: ‘none’ – забороняє відображення контенту будь-яким доменом; ‘self’ – дозволяє тільки поточному сайту відображати контент у фреймі, або список URL-адрес з символами підстановки, наприклад ‘*.some site.com’, ‘https://www.example.com/index.html’, тощо, для надання дозволу створення фреймів тільки на сторінках зі списку.
Як захиститися від клікджекінгу
Залишатися в соціальній мережі під час веб-серфінгу дуже зручно, але потрібно бути дуже обережним зі своїми кліками. Варто також звертати увагу на сайти, які ви відвідуєте, оскільки не всі з них вживають необхідних заходів для захисту від клікджекінгу. Якщо ви маєте сумніви щодо веб-сайту, не варто натискати на підозрілі посилання, незалежно від того, наскільки спокусливими вони можуть здаватися.
Зверніть також увагу на версію вашого браузера. Навіть якщо сайт використовує всі необхідні заголовки для захисту від клікджекінгу, не всі браузери підтримують їх однаково. Переконайтеся, що ви використовуєте найновішу версію браузера, яка підтримує функції захисту від клікджекінгу.
Здоровий глузд – ефективний інструмент самозахисту від клікджекінгу. Коли ви бачите незвичайний контент, особливо посилання, опубліковане другом у будь-якій соціальній мережі, перш ніж щось робити, запитайте себе, чи цей контент характерний для вашого друга. Якщо ні, то попередьте друга про те, що він міг стати жертвою клікджекінгу.
І остання порада: якщо ви є впливовою особою або маєте велику кількість підписників чи друзів у соціальних мережах, вам потрібно бути особливо обережними та відповідальними в інтернеті. Адже, якщо ви станете жертвою клікджекінгу, атака може вплинути на багатьох людей.