Microsoft подтвердила временное удаление ряда репозиториев на GitHub в ходе расследования инцидента, связанного с компрометацией открытых проектов компании. Как сообщается, в код был внедрён информационный стилер, нацеленный на рабочие станции разработчиков и среды CI/CD. Инцидент является частью масштабной кампании по атаке на цепочку поставок программного обеспечения, получившей кодовое название Miasma. Разработчикам, использующим перечисленные ниже пакеты PyPI, а также open-source проекты Microsoft на GitHub, необходимо немедленно проверить свои зависимости и провести аудит секретов в затронутых средах.
Реакция Microsoft и масштаб инцидента
По данным представителя Microsoft, часть репозиториев была восстановлена после проверки, тогда как другие могут оставаться недоступными до завершения расследования. Компания уведомила ограниченное число клиентов, которые могли загрузить содержимое из скомпрометированных репозиториев, и заявила о готовности связаться с пострадавшими через официальные каналы поддержки в случае необходимости дополнительных действий.
Среди затронутых проектов, по имеющимся данным, оказался пакет durabletask — библиотека на Python, которая была скомпрометирована для доставки информационного стилера, ориентированного на Linux-системы. Microsoft охарактеризовала свои действия как меры по защите клиентов и экосистемы в целом.
Эволюция методов доставки полезной нагрузки
Согласно исследованию Socket, кампания активно развивается и включает несколько волн: Mini Shai-Hulud, Miasma и Hades. Новейшая волна затронула дополнительно 23 пакета на PyPI, причём атакующие экспериментируют с различными механизмами доставки вредоносного кода.
Ранние версии вредоносных пакетов использовали исполняемые .pth-хуки автозагрузки для запуска среды Bun и выполнения обфусцированного JavaScript-стилера. В новых вариантах применяются принципиально иные подходы:
- Троянизированные нативные расширения .abi3.so — стилер запускается при импорте пакета в Python-проект
- Модифицированный .pth-загрузчик — ищет полезную нагрузку
_index.jsпо путям вsys.pathвместо включения её непосредственно в дистрибутив (wheel)
Разделение загрузчика и полезной нагрузки, по оценке исследователей Socket, существенно затрудняет обнаружение при статическом анализе, поскольку каждый компонент по отдельности выглядит менее подозрительным. Кроме того, анализ полезной нагрузки Miasma выявил способность запускать автоматическое выполнение кода при открытии репозитория в IDE или инструментах разработки с поддержкой ИИ.
Отдельного внимания заслуживает обнаруженная в биоинформатических пакетах техника обхода ИИ-сканеров: в блочные комментарии JavaScript встроена состязательная инъекция промптов, способная ввести в заблуждение автоматизированные системы анализа и ИИ-ассистенты аналитиков. Эта техника ранее описывалась исследователями StepSecurity.
Затронутые пакеты
Кампания охватывает три категории вредоносных пакетов: библиотеки для биоинформатики, пакеты с тематикой ИИ и Model Context Protocol (MCP), а также тайпсквоттинговые имитации популярных библиотек. Полный список скомпрометированных версий, по данным исследователей:
- Биоинформатика: dreamgen 1.8.1, embiggen 0.11.97, ensmallen 0.8.101, gpsea 0.9.14, phenopacket-store-toolkit 0.1.7, ppkt2synergy 0.1.1, pyphetools 0.9.120
- ИИ и MCP: instructor-mcp 1.15.2/1.15.3, langchain-core-mcp 1.4.2/1.4.3, openai-mcp 2.41.1/2.41.2, ray-mcp-server 0.2.1, tiktoken-mcp 0.13.1/0.13.2
- Тайпсквоттинг и прочие: rsquests 2.34.3 (имитация requests), tlask 3.1.4 и rlask 3.1.7 (имитация flask), mem8 6.0.1, mflux-streamlit 0.0.3/0.0.4, orchestr8-platform 3.3.2
Выбор целей не случаен. Биоинформатические библиотеки используются в научных рабочих процессах — графовом обучении, фенотипировании пациентов, работе с фенопакетами. Пакеты с тематикой MCP эксплуатируют растущий интерес к интеграции языковых моделей с внешними инструментами. Тайпсквоттинговые пакеты рассчитаны на опечатки при установке через pip install.
Оценка воздействия
Вне зависимости от метода доставки, конечная цель вредоносного кода одинакова: сбор секретов (токенов, ключей API, учётных данных) с рабочих станций разработчиков и из сред CI/CD с последующей эксфильтрацией на публичный репозиторий GitHub. Это создаёт каскадный риск: скомпрометированные секреты открывают доступ к производственным системам, облачной инфраструктуре и внутренним сервисам организаций.
Наибольшему риску подвержены:
- Научные и исследовательские организации, использующие биоинформатические библиотеки Python
- Команды разработки, экспериментирующие с интеграцией MCP и языковых моделей
- Любые проекты с автоматизированной установкой зависимостей без верификации хешей
Рекомендации по реагированию
- Проверьте зависимости: выполните аудит файлов
requirements.txt,pyproject.tomlи lock-файлов на наличие перечисленных пакетов и версий. Используйтеpip listиpip show <package>для проверки установленных версий - Ротация секретов: если любой из указанных пакетов был установлен в вашей среде, немедленно смените все токены, ключи API и учётные данные, доступные из этой среды, включая секреты CI/CD
- Проверьте репозитории Microsoft: если вы клонировали или использовали open-source проекты Microsoft с GitHub в последние недели, дождитесь официального уведомления от Microsoft или проверьте статус конкретных репозиториев
- Усильте контроль зависимостей: внедрите проверку хешей пакетов при установке (
pip install --require-hashes), используйте инструменты анализа состава ПО (SCA) и ограничьте автоматическую установку непроверенных пакетов в CI/CD - Проверьте наличие .pth-файлов и .abi3.so: в виртуальных окружениях Python проведите поиск подозрительных
.pth-файлов и нативных расширений.abi3.so, которые могли быть установлены вредоносными пакетами
Как отметил исследователь Socket Кирилл Бойченко, ветвь Hades кампании Shai-Hulud и Miasma представляет собой быстро развивающуюся атаку на цепочку поставок, а не изолированный инцидент с отдельным пакетом. Разделение загрузчика и полезной нагрузки в варианте langchain-core-mcp демонстрирует, что атакующие целенаправленно адаптируют методы для обхода существующих средств обнаружения. Приоритетное действие — аудит зависимостей и ротация всех секретов в средах, где могли быть установлены перечисленные пакеты.