Как опечатка в названии библиотеки превратилась в инструмент подтасовки ставок

Специалисты по кибербезопасности наткнулись на пакет в NuGet, который выбивается из общей массы вредоносных находок. Обычно такие пакеты воруют пароли, токены сессий или банковские данные — привычная рутина инфостилеров. Здесь всё иначе: код был написан под одну-единственную задачу — подкрутить результаты в реальном времени на беттинг-платформе Digitain, причём именно в игре формата «краш».
Пакет назвали "Newtonsoftt.Json.Net" — с двойной буквой «т» в первом слове, что сразу выдаёт классический тайпсквоттинг под легитимную и крайне популярную библиотеку Newtonsoft.Json. Владельцем аккаунта числится некто под ником MagicalPuff96. К моменту обнаружения пакет успели скачать порядка 1200 раз. Формально автор снял его с публичного листинга — по прямому поиску в NuGet он не найдётся, но скачать его из реестра по-прежнему можно, если знать точное имя.
За два месяца — с 13 августа по 10 октября 2025 года — вышло семь версий пакета: 11.0.4, 11.0.5, 11.0.7, 11.0.8, 11.0.9, 11.0.10 и 11.0.11. Внутри каждой лежал троянизированный форк настоящей Newtonsoft.Json версии 13.0. Исследователи разделили эту цепочку на три поколения, и разница между ними показывает, как злоумышленник методично доводил инструмент до рабочего состояния.
Механизм срабатывания вредоноса устроен через сеттер свойства DefaultSettings — именно эту часть кода атакующие переписали. Когда хост-приложение инициализирует JsonConvert.DefaultSettings, запускается код, контролируемый злоумышленником. Перед тем как проявить себя, вредонос выжидает случайную задержку — явно для того, чтобы сбить с толку любые автоматизированные системы анализа. Но и это ещё не всё: код срабатывает только там, где в системе присутствует конкретный метод игрового бэкенда цели. На всех остальных машинах пакет ведёт себя как обычная, работающая библиотека для сериализации JSON — без единого намёка на вредоносную начинку.
Целью оказался именно Digitain, оператор игры FG-Crash. Троян патчит метод, который существует только в бэкенде этой конкретной игры. Разработчик, случайно установивший пакет по ошибке в названии, ничего не заметит: у него всё будет работать штатно.
Похищенные данные уходят на сервер злоумышленника под видом телеметрии — приём не новый, но эффективный, поскольку такой трафик редко вызывает подозрения у мониторинговых систем. Запросы отправляются с заголовком X-Seq-ApiKey: theperfectheist2025 на жёстко прописанный в коде адрес 185.126.237[.]64:5341. Через этот канал утекают результаты подкрученных раундов игры.
Отдельная деталь — в метаданных пакета семь раз, то есть в каждой из опубликованных версий, засветилась ссылка на внутренний репозиторий Digitain. Это прямое указание на то, что у атакующего был доступ к исходному коду FG-Crash — то есть речь, вероятно, идёт не о классической внешней атаке, а о ком-то, знакомом с внутренней кухней компании.
Гай Королевски, исследователь безопасности из JFrog, проследил эволюцию пакета по поколениям. В первом поколении обкатывалось локальное жульничество — proof of concept без всякой отправки данных наружу. Во втором появилась сама эксфильтрация, но спрятанная за рефлексией и упакованная обфускатором ConfuserEx. В третьем поколении логику подтасовки почистили, а канал утечки данных стабилизировали. А вот версия 11.0.11 выделяется на этом фоне: она опубликована вообще без обфускации, что исследователи считают случайностью — вероятно, автор по ошибке выложил сборку для отладки вместо продакшн-версии.
«Разработчики, установившие пакет по опечатке, получают реально работающую сборку Newtonsoft.Json; вредоносное поведение начинается только после того, как хост инициализирует JsonConvert.DefaultSettings, и срабатывает лишь на системах, где присутствует специфический метод игрового бэкенда цели, да ещё и с задержкой», — отметил Королевски. По его словам, именно это и делает атаку такой эффективной: непричастные пользователи видят перед собой рабочую библиотеку без единого признака подтасовки. «Троян активируется только при присвоении значения JsonConvert.DefaultSettings и патчит только метод, присутствующий в бэкенде FG-Crash", — добавил он.
При этом у вредоноса нет ни кражи учётных данных, ни механизмов закрепления в системе, ни возможностей для горизонтального перемещения по сети. «В полезной нагрузке нет ни кражи учётных данных, ни персистентности, ни возможности бокового перемещения. Единственная цель — скомпрометировать целостность результатов краш-игры», — подчеркнул Королевски.
Специалисты сформулировали простые шаги для разработчиков: немедленно удалить тайпсквот-пакет из проектов, заблокировать управляющий сервер по адресу 185.126.237[.]64:5341 и закрепить использование именно проверенной версии Newtonsoft.Json через файл packages.lock.json, чтобы исключить случайную подмену зависимости в будущем.
Digitain подтвердила, что знает о проблеме, и заявила о принятых мерах по её устранению. Однако насколько глубоко распространилась подмена результатов и какой урон она успела нанести — на данный момент остаётся неясным.


Новое на сайте

Ссылка