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, слід відстежувати офіційні канали сповіщень платформи, щоб отримувати оновлення щодо розслідування інциденту з внутрішніми репозиторіями.