Кампания PhantomSub использует вредоносные пакеты npm, чтобы без ведома владельцев добавлять их учётные записи WhatsApp в группы и подписывать на каналы. Исследователи насчитали 101 такой пакет. Их общая аудитория успела приблизиться к 490 000 загрузок, причём 116 000 пришлись на последние 30 дней перед публикацией результатов. Значит, заражённые зависимости продолжали устанавливать, когда расследование уже подходило к завершению.

Технический разбор был опубликован в понедельник специалистами OX Security Ниром Задоком (Nir Zadok), Моше Симаном Товом Бустаном (Moshe Siman Tov Bustan) и Виталием Чепурко (Vitalii Chepurko). Точная календарная дата публикации не указана. Исследователи связали пакеты по совпадающим идентификаторам WhatsApp-каналов, удалённым спискам и аккаунтам GitHub. Разные названия и издатели тут мало что меняют: за многими пакетами, судя по общей инфраструктуре и повторяющемуся коду, стоят связанные операторы либо одна и та же группа.
Основой схемы стал Baileys, открытый проект для взаимодействия с WhatsApp. Вредоносный код получает доступ к уже аутентифицированному сеансу разработчика: это может быть личная учётная запись или сессия WhatsApp-бота. После подключения пакет отправляет запросы на вступление в подконтрольные злоумышленникам группы и подписку на новостные каналы. Дополнительного согласия у владельца сессии никто не спрашивает, поэтому обычная установка зависимости оборачивается действиями от имени его аккаунта.
OX Security разделила найденные образцы на три варианта. Первый включает 19 пакетов, которые во время работы загружают идентификаторы каналов с GitHub. Во втором варианте, состоящем из 60 пакетов, идентификаторы записаны прямо в исходном коде открытым текстом. Ещё 14 пакетов содержат те же данные в закодированном и запутанном виде, что усложняет быстрый поиск подозрительных строк при ручной проверке.
В этой классификации есть незакрытый разрыв: 19, 60 и 14 дают в сумме 93 пакета, хотя вся кампания насчитывает 101. Судьба оставшихся восьми образцов в опубликованных данных не объясняется. Их нельзя автоматически причислить к отдельной четвёртой версии или считать ошибкой подсчёта: для такого утверждения сведений нет.
PhantomSub оказалась не единственной попыткой встроить скрытые подписки в Baileys. Ранее в том же месяце Xygeni Security Research Team сообщила о модифицированном пакете @dappaoffc/baileys-mod. Он подписывал аутентифицированную сессию WhatsApp-бота разработчика на новостные каналы, которыми управляли злоумышленники. Точная дата раскрытия Xygeni также не приводится, поэтому установить временной промежуток между двумя публикациями нельзя.
По меньшей мере одна задействованная группа WhatsApp, по оценке исследователей, связана с Индонезией. В ней рекламировались аккаунты для мобильной игры Mobile Legends: Bang Bang и приложения TikTok. В объявлениях фигурировали номер индонезийского бизнес-аккаунта WhatsApp и имя Dan («Дэн»). Эти сведения указывают на коммерческий след внутри группы, но не доказывают, что Дэн или владелец номера руководил всей кампанией.
Практический ущерб не ограничивается раздражающей подпиской. Личный номер разработчика попадает в незнакомое сообщество, где его могут использовать для спама, мошеннических сообщений и навязчивой рекламы. Если скомпрометирована сессия бота, злоумышленники получают удобный способ массово наращивать число подписчиков за счёт чужих подключений. Одновременно подрывается доверие к npm-зависимостям: пакет может выполнять заявленные функции Baileys и параллельно проводить скрытые операции с WhatsApp.
После использования сторонних сборок Baileys стоит проверить список групп и подписок WhatsApp, покинуть незнакомые сообщества и заблокировать связанные каналы. В системах контроля зависимостей нужны правила обнаружения и блокировки вредоносных npm-пакетов из этой кампании. Особого внимания требуют модули, которые просят подключить личный WhatsApp, обращаются к удалённым спискам каналов, содержат жёстко заданные идентификаторы либо прячут их кодированием и обфускацией. Неофициальную модификацию Baileys разумно проверять до запуска, поскольку после авторизации пакет действует уже внутри доверенной сессии пользователя.[/final]

Изображение носит иллюстративный характер
Технический разбор был опубликован в понедельник специалистами OX Security Ниром Задоком (Nir Zadok), Моше Симаном Товом Бустаном (Moshe Siman Tov Bustan) и Виталием Чепурко (Vitalii Chepurko). Точная календарная дата публикации не указана. Исследователи связали пакеты по совпадающим идентификаторам WhatsApp-каналов, удалённым спискам и аккаунтам GitHub. Разные названия и издатели тут мало что меняют: за многими пакетами, судя по общей инфраструктуре и повторяющемуся коду, стоят связанные операторы либо одна и та же группа.
Основой схемы стал Baileys, открытый проект для взаимодействия с WhatsApp. Вредоносный код получает доступ к уже аутентифицированному сеансу разработчика: это может быть личная учётная запись или сессия WhatsApp-бота. После подключения пакет отправляет запросы на вступление в подконтрольные злоумышленникам группы и подписку на новостные каналы. Дополнительного согласия у владельца сессии никто не спрашивает, поэтому обычная установка зависимости оборачивается действиями от имени его аккаунта.
OX Security разделила найденные образцы на три варианта. Первый включает 19 пакетов, которые во время работы загружают идентификаторы каналов с GitHub. Во втором варианте, состоящем из 60 пакетов, идентификаторы записаны прямо в исходном коде открытым текстом. Ещё 14 пакетов содержат те же данные в закодированном и запутанном виде, что усложняет быстрый поиск подозрительных строк при ручной проверке.
В этой классификации есть незакрытый разрыв: 19, 60 и 14 дают в сумме 93 пакета, хотя вся кампания насчитывает 101. Судьба оставшихся восьми образцов в опубликованных данных не объясняется. Их нельзя автоматически причислить к отдельной четвёртой версии или считать ошибкой подсчёта: для такого утверждения сведений нет.
PhantomSub оказалась не единственной попыткой встроить скрытые подписки в Baileys. Ранее в том же месяце Xygeni Security Research Team сообщила о модифицированном пакете @dappaoffc/baileys-mod. Он подписывал аутентифицированную сессию WhatsApp-бота разработчика на новостные каналы, которыми управляли злоумышленники. Точная дата раскрытия Xygeni также не приводится, поэтому установить временной промежуток между двумя публикациями нельзя.
По меньшей мере одна задействованная группа WhatsApp, по оценке исследователей, связана с Индонезией. В ней рекламировались аккаунты для мобильной игры Mobile Legends: Bang Bang и приложения TikTok. В объявлениях фигурировали номер индонезийского бизнес-аккаунта WhatsApp и имя Dan («Дэн»). Эти сведения указывают на коммерческий след внутри группы, но не доказывают, что Дэн или владелец номера руководил всей кампанией.
Практический ущерб не ограничивается раздражающей подпиской. Личный номер разработчика попадает в незнакомое сообщество, где его могут использовать для спама, мошеннических сообщений и навязчивой рекламы. Если скомпрометирована сессия бота, злоумышленники получают удобный способ массово наращивать число подписчиков за счёт чужих подключений. Одновременно подрывается доверие к npm-зависимостям: пакет может выполнять заявленные функции Baileys и параллельно проводить скрытые операции с WhatsApp.
После использования сторонних сборок Baileys стоит проверить список групп и подписок WhatsApp, покинуть незнакомые сообщества и заблокировать связанные каналы. В системах контроля зависимостей нужны правила обнаружения и блокировки вредоносных npm-пакетов из этой кампании. Особого внимания требуют модули, которые просят подключить личный WhatsApp, обращаются к удалённым спискам каналов, содержат жёстко заданные идентификаторы либо прячут их кодированием и обфускацией. Неофициальную модификацию Baileys разумно проверять до запуска, поскольку после авторизации пакет действует уже внутри доверенной сессии пользователя.[/final]