[Перевод] Inception bar: новый метод фишинга

Доброго времени суток, Хабр! На просторах Интернета мне попалась статья на английском «The inception bar: a new phishing method» автора Jim Fisher. В ней описывается занимательный способ фишинга, механизм которого заключён в использовании экранного пространства строки отображения URL-адреса мобильной версии Google Chrome. Оригинал статьи расположен на экспериментальной фишинговой странице: Вы можете самостоятельно зайти на неё и сделать свой вывод относительно опасности описанного метода. Всем, кто заинтересовался, welcome под cut!
Добро пожаловать на HSBC, седьмой банк в списке крупнейших в мире. Конечно, страница, которую вы сейчас читаете расположена не на hsbc.com, а на jameshfisher.com. В то же время, если Вы посетите эту страницу с Chrome для мобильных устройств и немного полистаете её вниз — на странице с большой вероятностью отобразится адресная строка с hsbc.com:
(ссылка на страницу оригинала)

0cad8iz3lank7wtc3is0uw0qyfk.png

При скроллинге вниз в мобильной версии Chrome браузер скрывает строку отображения URL-адреса и передаёт её экранное пространство непосредственно веб-странице. Так как пользователь отождествляет это пространство с UI, заслуживающим доверия, фишинговый сайт использует его для выдачи себя за другой сайт, отображая поддельный URL-адрес — Inception-строку.

Далее ещё хуже. Обычно, когда вы листаете вверх, Chrome заново отображает URL. Мы можем заставить его этого не делать! В тот момент, когда браузер скрывает URL-строку, мы перемещаем всё содержимое страницы в т.н «скролл-камеру» (англ. scroll jail) — новый элемент, в котором применяется свойство «overflow: scroll». Теперь пользователь думает, что он листает страницу вверх, хотя на самом деле он листает «скролл-камеру». Так же как и спящие герои фильма «Начало» (англ. Inception), пользователь считает, что он в работает из своего браузера, хотя на самом деле он находится в браузере внутри браузера.

Видео:

Your browser does not support HTML5 video.

Является ли описанный механизм серьёзной проблемой в безопасности? По правде сказать, даже я — создатель Inception-строки — случайно попался на эту уловку (по всей видимости, при своих же экспериментах — прим. переводчика). В связи с этим, я могу представить, скольких пользователей можно обмануть таким образом, в особенности — менее технически грамотных и осведомлённых. Пользователь может проверить правильность URL только при загрузке страницы. После того, как он пролистнул её вниз — шансов на спасение не так уж и немного.

При проработке представленной концепции, я сделал скриншот адресной строки на сайте HSBC из Google Chrome и поместил его на эту страницу. Страница может определить ваш браузер и создать для него Inception-строку. Приложив еще больше усилий, Inception-строку можно сделать интерактивной. Даже, если не удалось обмануть пользователя на настоящей странице, вы можете попробовать ещё раз, после того как он введёт что-то наподобие gmail.com в строке Inception.

Как защитить себя от обмана? Если у вас появились сомнения насчёт аутентичности веб-страницы, не просто проверьте URL-бар, а обновите (или даже закройте и откройте заново) страницу, в которой вы сомневаетесь.

Если у браузера Google Chrome и подобных ему существует проблема в безопасности, то как её решить? Существует компромисс между увеличением экранного пространства и сохранением доверенной области на экране, такой, как сохранение малой части экранного пространства выше «линии смерти» вместо передачи всего пространства веб-странице. Chrome может использовать эту малую часть пространства для отображения факта скрытия адресной строки.

Описание схожей атаки — атака на основе Fullscreen API (англ.). Также — атака custom-курсор (2016) (англ.), работающая благодаря тому, что Chrome позволяет веб-странице установить свой курсор, который может быть перемещён за пределы viewport-а браузера.

© Habrahabr.ru