Простой npm install открыл дверь разведке. Разработчики не были готовы.

PyPI решил помочь с машинным обучением… но только злоумышленникам.


87txxpnq0o9aomm5pxkf8s6mb1c52b4g.jpg


На фоне всё более изощрённых атак на программную цепочку поставок, специалисты в сфере информационной безопасности выявили новое вредоносное ПО в официальных репозиториях, включая Python Package Index (PyPI) и npm. Речь идёт не о единичных инцидентах, а о целой волне сложных атак, нацеленных на разработчиков и корпоративную инфраструктуру, использующую облачные сервисы и системы непрерывной интеграции.

Одним из таких инцидентов стало обнаружение вредоносного пакета под названием chimera-sandbox-extensions, загруженного на PyPI. Пакет выдавал себя за вспомогательный модуль к Chimera Sandbox — сервису для экспериментальной разработки решений на базе машинного обучения. На самом деле он был предназначен для кражи конфиденциальной информации, связанной с окружением разработчиков.

Вредоносное ПО собирало следующие данные:

  • JAMF receipts (установленные через Jamf Pro пакеты);
  • токены аутентификации в изолированных средах Pod Sandbox и данные git-репозиториев;
  • переменные окружения CI/CD-сред;
  • конфигурации Zscaler и AWS;
  • публичный IP-адрес, информация о системе, пользователе и хосте.
Собранные данные передавались через POST-запрос на удалённый домен, сгенерированный с помощью алгоритма генерации доменных имён (DGA). Там же происходило определение дальнейших действий — стоит ли целевая машина дополнительных усилий. Несмотря на то что конечный вредоносный компонент получить не удалось, архитектура заражения позволяет судить о высоком уровне подготовки атаки и специфичности её целей — корпоративные Mac-системы, CI/CD-инфраструктура и облачные платформы.

Тем временем похожие атаки были замечены и в JavaScript-экосистеме. Аналитики SafeDep и Veracode опубликовали отчёты о вредоносных npm-пакетах, которые также были направлены на скрытную доставку вредоносного кода:

  • eslint-config-airbnb-compat (676 загрузок)
  • ts-runtime-compat-check (1 588 загрузок)
  • solders (983 загрузки)
  • @mediawave/lib (386 загрузок)
Пакет ts-runtime-compat-check оказался зависимостью от eslint-config-airbnb-compat и использовал внешнюю связь с доменом proxy.eslint-proxy[.]site для загрузки и выполнения вредоносной строки. В случае с solders вредоносная нагрузка запускалась автоматически после установки за счёт скрипта post-install. При этом код был замаскирован с использованием японских символов в качестве имён переменных и продвинутой цепочки генерации кода, усложняющей анализ.

После установки происходила многоступенчатая атака: на Windows-машинах выполнялся PowerShell-скрипт, загружавший .bat-файл с другого сервера, изменявший настройки Windows Defender и запускал .NET DLL. Эта библиотека извлекала ещё одну .NET DLL из скрытых пикселей PNG-изображения, размещённого на ImgBB. Полученный исполняемый файл оказывался Pulsar RAT — вариантом Quasar RAT , трпояна с возможностью обхода контроля учётных записей (UAC), создания задач в планировщике и дальнейшего скрытного управления системой.

Отдельный анализ показал, что злоумышленники всё чаще атакуют Web3-разработчиков через вредоносные open-source пакеты. В числе угроз:

  • express-dompurify и pumptoolforvolumeandcomment — крадут учётные данные браузера и ключи от криптокошельков;
  • bs58js — опустошает кошельки и использует цепочки переводов для сокрытия следов;
  • lsjglsjdv, asyncaiosignal, raydium-sdk-liquidity-init — отслеживают буфер обмена и подменяют адреса криптокошельков на свои.
Растущее слияние Web3 и традиционной разработки делает такие экосистемы всё более уязвимыми, особенно в условиях стремительной адаптации и эволюции атакующих.

Ещё одна угроза пришла с неожиданной стороны — от самих ИИ-инструментов для помощи в программировании. Компании Trend Micro и Socket выявили новый вектор атак, основанный на феномене slopsquatting — когда ИИ «галлюцинирует» несуществующие, но правдоподобные имена пакетов, и злоумышленники заранее регистрируют эти имена в репозиториях. Так, в одном из случаев агент ИИ сгенерировал имя starlette-reverse-proxy, несуществующее в реальности. Если бы злоумышленник заранее занял этот слот, установка ложного пакета произошла бы автоматически — с возможными фатальными последствиями.

Хотя более продвинутые ИИ-инструменты — такие как Claude Code CLI, OpenAI Codex CLI и Cursor AI с валидацией через Model Context Protocol — могут частично снижать риски, полностью исключить такие ошибки пока невозможно.

В совокупности инциденты показывают, насколько серьёзными стали угрозы в экосистемах open-source. Вредоносные цепочки доставки всё чаще маскируются под легитимные зависимости, задействуют десятки ступеней и применяют сложные методы сокрытия — от Unicode-обфускации до скрытия RAT внутри пикселей изображений. При этом активными становятся не только киберпреступники, но и, по всей видимости, государственные структуры, заинтересованные в компрометации инфраструктур высокого уровня.