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

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

Добро пожаловать в HSBC, седьмой банк в списке крупнейших в мире. Конечно, страница, которую вы сейчас читаете расположена не на hsbc.com, а на jameshfisher.com. В то же время, если Вы посетите эту страницу с Chrome для мобильных устройств и немного полистаете её вниз — на странице с большой вероятностью отобразится адресная строка с hsbc.com:
(ссылка на страницу оригинала)



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

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

Видео:


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

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

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

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

Описание схожей атаки — атака на основе Fullscreen API (англ.). Также — атака custom-курсор (2016) (англ.), работающая благодаря тому, что Chrome позволяет веб-странице установить свой курсор, который может быть перемещён за пределы viewport-а браузера.
AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 21

    0
    хз. у меня, возможно в силу привычки крутить страницу вверз-вниз на экране две строки. нижняя действительно фейковая, а сверху настоящая. но при совпадении нескольких моментов может и сработает.
      +5

      Протестировал в мобильной Опере (да, я знаю, что это очень редкий браузер).


      Помимо очевидного несоответствия строки браузеру, что можно решить, как написал автор, есть еще


      • видимо, scroll jail работает в опере как-то неправильно, и как бы ты не скроллил страницу, оригинальная адресная строка не думает скрываться
      • сразу бросилось в глаза неправильное количество вкладок
        0
        Схожая ситуация с мобильным Safari. Адресная строка не скрывается. Но даже когда скрывается на других сайтах, сверху все равно висит название сайта мелким шрифтом.
          0
          Аналогичное поведение в мобильном Firefox, показывает настоящий и фейковый бар. А вот открыв в Chrome — это могло бы меня обмануть, по крайней мере 1-2 раза кликнуть по фейковой строке предже чем понять, что что-то не так, я мог бы.
          +1
          image
          А вот и защита от данной атаки…
            +2
            И какой в этом смысл? Ну тогда можно просто запретить скрывать адрес бар, и всё. Разработчики Хрома же хотели дать пользователю больше места для отображения контента.
              0
              Я браузер может и вот так:
              image

              А как вам такой вариант? в низу всегда остаётся невесомая полоска… а защита остаётся
              +6

              851 вкладка? Серьёзно?..

                0
                А почему бы и нет? работает ведь.
              +4
              Всегда отключаю скрытие адресной строки в Firefox, ибо просто бесит постоянное выезжание-заезжание.
                0

                В мобильном FF это как-то особенно ужасно сделано, да ещё и страница подёргивается.

                0
                iPhone 6s, последний хром
                image
                  0
                  В IOS chrome это рескин сафари же.
                  Эпл не пускает чужие движки к себе.
                  0
                  Ну, если подумать, то доделать соответствие с системой, и браузер ом я так думаю можно
                  т.е. Различие может и пропасть.
                    0
                    На моём Google Chrome тоже появилось две строки состояния (хотя и не сразу). А ещё фейковая строка никак не может скопировать истинное количество открытых вкладок пользователя и поведение при нажатии на кнопку переключения между вкладками. Существенно (на мой взгляд) осложнено копирование шрифтов и стиля оформления в соответствии с версией браузера, ОС и конкретным устройством.

                    Кстати, ранее читал о похожей атаке для Desktop: страница создаёт фейковый элемент, который копирует всплывающее окно браузера в Windows. Если не пытаться увести его за границы окна браузера, то визуально окно не отличается от настоящего.
                      0
                      Нормально воспоизводится только на split-скрине. В другом случае резским скроллом вверх можно увидеть истинную адресную строку.
                        0
                        После блокировки/разблокировки телефона, а так же после сворачивания/разворачивания браузера — появилась оригинальная строка.

                        Но в целом очень круто, не знал про такой хак со скроллом. Кмк, — баг в хроме в том, что пролистнув страницу наверх не появляется оригинальная строка. Думается мне, что условие возврата оригинальной строки должно быть несколько более сложным, нежели document.body.scrollTop == 0.
                        Есть баг-репорт в хроме или нужно написать?
                          0

                          Не надо ничего писать!)

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

                            Т.е. есть возможность показать элемент, перекрыв строку с URL.
                            +1
                            > автора Jim Fisher
                            Jim Phisher :)
                              0
                              не исключено)

                            Only users with full accounts can post comments. Log in, please.