Рутинното обновяване на софтуер вече може да отвори вратата към пробив в облачната инфраструктура. Атакуващите крият зловреден софтуер за кражба на идентификационни данни в доверени пакети и инструменти за разработка, което позволява на зловредния код да се изпълнява на компютрите на разработчиците и в автоматизираните системи за компилация още преди дадено приложение да е стартирало.

Заплахата обхваща няколко кампании, а не само едно семейство зловреден софтуер. Shai-Hulud се появи през септември 2025 г., докато по-късните операции бяха насочени към допълнителни екосистеми за програмиране и инструменти за сигурност.

След като атакуващите получат валидни идентификационни данни, те могат да получат достъп до облачно хранилище, да анализират инфраструктурата, да откраднат данни или да си осигурят траен достъп. Изследователите от Qualys отбелязват този повтарящ се модел в своя анализ от 28 септември.

От Qualys заявяват в доклад, споделен с Cyber Security News (CSN), че средите за разработка и облачната инфраструктура трябва да се разглеждат като една свързана повърхност за атака, а не като отделни проблеми на сигурността.

Компютрите на разработчиците често съдържат ключове за достъп до облака, токени за хранилища, данни за публикуване и частни ключове. Както илюстрират атаките срещу SAP пакети, кражбата на тези тайни може да изложи на риск системи далеч извън първоначалния софтуерен проект, дори когато компрометираното приложение никога не достигне до реална производствена среда.

Атаките срещу веригата за доставки превръщат компютрите на разработчиците

Решаващата стъпка се случва по време на инсталацията. Менеджърите на пакети могат автоматично да изпълняват скриптове, давайки на атакуващите достъп до същите файлове, променливи на средата и данни за достъп, налични за разработчика или за процеса на автоматизирано изграждане.

Стандартните защити на приложенията може да не сработят, преди кражбата вече да се е случила. Shai-Hulud първоначално е търсил в инфектираните среди за данни за достъп до облака и е качвал откраднатата информация в публични GitHub хранилища, създадени под акаунтите на жертвите.

Вариант от ноември добави функции на задна врата (backdoor) и деструктивно поведение, когато кражбата на идентификационни данни се провали, увеличавайки последиците от компрометирана зависимост.

До май 2026 г. Mini Shai-Hulud използва скриптове, които се изпълняват преди завършването на инсталацията. Qualys съобщава, че вълната от 19 май е компрометирала 639 версии на пакети в общо 323 пакета.

Отразяването на компрометирането на пакети от Mini Shai-Hulud показва как инфекциите се разпространяват чрез зависими библиотеки, използвани в работните процеси за разработка за облака.

Отказът от инсталация след стартирането на този скрипт не предотвратява непременно компрометирането. Зловредният код вече може да е събрал токени за хранилища, облачни ключове и тайни на инфраструктурата, оставяйки защитниците с компрометирани данни за достъп, а не просто с нежелан пакет.

Връзката на достъпа (Източник - Qualys)
Връзката на достъпа (Източник – Qualys)

Други кампании промениха самата среда за изграждане. BufferZoneCorp разпространяваше зловредни Ruby gems и Go модули, маскирани като помощни инструменти за разработчици.

Те събираха тайни, отслабваха проверката на пакети, прехващаха команди и понякога добавяха ключ на атакуващия, за да запазят отдалечения си достъп.

TeamPCP също така компрометира доверени инструменти за сканиране и библиотеки. Пробивът в облака на Европейската комисия демонстрира по-широкото въздействие на откраднатите данни за достъп до облака, като атакуващите преминават от компрометиран инструмент за разработка към неоторизиран достъп и кражба на данни.

Между 21 и 23 април 2026 г. свързани атаки засегнаха npm, PyPI и Docker Hub в рамките на 48 часа. В друга кампания през май 14 пакета, имитиращи библиотеки за търсене, откраднаха тайни от облачни среди и конвейери за разработка.

След това атакуващите използваха токени за публикуване, за да инфектират още пакети, превръщайки един компрометиран акаунт на разработчик в канал за разпространение на потенциално широкомащабна кражба на данни за достъп.

Ограничаване на кражбата и изтичането на данни за достъп

Премахването на зловреден пакет е само началото на възстановяването. Qualys препоръчва да се идентифицират всички данни за достъп, до които засегнатата машина или система за изграждане е имала достъп, да се отменят или подновят компрометираните тайни и да се прегледа облачната активност за целия период на излагане на риск.

Екипите трябва да намалят рисковете при инсталация чрез одобряване на зависимостите, фиксиране на версиите чрез lockfile файлове и проверка дали процесите по изграждане ги запазват. Когато работният процес позволява, деактивирайте автоматичните скриптове за инсталация и разрешете само скриптове, които са прегледани и са наистина необходими.

Задачите за изграждане трябва да разполагат само с разрешенията, необходими за тяхната работа. Процес, който компилира софтуер, не трябва да притежава и права за внедряване. Временните идентификационни данни намаляват зависимостта от постоянни ключове, докато по-строгите облачни политики могат да предотвратят неоторизирано създаване на администратори или деактивиране на дневниците за събития (logs).

Одитните записи в облака трябва да бъдат защитени от промяна и да се следят за необичайна активност. Разследващите трябва да проверяват неочаквани промени в достъпа, новосъздадени ресурси и подозрителен достъп до хранилища.

Тези проверки помагат да се установи какво точно са извършили атакуващите, след като са получили легитимни данни за достъп. Накрая, ограничете достъпа до метауслугите в облака, когато системите за изграждане нямат нужда от тях.

Изисквайте AWS IMDSv2, предпочетете федерирани или управлявани самоличности, където е поддържано, и поддържайте минимални разрешения. Сигурността на разработчиците и реакцията в облака трябва да проследяват целия път на атаката.

Индикатори за компрометиране (IoC):

ТипИндикаторОписание
Домейнwebhook.siteЛегитимна услуга за уебхук, идентифицирана като канал за източване на данни. Самото ѝ присъствие не потвърждава компрометиране.
IP адрес169.254.169.254Легитимна крайна точка за метаданни в облака, насочена за събиране на данни за достъп, а не IP адрес на атакуващ. Ограничете достъпа, когато не е необходим.
Път до файл~/.aws/credentialsЛокация за съхранение на данни за достъп до AWS, обект на събиране, а не зловреден файл.
Път до файл~/.kube/configЛокация на конфигурацията на Kubernetes, съдържаща информация за достъп, потенциално изложена на зловреден софтуер.
Име на файл.npmrcКонфигурационен файл на npm, обект на кражба на данни за достъп; рефериран е и при контрол на скриптове за инсталация.
Име на файл.netrcФайл за автентификация, идентифициран като цел за събиране на данни за достъп.
Път до файл~/.ssh/authorized_keysЛокация за осигуряване на траен достъп, където зловреден Go модул е добавил публичен SSH ключ на атакуващия.
Име на изпълним файлgoЛегитимна команда, имитирана от зловредни обвивки (wrappers) с цел прехващане на бъдещи команди за изграждане.
GitHub акаунтBufferZoneCorpАкаунт, използван за публикуване на зловредни Ruby gems и Go модули, имитиращи помощни инструменти за разработчици.
Име на пакет@ctrl/tinycolorЛегитимен npm пакет, компрометиран по време на първоначалната кампания Shai-Hulud; не всяка версия е зловредна.
Обхват на пакета@antvnpm екосистема, засегната от вълната Mini Shai-Hulud от 19 май. Докладът посочва 639 компрометирани версии в 323 пакета.
Име на пакетecharts-for-reactПакет от следващо ниво (downstream), засегнат от кампанията Mini Shai-Hulud; източникът не предоставя номера на засегнатите версии.
Име на пакет@bitwarden/cliЛегитимно име на пакет, свързано с троянизирана версия в априлската кампания.
Променлива на средатаGITHUB_TOKENДанни за достъп до хранилище, таргетирани от Mini Shai-Hulud; цел за събиране, а не самостоятелен индикатор за компрометиране.
Променлива на средатаAWS_ACCESS_KEY_IDИдентификатор за достъп до AWS, таргетиран от зловредния код.
Променлива на средатаAWS_SECRET_ACCESS_KEYТайният ключ за достъп до AWS, таргетиран от зловредния код.
Променлива на средатаKUBECONFIGРеференция към конфигурацията на Kubernetes, таргетирана за информация за достъп до инфраструктурата.
Променлива на средатаVAULT_TOKENТокен за автентификация в HashiCorp Vault, таргетиран за кражба.
Променлива на средатаGOPROXYНастройка на прокси за Go модули, пренасочена от зловредни модули с цел промяна на извличането на зависимости.

Забележка: IP адресите и домейните са умишлено неутрализирани (напр. [.]), за да се предотврати случайното им разрешаване или превръщане в хипервръзки. Възстановете оригиналния им вид само в рамките на контролирани платформи за разузнаване на заплахи като MISP, VirusTotal или вашата SIEM система.