Міжсайтовий скриптинг (XSS) та міжсайтова підробка запитів (CSRF) є одними з найпоширеніших та найвідоміших вебвразливостей. Хоча їх часто згадують разом і вони можуть здаватися схожими, вони експлуатують різні аспекти вебдодатків та браузерів.
Огляд XSS (міжсайтовий скриптинг)
На що спрямований XSS
Атаки XSS націлені на кінцевого користувача, впроваджуючи шкідливі скрипти у вебсайти. Мета зловмисника – виконати JavaScript у контексті сесії браузера цілі. Ці скрипти можуть красти файли cookie, захоплювати сесії, робити дефейс сторінок або перенаправляти користувачів на шкідливі сайти.
Як здійснюються XSS-атаки
Корисні навантаження XSS зазвичай надсилають через поля введення, параметри запитів або інші точки входу, які відображаються або зберігаються програмою без належного очищення. Найпоширеніші типи:
- Відображений XSS: Корисне навантаження надсилається користувачем і безпосередньо відображається у відповіді сервера.
- Збережений XSS: Корисне навантаження зберігається на сервері та запускається, коли інший користувач переглядає контент.
- XSS на основі DOM: Маніпуляції корисним навантаженням відбуваються повністю в браузері через JavaScript.
Огляд CSRF (міжсайтова підробка запитів)
На що спрямована атака CSRF
CSRF змушує автентифікованих користувачів виконувати небажані дії на сайті, де вони ввійшли в систему. Наприклад, це може включати зміну налаштувань облікового запису або ініціювання транзакцій.
Як здійснюються CSRF-атаки
Коли користувач автентифікований у вебзастосунку, його браузер автоматично включає файли cookie сесії в будь-який запит до цього домену. CSRF експлуатує це, обманом змушуючи користувача надіслати підроблений запит без його відома. Наприклад, через форму на шкідливому сайті.
Ключові відмінності між XSS та CSRF
Механізм атаки
- XSS передбачає впровадження шкідливих скриптів у браузер користувача. Вони використовують довіру до певного вебсайту, дозволяючи зловмиснику виконувати JavaScript у його контексті.
- CSRF передбачає надсилання несанкціонованих запитів з браузера до довіреного додатка. Зловмиснику не потрібно впроваджувати код, а натомість він обманом змушує браузер зробити запит, який сервер вважає легітимним.
Потенційні наслідки
- XSS дозволяє зловмисникам безпосередньо взаємодіяти з DOM браузера та даними сесії, що дозволяє викрадати токени, маніпулювати вмістом сторінки, логувати натискання клавіш тощо.
- CSRF змушує користувачів ненавмисно виконувати такі дії, як надсилання форм, оновлення даних або транзакції. Зловмисник використовує наявні облікові дані та сесії, не потребуючи доступу до них.
Стратегії захисту
- Захист від XSS передбачає багаторівневий підхід, що включає санітизацію вхідних даних (перевірка та очищення введених користувачем даних), кодування виводу (безпечне відображення контенту в HTML або JavaScript) та застосування заголовків політики безпеки контенту (CSP) для обмеження джерел виконання скриптів.
- Захист від CSRF вимагає перевірки того, що кожен запит на зміну стану надходить з авторизованого джерела. Методи включають вбудовування CSRF-токенів у форми, встановлення файлів cookie з атрибутом SameSite для обмеження використання між джерелами, вимогу повторної автентифікації користувачів для критичних операцій. Ці заходи знижують ризик, що запити зможуть бути підроблені.
Реальні приклади та кейси використання
XSS у полях коментарів
Зловмисник публікує коментар, що містить тег скрипта, у блозі. Коли інший користувач читає коментар, скрипт запускається в його браузері, крадучи файли cookie сесії або перенаправляючи його на шкідливу сторінку.
CSRF у надсиланні форм
Автентифікований користувач заходить на шкідливий вебсайт, який таємно надсилає форму для зміни адреси електронної пошти на банківському сайті. Браузер містить дійсні файли cookie сесії, і зміна обробляється без відома користувача.
Що небезпечніше, XSS чи CSRF?
Обидві вразливості є серйозними, але відрізняються за масштабом. XSS загалом вважається більш небезпечним, оскільки він надає зловмисникам прямий доступ до середовища виконання на стороні клієнта, що дозволяє здійснювати широкий спектр шкідливих дій.
CSRF залежить від наявних автентифікованих сесій і зазвичай вимагає певної форми взаємодії з користувачем. Однак у поєднанні з іншими недоліками безпеки (наприклад, слабкою автентифікацією) CSRF все ще може мати серйозні наслідки.
Виявлення XSS та CSRF за допомогою DAST
Для виявлення XSS інструменти DAST впроваджують низку корисних навантажень та відстежують, як вебдодаток обробляє та виводить вхідні дані користувача, визначаючи місця, де в браузері можуть виконуватися шкідливі скрипти.
Для пошуку CSRF сучасні рішення DAST оцінюють наявність та реалізацію засобів контролю безпеки, таких як CSRF-токени та атрибути cookie SameSite, щоб виявити недоліки, які можуть дозволяти несанкціоновані запити.
Платформа Invicti на основі DAST автоматично підтверджує існування більшості серйозних вразливостей, включно з XSS та CSRF, дозволяючи не витрачати зусилля на повторну перевірку, а одразу усувати ці проблеми.







