"Хочу рассказать историю, как я недавно лоханулся и потерял свой аккаунт Steam со 100+ играми и донатом на общую сумму больше 15 тыщ рублей". Или вот: "Несколько косарей в Стим вложено, и штук 20 игр, некоторые с дополнениями, на нем висит". Таких историй десятки, если не сотни. В июле специалисты Центра реагирования на инциденты информационной безопасности Group-IB (CERT-GIB 24/7) обнаружили более 150 мошеннических ресурсов под один из самых популярных у геймеров онлайн-сервисов — платформу Steam. Для кражи логинов-паролей от учетных записей злоумышленники используют новую фишинговую технику Browser-in-the-Browser — из-за нее фейковые страницы довольно легко спутать с легальным ресурсом. Иван Лебедев, руководитель группы по защите от фишинга CERT-GIB, и Дмитрий Ерошев, аналитик CERT-GIB, разбирались, как работает новая схема.

Half-Life, Counter-Strike, Dota 2, S.T.A.L.K.E.R. — все эти популярные игры в разные годы были выпущены на платформе Steam, созданной компанией Valve в 2003 году. Сегодня у Steam почти 120 миллионов пользователей и более 50 000 игр в "портфеле". Аккаунт начинающего геймера стоит в пределах нескольких десятков долларов, однако акки ведущих игроков оцениваются в весьма приличную сумму — от $100 000 до $300 000. Вот уже два десятка лет мошенники создают сотни фишинговых ресурсов, нацеленных на Steam, но выглядят они — давайте это признаем — довольно топорно, так что пользователи легко определяли подделку.

Угроза пришла, откуда не ждали и имя ей — Browser-in-the-Browser. Эта новая фишинговая техника была впервые описана весной этого года исследователем mr.d0x. Она позволяет создавать на фишинговом ресурсе поддельное окно браузера, на первый взгляд неотличимое от настоящего. Жулики решили воспользоваться тем, что на платформе Steam аутентификация пользователя происходит во всплывающем окне, а не в новой вкладке. Учитывая опасность для пользователей, мы решили детально проанализировать работу технологии Browser-in-the-Browser на примере фишинг-кита с ресурса, нацеленного на бренд Steam. И, разумеется, CERT-GIB предупредил компанию Valve об угрозе.

Билет на турнир по CS: как работает схема

Чтобы заманить жертв на страницу-приманку с кнопкой входа в учетную запись, злоумышленники отправляют пользователям сообщения с разными привлекательными предложениями: присоединиться к команде для участия в турнирах по LoL, CS, Dota 2 или PUBG, проголосовать за команду, купить со скидкой билеты на киберспортивные мероприятия и т. д.

В другом случае во время просмотра популярного видео с игрой (запись стрима, геймплей) зрителям предлагали перейти на другой ресурс, чтобы получить бесплатный скин. Рекламу фишинг-сайта можно увидеть как на экране, так и в описании видео.

Практически любая кнопка на подобных ресурсах-приманках будет открывать форму ввода данных учетной записи, стилизованную под легальное окно Steam. Там будет фальшивый зеленый замочек, поддельное поле URL, которое можно скопировать, и даже дополнительное окно двухфакторной аутентификации Steam Guard.

Пример фишинговой страницы-приманки
Пример фишинговой страницы-приманки
Пример фишинговой страницы-приманки
Пример фишинговой страницы-приманки

Подчеркнем: в отличие от стандартного фишингового ресурса, который бы открыл фишинговую страницу в новой вкладке (или произвел на нее редирект), в данном случае открывается поддельное окно браузера на прежней вкладке, так что у пользователя не возникает никаких подозрений. Отдельного внимания заслуживает возможность смены языка, которая позволяет отображать страницу на 27 языках.

Фишинг-страница, использующая Browser-in-the-Browser
Фишинг-страница, использующая Browser-in-the-Browser

Чем техника BitB отличается от стандартного фишинга?

Обычный фишинг

BitB-фишинг

Сразу показывает фишинговую форму ввода данных или перенаправляет на нее.

Отображает форму ввода данных во “всплывающем окне браузера”.

В адресной строке можно увидеть URL, отличающийся от подлинного. Очевидно, что вводить чувствительные данные на таком сайте небезопасно.

URL в адресной строке принадлежит стороннему сайту, на который пытается войти жертва. URL во “всплывшем окне” идентичен подлинному.

Ресурс может не иметь SSL-сертификата.

В поддельном окне всегда отображается замочек SSL-сертификата.

  • Аутентификацию во всплывающем окне вместо новой вкладки все чаще используют настоящие сайты, в том числе платформа Steam. Это вызывает меньше подозрений, так как соответствует ожиданиям.

  • Ссылка в “адресной строке” поддельного окна не отличается от легитимной, так как это не настоящее окно браузера. Ее можно выделить, скопировать, открыть в другой вкладке и проверить на легитимность.

  • В адресной строке поддельного браузера отображается замочек SSL-сертификата организации.

  • Несмотря на то, что это ненастоящее окно, кнопки закрытия и сворачивания работают корректно.

  • "Окно" можно двигать по экрану, как настоящее. Разумеется, оно ограничено размерами окна браузера (его нельзя вынести за пределы браузера), однако большинство пользователей не замечают этого ограничения.

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

Стоит также отметить наполнение фишинговой страницы. Она полностью скопирована с подлинной — в большинстве случаев сохраняется даже предупреждение о том, что данные вводятся на стороннем ресурсе.

Подлинная страница ввода учетных данных
Подлинная страница ввода учетных данных

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

Введенные данные сразу отправляются злоумышленнику и автоматически вводятся на официальном ресурсе. При этом, если данные некорректны, жертва увидит ошибку.

Ошибка ввода учетных данных
Ошибка ввода учетных данных

Если у жертвы включена двухфакторная аутентификация — ресурс выдаст запрос кода. Код создается отдельным приложением, которое может также прислать push-уведомление на устройство жертвы.

Запрос кода 2FA на фишинговом ресурсе
Запрос кода 2FA на фишинговом ресурсе
Повторный запрос кода 2FA на фишинговом ресурсе
Повторный запрос кода 2FA на фишинговом ресурсе
Запрос кода из SMS на фишинговом ресурсе
Запрос кода из SMS на фишинговом ресурсе

Анализ фишинг-кита

Фишинг-кит, с помощью которого создали рассматриваемый ресурс, представлен следующим деревом директорий:

Структура фишинг-кита
Структура фишинг-кита

Стоит отметить, что в ките отсутствуют типичные для фишинга PHP-скрипты: весь сайт основан на двух HTML-страницах и нескольких JS-скриптах. Также нет какой-либо защиты от исследователей — фишинг доступен из любой локации с любыми условиями доступа. Это позволяет злоумышленникам расширить охват потенциальной аудитории взамен на уменьшение времени жизни фишинга — его быстрее обнаруживают и блокируют.

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

  1. JS-скрипта, который создает поддельное окно браузера (fnqduadizanu.js)

  1. ссылки на HTML-файл с формой ввода данных (steam.html)

  1. кнопки, при клике на которую вызывается метод создания поддельного окна браузера

Остальное наполнение файла может быть изменено без нарушения технической составляющей. Это позволяет видоизменять его без затрат на разработку.

Отрисовка Browser-in-the-Browser

Метод window.$oA (), вызываемый при нажатии на кнопку, описан в файле fnqduadizanu.js. В момент подгрузки скрипта методу window.$oA присваивается функция E ().

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

Оригинальный код функции, отвечающей за создание поддельного окна браузера
Оригинальный код функции, отвечающей за создание поддельного окна браузера
Деобфусцированный код
Деобфусцированный код

В зависимости от значения в параметре window.$authType скрипт создает либо поддельное окно методом document.createElement, либо новое — методом window.open. Этот параметр возвращается при запросе к C2 злоумышленников, домен которого указан в файле steam.html. URL для обращения генерируется псевдослучайно при помощи вызова функции A(8).

Домен C2 злоумышленников
Домен C2 злоумышленников
URL, к которому обращается фишинг за значением $authType
URL, к которому обращается фишинг за значением $authType

Поддельное окно состоит лишь из трех элементов:

  1. Заголовок окна с кнопками управления.

  2. Адресная строка.

  3. Содержимое steam.html, встраиваемое при помощи тега iframe.

Структура окна "браузера в браузере"
Структура окна "браузера в браузере"

Какой именно файл будет подгружен в iframe, определяется переменной window.$sd, задаваемой в index.html. Такая структура позволяет злоумышленникам создать фишинг на другой бренд лишь путем замены HTML-файлов, без изменения скриптов.

Обработкой введенных данных и запросом дополнительных кодов занимается скрипт steam.js. Введенные в формы данные отправляются на C2 злоумышленников, URL которого указывается в полях $domainToLogin и $loginLink в файле steam.html.

Учетные данные отправляются как есть, без дополнительных проверок. Код 2FA и SMS проверяются на длину (5 или 7 символов), а также по регулярному выражению:

Украденные данные вводятся на стороне C2, и в зависимости от результата на фишинговый ресурс возвращается ответ с кодом дальнейших действий.

Код в ответе от C2

Пояснение

85

Удалось пройти первый этап аутентификации, необходимо ввести код 2FA. Отображается форма ввода 2FA.

88

Не удалось пройти второй этап аутентификации, необходимо повторно запросить код 2FA. Отображается ошибка ввода 2FA.

987

Действия вызвали подозрения системы безопасности, отправлено SMS на номер жертвы. Отображается форма ввода SMS.

0, 1, 69, 74, 92, 988

Успешная аутентификация. Производится редирект на URL, указанный в ответе от C2. 

Другие коды

Не удалось пройти первый этап аутентификации. Отображается ошибка ввода учетных данных.

В отличие от схем Phishing-as-a-Service, в которых фишинг-киты разрабатываются для продажи, фишинг-киты на Steam держат в большем секрете. Кампании проводят группы злоумышленников, собираемые на форумах в дарквебе или в Telegram. Свои действия они координируют в Telegram или Discord.

Рекомендации: как отличить поддельное окно браузера

  1. Сверить дизайн заголовка и адресной строки открывшегося окна. Подделка может отличаться от стандартной для вашего браузера. Стоит обратить внимание на шрифты и вид кнопок управления.

  2. Проверить, открылось ли новое окно в панели задач. Если нет — окно поддельное.

  3. Попытаться увеличить/сузить окно — поддельное не предоставляет такой возможности. Также его не получится развернуть на весь экран соответствующей кнопкой в заголовке.

  4. Так как окно ограничено экраном браузера, его не получится передвинуть на элементы управления изначального окна.

  5. Кнопка сворачивания поддельного окна просто закрывает его.

  6. Замочек, отображающий сертификат, — обычное изображение. При нажатии на него ничего не произойдет, тогда как настоящий браузер предложит посмотреть информацию об SSL-сертификате.

  7. Поддельная адресная строка не функциональна. В некоторых случаях она не позволяет ввести другой URL, но даже если позволит — перейти на него в этом же окне будет невозможно.

  8. Окно перестанет появляться при отключении исполнения JS-скриптов в настройках браузера.

Будьте бдительны, не попадитесь! Что касается компаний, то бороться с новыми фишинговыми техниками им помогает комплексное решение Group-IB Digital Risk Protection для защиты цифровых активов. Всю работу по сканированию ресурсов, закрытых форумов и чатов, анализу данных и обнаружению нелегитимное использованию бренда выполняютсредства автоматического мониторинга (парсеры, веб-краулеры, API). В зависимости от типа инцидента предпринимаются оперативные меры реагирования — от прямой блокировки ресурса до удаления нелегальных сайтов и приложений из поисковой выдачи.

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


  1. Squoworode
    16.08.2022 12:15
    +1

    Рекомендации: как отличить поддельное окно браузера

    Если браузер не подставляет сохранённый пароль - значит, это не тот сайт. :)


  1. urvanov
    16.08.2022 12:27

    Аккаунт стима можно восстановить если хотя бы у одной игры есть реальный физический диск и сохранился чек покупки. Шанс близок к 100 %


    1. gdsmiler
      16.08.2022 13:33
      +1

      Мне почему-то кажется что это не настолько частый случай. К примеру я диски не покупал лет 10..


    1. R7R
      16.08.2022 15:39

      Аккаунт стима можно восстановить если хотя бы у одной игры есть реальный физический диск


      Да в общем я Стим и стал использовать только ради покупок через сеть.
      (быстро и легально)

      (А последний легальный диск у меня — еще со вторым Старкрафтом)


      1. urvanov
        16.08.2022 20:17

        Ну это у вас так. У меня стим аккаунт был только чтобы в скайрим играть. Я бы и не регился там, но купленный в магазе диск потребовал регистрации. У меня там вся библиотека из одного скайрима только и состоит, правда. А диск храню как сувенир. Чек, правда, выцвел уже.


        1. R7R
          16.08.2022 23:24

          был только чтобы в скайрим играть.


          Что-то мне Скайрим после фолыча совсем не зашел.
          Как-то скучновато.
          (другое дело для тех, кто в Oblivion успел раньше :)

          У меня там вся библиотека из одного скайрима только и состоит


          А давайте меряться :)

          412 The Elder Scrolls Adventures: Redguard (1998) (GOG)
          413 The Elder Scrolls II: Daggerfall (1996) (GOG)
          414 The Elder Scrolls III: Bloodmoon (2003)
          415 The Elder Scrolls III: Morrowind® Game of the Year Edition (2002)
          416 The Elder Scrolls III: Tribunal (2002)
          417 The Elder Scrolls IV: Knights of the Nine (2006)
          418 The Elder Scrolls IV: Oblivion® Game of the Year Edition (2007)
          419 The Elder Scrolls IV: Shivering Isles (2007)
          420 The Elder Scrolls V: Skyrim (2011)
          421 The Elder Scrolls V: Skyrim Special Edition:
          422 The Elder Scrolls: Arena (1994) (GOG)

          Не указанные — это стим :)


    1. tempick
      17.08.2022 00:15

      Всё гораздо проще - достаточно иметь доступ к почте, которая привязана к стиму (точнее, к самой первой почте, которая была привязана). Это нередко используют для продажи аккаунта и последующего восстановления его.
      То есть, вы покупаете аккаунт у человека. Привязываете новую почту, новый телефон, подключаете стим-гуард, переводите деньги продавцу, а через несколько минут аккаунт снова у него, а вы навсегда потеряли у нему доступ.


  1. MuKPo6
    16.08.2022 14:09
    +3

    Не знаю, почему это какой-то новый вид фишинга. Я с таким сталкивался оооочень давно, может лет 7 назад.


  1. DrGluck07
    16.08.2022 14:16

    Пффффф, какой-то там браузер-в-браузере, к чему такие сложности. Вот на плати-маркете человек предлагает всего лишь за 4992р угнать ваш аккаунт бесплатно и без СМС.

    ЭТОТ ЛОТ = Я ЗАХОЖУ НА ВАШ АККАУНТ И ПОКУПАЮ ТАМ ЭТУ ИГРУ — ЕСЛИ СТОИТ РОССИЯ
    ❤️ Можно как в Epic Games Store, так и в Steam (Даже если стоит Россия)❤️

    p.s. Или я чего-то не понимаю и он правда помогает с покупками?


    1. urvanov
      16.08.2022 14:57

      Тут сложно сказать. Может помогать, помогать. А потом бац - и начать уводить.


    1. R7R
      16.08.2022 15:41

      p.s. Или я чего-то не понимаю и он правда помогает с покупками?


      Создаем новый пустой аккаунт для одной игры. Можно рискнуть, если по другому нельзя.


    1. Nognomar
      17.08.2022 17:26

      Данное предложение - развод с вероятностью 99.9%. Sony перекрыли любую возможность получить данную игру на российский или беларуский аккаунт в Стим. Ее даже в качестве подарка нельзя отправить на такие аккаунты


      1. DrGluck07
        17.08.2022 18:47

        Тем не менее, Паук у меня есть, в Стиме, на русском, в РФ. Внезапно Бука начала торговать ключами, которые почти сразу закончились. Я бы не стал брать за 4К, но 13 числа у меня был день рождения, поэтому решил себе подарить.
        Второй вариант. Можно отправить в подарок глобальный ключ, без русского языка.


        1. Nognomar
          17.08.2022 23:54

          Да, первое время такая возможность была - глобальные ключи (и там не было ограничения на отсутствие русского языка) однако издатель буквально через пару-тройку дней отрубил эту возможность. Эти версии можно было хоть ключами активировать, хоть гифтами слать. Для этого потенциальному продавцу, из коммента выше, совершенно не обязательно заходить самому на левый аккаунт.

          А про какие-то глобальные версии без русского языка, если честно, первый раз слышу. Не уверен что в Стим такое вообще существует (по крайней мере не встречал такого чтобы глобальные версии какой-либо игры не содержали языка указанного на странице игры)


          1. DrGluck07
            18.08.2022 01:32

            До выхода игры на plati.market было несколько лотов с таким описанием. Сейчас вообще нет, видимо лавочку прикрыли. Или может она сразу не работала. Получается мне вообще повезло с эти ключом. На трекерах уже есть, но я стараюсь по возможности так не делать.


  1. roelberg
    16.08.2022 14:40
    +1

    Это очень элегантно.


  1. ryzhehvost
    18.08.2022 13:13

    Вы это серьёзно? Весной этого года? Этому способу фишинга - лет десять, и я не преувеличиваю! Разпознать его элементарно - поскольку окно ненастоящее, его не будет в таскбаре (ну и когда в firefox рисуют окошечко в стиле хрома - это, знаете ли, очень заметно) Более того, после введения двухфакторной аутентификации (в 2015 году, если мне не изменяет память, это мать его 7 лет назад!), которая почти принудительная (де-факто нет, но без неё действует множество ограничений), этот фишинг, как и любой другой, стал почти безполезен (но лишь почти, потому что скамеры тоже не сидят сложа руки). Потому что даже если вы ввели логин, пароль и код двухфакторной аутентификации - сделать с аккаунтом почти ничего нельзя, поэтому сейчас это лишь первый этап мошенничества. На втором этапе мошенники разными методами пытаются убедить пользвателя передать все вещи на другой аккаунт (либо второй аккаунт того же пользователя, либо какому-то другу), и если доверчивый пользователь второй раз позволяет себя обмануть, и отсылает такой обмен, то действует незамысловатая схема:
    Любой обмен требует подтверждения в приложении двухфакторной аутентификации. Пользователь отправлет обмен и запускает приложение на мобильном, чтобы его подтвердить. В то время, пока пользователь переходит от браузера на пк к приложению на мобильном - бот, которых вошёл в стим на первом этапе (с поддельным окном браузера) - отменяет этот обмен, ставит на аккаунте мошенника такую же аватарку и такой же никнейм как у получателя обмена, и отправляет новый обмен с теми же предметами на этот аккаунт. Пользователь заходит в приложение для подтверждения - видит обмен, в котором те же предметы, тот же никнейм, тот же аватар... и если пользователь ведётся на обман в ТРЕТИЙ раз, и подтверждает этот обмен - все предметы переходят мошенникам.

    И да, увести аккаунт с двухфакторкой таким образом не получится. Если двухфакторка не подключена - внезапно, тоже не получится, потому что всё равно есть Steam Guard на основе почты (почта это конечно не совсем второй фактор, но уже близко). Вот если пользователь не только не подключил двухфакторку, но ещё и отключил steam guard... Или если у пользователя пароль от почты такой же как от стима... ну тогда да, прощай аккаунт.