Специалисты Group-IB выявили крупную фишинговую кампанию, направленную как минимум на 12 финансовых учреждений Мексики. Операция, активная на протяжении примерно трёх лет, использует полностью бессерверную архитектуру. Вредоносная инфраструктура построена на злоупотреблении платформой GitHub Pages для хостинга и сервисом SheetBest API для кражи учётных данных. Такой подход исключает необходимость в каком-либо выделенном серверном оборудовании, что существенно усложняет обнаружение и блокировку атаки.
Описание
Речь идёт не об изолированных инцидентах, а о зрелой и хорошо организованной схеме. Злоумышленники применяют модульный фишинговый набор, который позволяет динамически генерировать страницы для разных банков из одной и той же инфраструктуры. В наборе присутствует внутренний селектор кампаний - инструмент, с помощью которого операторы выбирают цель и распространяют соответствующие мошеннические ссылки. Этот факт прямо указывает на многоцелевую фишинговую инфраструктуру, рассчитанную на многократное использование.
Предоставленный [отчёт Group-IB описывает, как жертвы попадают на поддельные страницы. Точный механизм распространения ссылок не установлен, но исследователи полагают, что используются стандартные каналы: SMS, мессенджеры, электронная почта и социальные сети. Во всех случаях пользователь переходит по URL, который ведёт на сайт, внешне неотличимый от официального портала банка.
Особое внимание привлекает масштаб развёртывания. Выявлено более 100 доменов, связанных с кампанией. Каждый из них содержит множество фишинговых страниц, размещённых в разных каталогах. Такая структура позволяет распределять нагрузку, уклоняться от блокировок и быстро восстанавливать клонированные страницы после удаления отдельных репозиториев. Анализ коммитов GitHub показал несколько учётных записей операторов, активных более года, что подтверждает скоординированную и постоянно поддерживаемую работу.
Ключевым новшеством кампании стало использование SheetBest API для централизованного сбора похищенных данных. Когда жертва вводит логин, пароль, данные карты или идентификатор клиента на поддельной странице, встроенный JavaScript-скрипт перехватывает отправку формы. Вместо того чтобы передать данные легитимному серверу, скрипт сериализует их в JSON и отправляет POST-запросом на API SheetBest. Этот сервис, в свою очередь, записывает информацию напрямую в Google-таблицу, контролируемую атакующими. После передачи скрипт динамически заменяет интерфейс входа на экран верификации, имитируя обычный рабочий процесс банка и не вызывая подозрений.
Сеть подтверждает, что несколько фишинговых страниц, имитирующих разные банки, используют один и тот же механизм. Хотя идентификаторы листов (sheet ID) различаются, все POST-запросы направляются на один IP-адрес - 159.89.254[.]93 по HTTPS. Одинаковая логика отправки, одна и та же API-инфраструктура и повторяющиеся шаблоны запросов говорят о наличии централизованного бэкенда для сбора учётных данных, который обслуживает множество шаблонов и брендов.
Помимо SheetBest, для одной из целей был обнаружен альтернативный канал эксфильтрации через Telegram-бота. В коде страницы жёстко прописаны токен бота и идентификатор чата. После ввода данных они в реальном времени отправлялись в Telegram. На момент анализа этот канал уже был неактивен, но другие домены, имитирующие тот же банк, продолжали работать.
Фишинговые страницы загружают внешние JavaScript-файлы по сильно запутанным и рандомизированным путям. Вместо того чтобы встраивать вредоносный код прямо в HTML, авторы используют обфусцированные ссылки вида "/Vm7LSL59GGpJ8EK-ew/atw1fpkSb6ai/...". Это усложняет статический анализ и позволяет менять полезную нагрузку без изменения самой страницы. Сигнатурные детекторы, основанные на поиске конкретных URL, становятся малоэффективны.
Архитектура кампании - трёхступенчатая. Первая ступень - лендинг, который визуально копирует официальный сайт банка и довершает образ. Вторая ступень - промежуточные пути (например, "/cancelacion", "/soporte"), которые выполняют роль маршрутизации. Третья ступень - непосредственно страница сбора учётных данных (обычно файлы вроде "login.html", "1023.html"). Такая модульность позволяет быстро разворачивать новые фишинговые страницы для разных банков, меняя только минимальный набор настроек.
Для финансового сектора эта кампания служит индикатором сдвига в ландшафте угроз. Злоумышленникам больше не требуется сложное вредоносное ПО или дорогостоящая серверная инфраструктура. Злоупотребление доверенными облачными платформами снижает порог входа и одновременно повышает эффективность. Традиционные методы обнаружения, основанные на списках блокировки известных вредоносных доменов, неэффективны против такой инфраструктуры. На первое место выходят поведенческий анализ, непрерывный мониторинг подмены брендов и активный обмен данными угроз между участниками сектора.
Организациям рекомендуется отслеживать появление репозиториев GitHub Pages, имитирующих их бренд, обращать внимание на подозрительные POST-запросы к сервисам наподобие SheetBest, а также проводить обучение клиентов распознаванию фишинговых URL, особенно размещённых на доменах github.io. Многофакторная аутентификация и транзакционные оповещения остаются действенными защитными мерами даже в случае компрометации учётных данных.
Индикаторы компрометации
Domains
- 0725soporte.github.io
- 0725-soporte.github.io
- 07-soporte.github.io
- 0825-soporte.github.io
- api.sheetbest.com
- fldsmdfr-94.github.io
- respaldo94.github.io
- sntdr-soporte25.github.io
- sntndr25-soporte.github.io
- sntndr-soporte0825.github.io
- soporte0625.github.io
- soporte0725.github.io
- soporte-0725.github.io
- soporte-07-25.github.io
- soporte0725-3.github.io
- soporte160625.github.io
- soporte200525.github.io
- soporte250324.github.io
- soporte2507.github.io
- soporte2650.github.io
- soporte74.github.io
- soporte-b1.github.io
- soporte-b2.github.io
- soporte-b4.github.io
- soporte-bm1.github.io
- soporte-bn1.github.io
- soporte-c1.github.io
- soporte-index.github.io
- soporte-index05.github.io
- soporte-index09.github.io
- soporte-index25.github.io
- soporter03.github.io
- soporte-r5.github.io
- soporte-y-atencion.github.io
- soporteyatencionf.github.io
- support-vh.github.io