Поддельное окно авторизации, чтобы выманить пароль пользователя

Современные средства HTML/CSS позволяют сгенерировать фрейм, практически неотличимый от настоящего браузера, как на скриншоте вверху. Более того, можно нарисовать в нём «адресную строку» с любым URL. Это открывает двери для нового класса атак, который получил название BitB (браузер внутри браузера).

Насколько реальны такие атаки и что можно противопоставить в качестве защиты?

BitB


Уже как минимум 20 лет для фишинга применяются всплывающие окна, в которых подгружается фальшивая копия целевого сайта. В атаке BITB мы видим усовершенствованную технику такого рода. Здесь подделывается не только интерфейс целевого сайта, но и его URL.

Например, в фишинговом окне демонстрируется адрес вроде https://facebook.com или https://accounts.google.com.

Демонстрация:



Специалист по безопасности mr.d0x опубликовал примеры простого HTML-кода, который генерирует всплывающие окна с произвольным URL и заголовком окна.

Опубликованы примеры для браузера Chrome под MacOS и Windows (светлая и тёмная тема).

Например, вот index.html, script.js и style.css для светлой темы Chrome под Windows:

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<link rel="stylesheet" href="style.css">
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
<div id="window">
<!-- Title bar start -->
<div id="title-bar-width">
	<div id="title-bar">
		<div style="margin-top:5px;">
			<img src="./logo.svg" width="20px" height="15px" id="logo">
			<span id="logo-description">XX-TITLE-XX</span>
		</div>

		<div>
			<span id="minimize">—</span>
			<span id="square">□</span>
			<span id="exit">✕</span>
		</div>
	</div>
	<div id="url-bar">
		<img src="./ssl.svg" width="20px" height="20px" id="ssl-padlock">
		<span id="domain-name">XX-DOMAIN-NAME-XX</span>
		<span id="domain-path">XX-DOMAIN-PATH-XX</span>
	</div>
</div>
<!-- Content start -->
<iframe id="content" src="XX-PHISHING-LINK-XX" frameBorder="0"></iframe>
</div>
</body>
<script src="script.js"></script>
</html>

В опубликованном коде index.html четыре изменяемых параметра:

  • XX-TITLE-XX — заголовок страницы;
  • XX-DOMAIN-NAME-XX — доменное имя (например, gmail.com);
  • XX-DOMAIN-PATH-XX — путь (например, /auth/google/login);
  • XX-PHISHING-LINK-XX — фишерская ссылка, которая внедряется во фрейм (например, https://example.com).

Как видим, поддельный URL просто прописывается в url-bar.

По мнению независимых экспертов, это вполне действенный вектор атаки, в том числе через традиционные рекламные сети.


Загрузка вредоносного кода в рекламную сеть через стороннюю платформу (supply-side platform, SSP) вроде FreeWheel, OpenX или Pubmatic

Хотя Google и другие используют автоматизированные сканеры для обнаружения такого рода вредоносного кода, эти проверки можно обойти. Например, с помощью таймера, когда вредоносный скрипт на сервере срабатывает только при определённых условиях:

  • через 45 или 60 дней;
  • при запросе только с конкретных IP-адресов;
  • при обнаружении движения; изменения положения девайса (с акселерометра), прикосновения и др.

Скрипт может сработать при сочетании нескольких перечисленных факторов. Это позволяет надёжно защитить вредоносный код от сканеров рекламной платформы.

Защита


В качестве защитных мер можно рекомендовать следующее:

  • использование нестандартных тем оформления в браузере, нестандартных браузеров, нестандартных ОС и др.;
  • использование менеджеров паролей (защита от поддельного URL);
  • обновление блоклистов uBlock Origin/Adblock и других блокировщиков.

Чтобы сработала атака BitB, пользователь должен сначала зайти на сайт злоумышленника. Уже оттуда запускается поддельное окно браузера. Таким образом, для защиты от BitB следует изначально избегать подозрительных сайтов.

Ещё один нюанс. Поскольку BitB труднее монетизировать в массовом масштабе, эту атаку могут применять в таргетированном варианте против конкретных целей. Например, чтобы узнать пароль пользователя от MetaMask или другого кошелька.



Подробнее о сертификатах подписи кода на сайте GlobalSign www.globalsign.com/ru-ru/code-signing-certificate

Комментарии (15)


  1. aamonster
    28.03.2022 07:50
    +1

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

    Не очень понятно, на кого эта атака вообще нацелена.


    1. pae174
      28.03.2022 08:03
      +3

      А вы давно видели всплывающие окна в браузере?

      А это не всплывающее окно в браузере. Это такой блок на текущей странице, внутри которого браузер только нарисован. То есть во время работы с этой как бы внешней плюхой юзер вообще не покидает изначальную зловредную страницу.


      1. aamonster
        28.03.2022 08:21
        +5

        Я про настоящие всплывающие окна. Нет их. Подо что же маскируется зловред?

        Ну то есть не надо никаких нестандартных тем: увидел такое окно – значит, тебя пытаются обмануть.


        1. CloudC
          28.03.2022 09:36
          +5

          В самой первой картинке видно подо что маскируют. Ты сам нажимаешь "войти с помощью гугл", а это вроде всегда (или часто) открывает вот такую вкладку отдельным окном для ввода почты/пароля.


          1. aamonster
            28.03.2022 12:00

            Только что попробовал Trello, AppCenter, Slack. Все три абсолютно одинаково перебросили на accounts.google.com прямо в текущей вкладке.

            Возможно, зависит от настроек браузера. Пробовал в Google Chrome, в настройках выставлено Security and Privacy -> Site Settings -> Content: Pop-ups and Redirects -> Default behaviour == "Don't allow sites to send pop-ups or use redirects" (настройка по умолчанию вроде).

            Буду благодарен, если назовёте сайт, на котором у вас открывается настоящий попап.


            1. NemoVors
              28.03.2022 12:33

              facebook открывает в мозилле (открывал недавно, по крайней мере). у меня он в отдельном окне как-то открылся и выкинул его на второй (в тот момент выключенный) монитор. Я тогда чуть не сдвинулся не понимая, почему не могу войти на сайт, пока не догадался моник включить :) .


              1. aamonster
                28.03.2022 13:10

                На каком сайте? Сам фейсбук заходит только через себя, appcenter у меня вход через фейсбук только что открыл в той же вкладке - и в Chrome, и в Firefox.
                Второй вопрос: не было ли это очень давно, когда все ещё не ополчились на popup-окна?


                1. NemoVors
                  28.03.2022 20:03
                  +1

                  С год назад где-то. Может 2. Я где был зарегистрирован через фейсбук. И вот если я разлогинюсь в фб (что вообще было регулярно даже без моего желания, т.к. не вхожу в него), то при попытке куда-то через него зайти открывалось окно. А на поп-апы вой идет еще со времен диал-апа - только вот смысла не особенно.

                  То чат с ботом из угла выпрыгнет, то еще какая дурь со звуком аськи познакомиться захочет (ну там не поп-апы, конечно, но раздражают не меньше).


    1. namikiri
      28.03.2022 10:05
      +2

      Вот как раз Гоогле частенько и открывает маленькие зависимые окошечки, а не табы вкладки.


    1. eps
      28.03.2022 13:51
      +1

      В Safari @ Mac OS поведение зависит от режима окна.


      Если в полноэкранном режиме — всегда новые вкладки. Если в оконном — всплывающие окна спокойно вылетают. Paypal, например, любил показывать оплату в таком pop-up


    1. FFxSquall
      28.03.2022 14:14

      Браузеры блокируют всплывающие окна только если код их инициирует без участия пользователя. Если пользователь сам сделал клик по кнопке на которую навешано создание окна через window.open, такое поведение не будет заблокировано с дефолтными настройками браузера.


      1. aamonster
        28.03.2022 15:18
        +1

        Это да. Но когда браузеры стали блокировать часть попапов – сайты стали всё чаще без них обходиться. Приведённый тут в качестве примера попап логина через гугл мне повторить не удалось.


        1. FFxSquall
          28.03.2022 15:32

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


          1. aamonster
            28.03.2022 15:52

            Я не смог уже найти сайты, на которых вылезает (собственно, если они используют единое API – попапы всюду могли быть убраны централизованно гуглом... И, кажется, случилось это не сегодня).
            В любом случае вылезшее попап-окно, в котором требуется ввести логин и пароль – априори подозрительно и проверять его следует всеми возможными способами (например, ткнуть правой кнопкой и нажать "Inspect" ;-)).


  1. eps
    28.03.2022 14:03
    +4

    Как отличить нарисованный камин браузер от настоящего? Возьмите окошко и утащите его за пределы окна браузера.


    Настоящее окно утащится хоть на соседний монитор, нарисованное — останется внутри document viewport.


    И, конечно, подделать окно с современной красивой ОС довольно сложно. Картинку подделать умеренно легко, но поведение — совсем сложно. User UI customisations узнать и подделать примерно невозможно