Как при XSS-атаках воруют пароли из браузера
10:28, 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. Наши сотрудники помогут вам решить вопросы, связанные с безопасностью сайта и данных на сервере.