TigerJack: тысячи разработчиков стали жертвами вредоносных расширений для VS Code

APT

С начала 2025 года специалисты по кибербезопасности Koi Security отслеживают деятельность хакерской группы TigerJack, которая систематически проникла на маркетплейсы для разработчиков. Злоумышленники разместили как минимум 11 вредоносных расширений для VS Code через несколько учетных записей издателей. Операция ведется под идентификаторами ab-498, 498 и 498-00, демонстрируя сложный арсенал инструментов: расширения, которые крадут исходный код, майнят криптовалюту и создают удаленные бэкдоры для полного контроля над системами.

Описание

Два наиболее успешных расширения TigerJack - «C++ Playground» и «HTTP Format» - заразили более 17 000 разработчиков до того, как Microsoft тихо удалила их. Однако угроза не исчезла. Эти расширения остаются полностью работоспособными в маркетплейсе OpenVSX, который используют Cursor, Windsurf и другие IDE, совместимые с VS Code. Они продолжают красть код и майнить криптовалюту спустя месяцы после удаления с платформы Microsoft. Даже во время расследования TigerJack снова атаковал, переиздав тот же вредоносный код под новым именем в маркетплейсе Microsoft.

Представьте ситуацию: вы отлаживаете сложный алгоритм на C++ в два часа ночи, сроки горят. Вы устанавливаете расширение, которое выглядит полезным для быстрого тестирования фрагментов кода. Оно работает безупречно - компилирует код, подсвечивает ошибки, даже форматирует его согласно стилю Google. Что вы не знаете: каждая нажатая клавиша тихо загружается на сервер в реальном времени, ваш CPU тайно майнит криптовалюту, а скрытый бэкдор проверяет каждые 20 минут новые команды, которые могут дать злоумышленнику полный контроль над вашей системой.

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

Расширение «C++ Playground» позиционирует себя как идеальный помощник для разработчиков на C++. Оно обещает мгновенное написание и запуск кода, автоматическое форматирование, подсветку ошибок и даже офлайн-поддержку для компиляции проектов. И что особенно коварно - оно действительно выполняет эти функции. Расширение компилирует код в реальном времени, выделяет ошибки по мере ввода, аккуратно форматирует все с использованием стиля Google для C++ и идеально вписывается в интерфейс VS Code. Для любого разработчика, который его пробует, оно ощущается как отполированный инструмент профессионального уровня - потому что функционально им и является.

Под этой профессиональной оболочкой скрывается сложное вредоносное ПО, созданное для одной цели: кражи каждой написанной вами строки кода. Расширение активируется автоматически в момент запуска VS Code благодаря триггеру onStartupFinished. После активации оно регистрирует слушатель изменений документов, который отслеживает каждый файл C++ в вашей рабочей области. Каждое нажатие клавиши запускает эту функцию после задержки в 500 миллисекунд - достаточно долго, чтобы избежать влияния на производительность, но достаточно быстро, чтобы захватывать код в реальном времени. Ваш полный исходный код упаковывается в JSON-пакеты и передается на несколько конечных точек. Полезная нагрузка включает полный исходный код C++, язык программирования, обработанную версию вашего кода и смоделированные входные данные. Вредоносное ПО работает с хирургической точностью, активируясь только для файлов C++, избегая обнаружения разработчиками, работающими на других языках. Но для разработчиков на C++ оно захватывает все: ваш прорывной алгоритм, конкурентное преимущество вашей компании, ваш дипломный проект.

Расширение «HTTP Format» использует другой подход. Оно рекламируется как простой форматтер HTTP-файлов с возможностями форматирования «одним нажатием клавиши», представляя себя как легковесную утилиту для разработчиков, работающих с REST API и HTTP-файлами. Как и его компаньон, оно действительно работает. Установите его, нажмите Ctrl+Shift+F на HTTP-файле и наблюдайте, как ваши беспорядочные API-запросы красиво форматируются. Расширение предоставляет именно то, что обещает, - при этом тайно превращая вашу машину в устройство для майнинга криптовалюты.

В обфусцированном коде расширения находятся полные учетные данные API для сервиса майнинга криптовалюты CoinIMP. Эти учетные данные позволяют TigerJack отслеживать прогресс майнинга, выводить добытую криптовалюту напрямую на свои кошельки, отслеживать прибыльность, оптимизировать операции майнинга и управлять тысячами скомпрометированных систем одновременно. Расширение устанавливает соединения с несколькими конечными точками CoinIMP: мониторинг баланса, управление пользователями и вывод криптовалюты.

Сначала кажется, что ваша машина просто барахлит. Вентилятор работает постоянно. Простые задачи тормозят. Ваша некогда плавная среда разработки теперь кажется неуклюжей и ненадежной. Вы можете винить свою IDE, оборудование или просто неудачное обновление - но настоящая причина тихо работает на заднем плане, истощая ваш CPU и подрывая вашу продуктивность. Это не просто невезение - это захват вашей системы. Пока вы кодируете, кто-то другой тихо майнит криптовалюту в фоне, расходуя ваш CPU и электроэнергию. Тем временем для TigerJack это безусильный доход. Каждая зараженная машина становится потоком пассивного дохода - невидимым, автоматизированным и масштабируемым.

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

Под учетной записью издателя «498» в маркетплейсе VS Code три расширения - 498.cppplayground, 498.httpformat и 498.pythonformat - содержали идентичный бэкдорный код, который периодически загружает и выполняет произвольный JavaScript с сервера TigerJack. Вредоносный код устанавливает устойчивый бэкдор, который проверяет новые команды каждые 20 минут. В отличие от расширений для кражи данных и майнинга криптовалюты, которые имеют конкретное, предсказуемое поведение, этот бэкдор удаленного выполнения кода представляет собой открытую дверь. Проверяя новые инструкции каждые 20 минут и используя eval() для удаленно загружаемого кода, TigerJack может динамически любую вредоносную полезную нагрузку без обновления расширения - красть учетные данные и API-ключи, развертывать программы-вымогатели, использовать скомпрометированные машины разработчиков как точки входа в корпоративные сети, внедрять бэкдоры в ваши проекты или отслеживать вашу активность в реальном времени.

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

То, что изначально выглядело как простой случай двух вредоносных расширений, раскрылось как нечто гораздо более сложное - скоординированная кампания, охватывающая как минимум 11 расширений через 3 разные учетные записи издателей. Эта стратегия нескольких учетных записей обеспечивает избыточность, когда одна учетная запись помечается, создает иллюзию независимых разработчиков и демонстрирует социальную инженерию профессионального уровня: репозитории GitHub для доверия, последовательный брендинг across (по всем) расширениям, детальные списки функций, профессиональные презентации в маркетплейсе и стратегические названия, которые имитируют легитимные инструменты.

Анализ 11 расширений раскрывает особенно коварную тактику: несколько из них были загружены как полностью доброкачественные инструменты без вредоносного кода - классический подход троянского коня, предназначенный для построения доверия перед развертыванием вредоносных обновлений. Публикуя сначала чистые расширения, злоумышленник мог накапливать положительные отзывы, проходить проверки безопасности и устанавливать легитимность. Как только расширение набирало популярность с сотнями или тысячами установок, они могли выпустить «обновление», вводящее вредоносный функционал. Разработчики, которые проверили расширение перед установкой, unknowingly (неосознанно) получали скомпрометированные инструменты.

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

Во время расследования ландшафт угроз развивался в реальном времени, подтверждая опасения. 17 сентября 2025 года TigerJack запустил скоординированную кампанию перепубликации - не одно расширение, а пять расширений, опубликованных одновременно под новой учетной записью издателя «498-00», включая «cppplayground», который переупаковал тот же вредоносный код из оригинального расширения C++ Playground. Это была не простая перепубликация удаленного вредоносного ПО - это была скоординированная, систематическая кампания. Публикация пяти расширений одновременно служит нескольким целям: увеличивает поверхность атаки, диверсифицирует риск across (по) нескольким именам расширений и эксплуатирует медленные, непоследовательные процессы обнаружения и удаления на разных платформах.

В течение нескольких месяцев оба вредоносных расширения свободно работали в маркетплейсе VS Code, набирая более 17 000 загрузок, одновременно крадя код и майня криптовалюту. Когда Microsoft наконец действовала, они выбрали тихое удаление без уведомления пользователей - никаких предупреждений безопасности, никаких предупреждений зараженным разработчикам, просто тихое удаление и идентификаторы расширений, похороненные в малоизвестном репозитории GitHub. Более 17 000 скомпрометированных разработчиков? Предоставлены самим себе.

Это раскрывает фундаментальный изъян в фрагментированной экосистеме для разработчиков. Когда один маркетплейс удаляет вредоносное ПО, угрозы просто мигрируют на менее защищенные платформы. На момент написания оба расширения остаются полностью работоспособными в маркетплейсе OpenVSX, в комплекте с профессиональными описаниями, пользовательскими отзывами и проверенными значками, которые создают иллюзию безопасности. Но вот по-настоящему тревожная реальность: OpenVSX и другие альтернативные маркетплейсы, по-видимому, не имеют практически никаких механизмов обнаружения угроз. В то время как Microsoft в конечном итоге идентифицирует угрозы после месяцев ущерба, эти платформы работают с минимальным или нулевым сканированием на вредоносное ПО. Зачем обходить обнаружение Microsoft, когда можно загружать вредоносные расширения напрямую на платформы, которые не ищут угрозы?

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

Индикаторы компрометации

Domains

  • ab498.pythonanywhere.com
  • api.codex.jaagrav.in
  • coinimp.com

Extensions

  • ab-498.cppplayground
  • ab-498.httpformat
  • ab-498.pythonformat
  • ab-498.cppformat
  • 498.cppplayground
  • 498.cppformat
  • 498.httpformat
  • 498.pythonformat
  • 498-00.cppplayground
  • 498-00.cppformat
  • 498-00.pythonformat
  • 498-00.testwebext
  • 498-00.httpformat
Комментарии: 0