Як під час XSS-атак крадуть паролі з браузера
16:30, 09.01.2023
Заголовки безпеки – одна з найважливіших ланок у ланцюзі інструментів і механізмів, що забезпечують захист сайту від зовнішніх загроз. За допомогою XSS-атак зловмисники можуть викрадати збережені в браузері паролі, щоб потім використовувати їх у своїх корисливих цілях. Далі ми розповімо, що собою являє XSS-атака, і як від неї можна захиститися.
Що собою являє XSS-атака і як вона реалізується
Існує відома вразливість під назвою Cross Site Scripting, завдяки якій зловмисник може впровадити шматки шкідливого HTML і JS коду в структуру сайту. Коли цей код виконується на комп'ютері користувача, перед ним автоматично спливає спеціальне віконце зі сформованим посиланням. Перейшовши за цим посиланням, людина потрапляє на спеціальний сайт, який сильно нагадує оригінал – це робиться для того, щоб жертва нічого не могла запідозрити. Після переходу запускаються скрипти, які викрадають інформацію про збережені паролі з вашого браузера.
Шахраї можуть використовувати різні варіанти XSS-атак, але найчастіше використовують:
- Відбиті (Reflected XSS) – передбачає реалізацію певних хитрощів зі сфери соціальної інженерії, щоб підштовхнути людину до певних дій. Під час такої атаки в гіперпосилання інтегрується спеціальний скрипт, який дає змогу викрадати cookies.
- Збережені (Persistent XSS) – варіант постійної атаки з впровадженням шкідливого коду на сервер. Заражений сайт узагалі не викличе жодних підозр, але для реалізації цього типу атаки потрібно знайти і використати вразливість на сайті для впровадження шкідливого коду таким чином, щоб нічого не змогли помітити і представники адміністрації, які обслуговують сайт і сервер. Заражений сервер автоматично пересилатиме зловмиснику дані відвідувачів, які добровільно проходять авторизацію на сайті.
Проблема в тому, що реалізація XSS-атаки не вимагає якихось глибоких знань у сфері хакінгу та соціальної інженерії, і тому цей варіант злому досить небезпечний. Якраз через малопомітність. Проте, від нього досить легко захиститися. Далі ми надамо рекомендації як власникам сайтів, так і самим користувачам, які хочуть убезпечити себе від подібних витоків.
Що робити користувачам, щоб не стати жертвою XSS-атаки
Перше й основне – ніколи не зберігайте в браузері важливі паролі. Звісно, не дуже зручно щоразу вручну вбивати ім'я користувача і пароль, але це важливо, якщо ви хочете вберегти себе від зловмисників. Зберігати в браузері паролі можна тільки від тих сайтів і акаунтів, які навіть у разі злому ніяк вам не зашкодять. А ось дані для платіжних систем, банків, акаунтів у соціальних мережах – це краще зберігати де-небудь окремо.
Крім того, під час відвідування сайтів слід бути уважним – якщо помітили якусь підозрілу активність на сайті у вигляді нав'язливих спливаючих вікон, утримайтеся від переходу за представленим посиланням.
Що робити власникам сайтів, щоб захиститися від XSS-атак
Насамперед необхідно ввімкнути заголовок X-XSS-Protection, який потрібен для фільтрації міжсайтового скриптингу. Після його активації виконання тега <script> в URL сторінки стане неможливим.
Щоб увімкнути XSS-фільтрацію, необхідно відкрити в режимі редагування файл .htaccess і додати такі рядки:
<ifModule mod_headers.c> Header set X-XSS-Protection "1; mode=block" </IfModule>
Це працює для веб-сервера Apache. Якщо ж у вас Nginx, то необхідно відкрити файл nginx.conf і в розділ HTTP додати таке:
add_header X-XSS-Protection "1; mode=block";
Буває й таке, що під час оренди VPS користувач не отримує доступу до конфігураційних файлів. У цьому разі можна вдатися до функції PHP:
<?php header("X-XSS-Protection: 1; mode=block"); ?>
Або ж попросити хостера внести необхідні зміни до конфігурацій. У будь-якому разі, варіантів активації XSS-фільтрації існує достатньо.
Рекомендації, як убезпечити себе від XSS-атак
Наостанок перерахуємо основні поради, які також будуть корисними:
- Перевіряйте хоча б раз на місяць свій сайт на предмет наявності вразливостей, і за можливості їх усувайте. Вкрай важливо забезпечити правильну і безпечну обробку всієї інформації, яка надходить на сервер ззовні.
- Якщо сайт самописний, обов'язково використовуйте функцію конвертації програмних символів і екранування одинарних лапок у JS-коді.
- Регулярно оновлюйте програмне забезпечення сайту, особливо CMS і всі встановлені плагіни. Оновлення - це не стільки про якісь нові функції, скільки про безпеку. Дуже часто розробники виявляють якісь критичні вразливості й оперативно їх усувають. Найкраще, якщо є можливість, увімкнути автоматичні оновлення сервера.
- Використовуйте firewall, його можна активувати за допомогою спеціальних плагінів.
- Захистіть свій сайт і дані користувачів за допомогою SSL-шифрування даних.
- Подбайте про налаштування політики безпеки контенту. Цей фрагмент коду призначений для розмежування контенту на групи з різними дозволами.
Якщо залишилися питання, звертайтеся до фахівців компанії HostZealot. Наші співробітники допоможуть вам вирішити питання, пов'язані з безпекою сайту і даних на сервері.