GitHub проводит расследование несанкционированного доступа к своим внутренним репозиториям, одновременно с этим группировка TeamPCP продолжает масштабную кампанию атак на цепочки поставок — скомпрометирован официальный Python-пакет durabletask от Microsoft (версии 1.4.1, 1.4.2 и 1.4.3), который загружается около 417 000 раз в месяц. Вредоносный код активируется автоматически при импорте пакета без каких-либо видимых признаков компрометации. Любая машина или CI/CD-конвейер, на которых была установлена заражённая версия, должна рассматриваться как полностью скомпрометированная.
Инцидент с внутренними репозиториями GitHub
Как сообщила компания GitHub, на данный момент нет свидетельств воздействия на клиентские данные, хранящиеся за пределами внутренних репозиториев платформы — включая корпоративные аккаунты, организации и репозитории пользователей. Компания заявила о мониторинге инфраструктуры на предмет дальнейшей подозрительной активности и пообещала уведомить клиентов через установленные каналы реагирования на инциденты в случае обнаружения последствий.
Следует отметить, что детали предполагаемого выставления на продажу исходного кода GitHub основаны на скриншотах, опубликованных Dark Web Informer, и не были независимо верифицированы. Группировка TeamPCP, согласно этим скриншотам, заявила, что не преследует цели вымогательства: данные будут проданы одному покупателю, после чего удалены, либо опубликованы бесплатно. Подлинность этих заявлений и реальный масштаб утечки на момент публикации остаются неподтверждёнными.
Компрометация пакета durabletask: технический анализ
Параллельно с инцидентом GitHub кампания TeamPCP, известная как Mini Shai-Hulud, продолжает расширяться. По данным исследователей Wiz, атакующие скомпрометировали учётную запись GitHub в ходе предыдущей атаки, извлекли секреты из доступного репозитория и получили токен PyPI для прямой публикации вредоносных версий пакета durabletask — официального Python-клиента для фреймворка Durable Task от Microsoft.
Цепочка заражения выглядит следующим образом:
- Вредоносный пакет содержит дроппер, который при импорте автоматически загружает полезную нагрузку второго этапа (
rope.pyz) с внешнего сервераcheck.git-service[.]com. - Полезная нагрузка представляет собой полнофункциональный инфостилер размером 28 КБ, работающий исключительно на Linux-системах.
- Стилер собирает учётные данные облачных провайдеров, менеджеров паролей и инструментов разработки, после чего эксфильтрирует их на домен, контролируемый атакующими.
Возможности стилера
Согласно анализу SafeDep, вредоносная программа нацелена на широкий спектр секретов:
- Чтение секретов HashiCorp Vault KV
- Разблокировка и выгрузка хранилищ паролей 1Password и Bitwarden
- Доступ к SSH-ключам, учётным данным Docker, конфигурациям VPN
- Сбор истории командной оболочки
Механизмы распространения
Как сообщает Aikido Security, вредонос обладает способностью к самораспространению в облачных средах. В AWS он распространяется на другие EC2-инстансы через SSM, используя SendCommand с документом AWS-RunShellScript для выполнения полезной нагрузки на до пяти инстансах на профиль. В среде Kubernetes распространение происходит через kubectl exec.
По данным StepSecurity, скрипт распространения загружает полезную нагрузку с основного C2-сервера, используя резервный домен t.m-kosche[.]com при недоступности основного.
Отдельного внимания заслуживает механизм FIRESCALE — резервный способ обнаружения C2-адреса. Вредонос ищет в публичных сообщениях коммитов на GitHub паттерн FIRESCALE <base64_url>.<base64_signature> и извлекает из него адрес управляющего сервера. Это позволяет атакующим динамически менять инфраструктуру, не обновляя сам вредоносный код.
Кроме того, исследователи Aikido Security обнаружили деструктивную логику: при обнаружении израильских или иранских системных настроек существует вероятность 1 к 6, что вредонос воспроизведёт аудиозапись и выполнит команду rm -rf /*, уничтожающую все данные на диске.
Контекст кампании TeamPCP
По оценке исследователей Wiz, вредоносная нагрузка в durabletask является эволюцией кода, использованного при компрометации пакета guardrails-ai неделей ранее. Поскольку червь распространяется с использованием токенов, похищенных из заражённых сред, количество затронутых пакетов, как ожидается, будет расти. Кампания Mini Shai-Hulud демонстрирует системный подход к атакам на цепочки поставок: компрометация одного аккаунта ведёт к каскадному захвату связанных ресурсов.
Индикаторы компрометации
- Домен C2:
check.git-service[.]com - Резервный домен C2:
t.m-kosche[.]com - Затронутые версии пакета: durabletask 1.4.1, 1.4.2, 1.4.3
- Полезная нагрузка второго этапа:
rope.pyz
Рекомендации по реагированию
- Немедленно проверьте, установлены ли версии durabletask 1.4.1–1.4.3 в ваших средах и CI/CD-конвейерах. Используйте
pip show durabletaskили проверьте файлы зависимостей. - Считайте скомпрометированной любую машину, на которой была импортирована заражённая версия. Как отмечает Endor Labs, вредоносный код выполняется автоматически при импорте без видимых признаков.
- Ротируйте все секреты — облачные учётные данные, токены API, SSH-ключи, пароли менеджеров паролей, — к которым имела доступ скомпрометированная среда.
- Проверьте AWS-среды на предмет несанкционированных вызовов SSM SendCommand и подозрительных процессов на EC2-инстансах.
- Заблокируйте домены
check.git-service[.]comиt.m-kosche[.]comна уровне DNS и сетевых фильтров. - Внедрите закрепление версий (version pinning) и верификацию хешей пакетов в конвейерах сборки для предотвращения автоматической установки скомпрометированных обновлений.
Учитывая самораспространяющийся характер Mini Shai-Hulud и масштаб загрузок durabletask (417 000 в месяц), приоритетом должна стать немедленная проверка всех сред на наличие заражённых версий пакета с последующей полной ротацией секретов. Организациям, использующим GitHub, следует отслеживать официальные каналы уведомлений платформы для получения обновлений по расследованию инцидента с внутренними репозиториями.