Как потерять все пароли?
При клике на ссылку вы можете потерять все пароли браузера. Как? Оказывается существует очень простой и универсальный вариант.
Для обычного пользователя ссылку будет на сервис официальный, но при клике мы увидим некую ошибку. Система предложит сама починить и нам достаточно согласиться.
Нас перебросит на новую страницу. И увы, именно в этот момент, хакерский скрипт заберет все ваши пароли и передаст третей стороне.
Вы ничего не узнаете до тех, пора пока в ряд сайтом вам будет закрыт доступ или более ужасный вариант — когда в сервисах от вашего лица начнутся покупки…
Как пользователю защититься от атаки? Ответ прост.
Не нужно хранить пароли в браузере. Для этого есть менеджеры паролей. Например, KeePass или KeePassXC.
Ниже подробная информация по такой методике взлома и рекомендации — как защитить себя.
Как воруют пароли?
Для того, чтобы похитить пароль он сайта, который сохранен в браузере, злоумышленник присылает ссылку с вредоносным кодом. Пользователя сайта вынуждают перейти по специально сформированной ссылке.
Как происходит кража паролей?
Ссылка будет выглядеть примерно так:
Что происходит на экране пользователя?
- Пользователь переходит по ссылке. Подозрений она не вызывает: длинновата, но домен и сайт правильный.
- Срабатывает вредоносный код, который внедрен в URL.
- Скрипт крадет сохраненную в браузере связку логин / пароль от личного кабинета.
- На странице появляется какое-нибудь стандартное уведомление об ошибке.
- Пользователь кликает на «OK», и открывается главная страница сайта. Вот атака и произошла. Данные утекли. Ничего не заметили? Что же произошло за кадром?
Как пользователю защититься от атаки?
Ответ прост.
Не нужно хранить пароли в браузере. Для этого есть менеджеры паролей. Например, KeePass или KeePassXC.
Это удобно. Например, у KeePassXC есть плагин для браузера, который позволяет автоматически заполнять пароли для сайтов.
Чем это отличается от хранения паролей в браузере? KeePassXC тоже находит форму для логина и пароля от мошенника, но подставляет свою иконку в поле ввода. Пароль вводится плагином только после клика именно по этой иконке. Никакого самовольничества от программы.
Изменить внешний вид кнопки, чтобы вынудить на нее нажать, невозможно, так как у KeePassXC есть директива shadow-root(closed), которая не позволяет управлять внешним видом кнопок. То есть на кнопке будет такой значок:
Уязвимости благодаря которым происходит кража паролей
В нападении на пароли участвуют 2 рецидивиста, которые работают сообща:
- ReflectedXSS или StoredXSS. Встраивают вредоносный код.
- ClickJacking. Заставляет пользователя кликнуть на страницу, чтобы атака прошла успешно.
Суть атаки
XSS (Cross-Site Scripting) ― атака, когда на открываемую страницу внедряется вредоносный код, который может похищать данные, подменять содержимое страницы, перенаправлять пользователя на другой сайт и многое другое. У нее есть несколько типов:
- ReflectedXSS. Злоумышленнику нужно отправить вредоносную ссылку и вынудить пользователя перейти по ней.
- StoredXSS. Вредоносный код оседает в базе данных сайта и поджидает пользователя. То есть злоумышленнику не нужно вынуждать пользователя перейти по ссылке. Он может сам случайно открыть зараженную страницу.
Что происходит на технической стороне
Если расшифровать непонятный набор символов в ссылке, получится вот это:
- Шаги, которые проходит система:
- При переходе по ссылке загружается и выполняется JavaScript. Код создает на странице форму и поля с названиями, совпадающими с формой авторизации, чтобы браузер знал, куда подставить сохраненный пароль. Форма добавляется в самый низ. Так, чтобы ее никто не заметил.
- Чтобы браузер подставил пароль, нужно взаимодействие пользователя со страницей. На сцену выходит ClickJacking, который создает стандартное уведомление об ошибке, чтобы жертва нажала «OK».
- После нажатия на «OK» пароль отправляется к хакеру, а клиент возвращается на главную страницу.
Как не допустить уязвимости на сайте
Главное ― правильная обработка любых поступающих извне данных. То есть нужно так настроить систему, чтобы данные, которые приходят со стороны, воспринимались как обычный текст, даже если там заложен код.
Например, вместо <script> браузер видел:
И не воспринимал это как теги HTML.
Информация об уязвимости взята с сайта reg.ru