Клікджекінг
Справжній клік по кнопці, якої сторінка вам не показала.
Що таке Клікджекінг?
Клікджекінг не краде клік, а позичає його. Зловмисник вбудовує вашу сторінку в прозорий iframe, розміщує безневинну на вигляд кнопку над вашою кнопкою схвалення, і клік жертви проходить просто крізь неї до справжньої. І клік, і сесія справжні, тож сервер не може відрізнити підміну. Ви створите накладку й схвалите платіж, якого ніхто не хотів, а потім виправите обробник заголовком Content-Security-Policy: frame-ancestors 'none' , залишивши X-Frame-Options: DENY як запасний варіант для старих браузерів.
Що ви дізнаєтесь у Клікджекінг
- Розпізнавайте клікджекінг як атаку з підміною інтерфейсу: клік справжній, користувач зробив його добровільно, але те, що він бачив на екрані під час кліку, було обманом
- Застосовуйте <code>Content-Security-Policy: frame-ancestors 'none'</code> (або застарілий <code>X-Frame-Options: DENY</code>) у кожній відповіді, що змінює стан
- Усвідомлюйте, що захист на боці браузера — свідоме рішення: сервер не може надійно виявити, що «цей запит завантажує мене в iframe», а браузер напевно знає контекст вбудовування
- Не обмежуйтеся заголовком на окремому маршруті: додайте глобальний middleware проти вбудовування, щоб наступна форма, яка змінює стан, одразу мала цей захист
- Для легітимного вбудовування (партнерський портал, внутрішня панель) використовуйте <code>frame-ancestors 'self'</code> або явний список дозволених довірених походжень, але ніколи не дозволяйте все без розбору
Клікджекінг — Кроки навчання
-
Боб не може сам переказати гроші
Боб не може залізти на чужий банківський рахунок. Зате Tideline Bank дозволяє будь-якому клієнтові запросити платіж в іншого, а гроші рухаються лише після того, як власник рахунку схвалить запит. Сьогодні Боб націлився на клієнтку Tideline Bank Алісу. Він починає зі сторінки банку для запиту платежу.
-
Підготуйте запит на платіж
Увійшовши в дроп-рахунок на ім'я Coastal Marketing LLC , Боб подає запит стягнути 2 500 доларів з рахунку Аліси. Він вводить її електронну адресу й суму.
-
Розставте пастку
Тепер запит лежить на рахунку Аліси й чекає на її схвалення . Свідомо вона б ніколи цього не зробила. Тож Боб створює акцію з безкоштовною кавою й ховає її кнопку схвалення просто під кнопкою кави. Потім він надсилає їй листа про акцію й чекає одного кліку.
-
Лист про безкоштовну каву
Після роботи Аліса отримує привітний лист: безкоштовна кава, достатньо одного кліку. Ніде не просять пароль. Усе виглядає цілком безневинно.
-
Отримайте каву
Аліса переходить за посиланням, щоб отримати безкоштовну каву.
-
Один клік
Відкривається сторінка акції з єдиною привітною кнопкою: безкоштовна кава. Аліса натискає її. Нічого видимого не змінюється. Сторінка з кавою просто залишається на екрані.
-
Гроші зникають з рахунку
Через кілька секунд надходить сповіщення про шахрайство. З її рахунку пішов платіж на 2 500 доларів , який вона свідомо не схвалювала.
-
Подивіться, куди потрапив клік
Аліса знову відкриває сторінку акції. Як інженерка з безпеки, вона хоче побачити, куди насправді потрапив її клік. Вона перетягує повзунок, який поступово проявляє все, що накладено на кнопку кави.
-
Назвіть атаку
-
Відкрийте обробник схвалення
Аліса з жертви знову стає інженеркою. Сторінку схвалення віддає сервіс запитів на платіж. Аліса відкриває обробник, щоб з'ясувати, чому цю сторінку взагалі можна завантажити на чужому сайті.
Охоплення стандартів безпеки
OWASP Top 10
- A02:2025 Security Misconfiguration
- A05:2021 Security Misconfiguration
CWE
- CWE-1021 Improper Restriction of Rendered UI Layers or Frames
CIS Controls
- CIS 16 Application Software Security
NIST CSF
- PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
- PR.PS Platform Security