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

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

От ReversingLabs заявяват в доклад, споделен с Cyber Security News (CSN), че S1ngularity, Shai-Hulud и TeamPCP показват колко бързо една компрометираща атака може да се разпространи от един доставчик към множество организации по веригата.

Докладът описва верига от откраднати данни за достъп, отровени версии и повторни атаки в екосистемите с отворен код.

Последиците надхвърлят лаптопа на даден разработчик. Откраднати данни за достъп до GitHub, npm, облачни среди и SSH могат да разкрият изходен код, облачни ресурси, системи за внедряване и други пакети. В няколко случая злонамереният код е използвал идентификационни данни, взети от една жертва, за да публикува следващото отровено обновяване.

Хакери отравят доверени актуализации на софтуер

Инцидентът със S1ngularity илюстрира защо дистрибуцията на доверен софтуер е ценна цел. Атакуващите компрометираха пакети на Nx, след като използваха специално създадена pull заявка, за да получат токен, да заменят CI скрипт и да задействат работен процес за публикуване.

Инфектираните пакети след това стартираха hooks след инсталация на машините на разработчиците — модел, подробен в отражението на CSN относно кражбата на данни за достъп от пакети на Nx по време на кампанията през 2025 г.

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

Кампанията бе необичайна, тъй като нейният зловреден код също така подканяше локални AI инструменти да търсят във файловата система за вероятни места с данни за достъп.

Докладът, публикуван на 30 септември 2026 г., поставя компрометирането на Nx на 26 август 2025 г. Той разглежда първоначалните кампании отделно от TeamPCP, чието участие в по-ранни инциденти остава недоказано.

S1ngularity sample code showing the usage of “s1ngularity-repository” as the attacker’s exfiltration vector (Source - RevrsingLabs)
Примерен код от S1ngularity, показващ използването на „s1ngularity-repository“ като вектор за екстфилтрация на атакуващия (Източник – RevrsingLabs)

В доклада се казва, че подканите са търсили следи за токени на GitHub и npm, облачни данни за автентификация и SSH ключове. Това прави атаката нещо повече от конвенционален крадец на пароли: тя е се е опитала да превърне собствения асистент на разработчика в локален инструмент за разузнаване.

Читателите могат да видят по-широкото въздействие при насочването към данни за достъп на AI инструменти, включително данните, които зловредният код е търсил от засегнатите системи.

S1ngularity също така показа защо дълготрайните токени за публикуване са рискови. Откраднатият npm токен е позволил издаването на инфектирани пакети, докато компрометираните актуализации са се възползвали от репутацията на утвърден пакет.

По-късно Nx възприе подход с доверен издател (trusted-publisher), използващ краткотрайни идентификационни данни за всяко изпълнение, намалявайки стойността на токен, откраднат от хранилище.

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

Shai-Hulud разшири този модел, като го направи саморазпространяващ се. Червеят търсеше в компрометираните системи данни за публикуване в npm, използваше ги за идентифициране на пакети, които жертвата може да публикува, и внедряваше злонамерен код в следващи версии.

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

При инцидента с Trivy привилегирован токен бе извлечен през февруари 2026 г., но непълната ротация на данни за достъп остави път за злонамерените субекти да публикуват зловредно обновяване на 19 март чрез автоматизирана система.

Атакуващите са променили версиите на таговете (version tags), използвани от CI/CD работните процеси — техника, отразена в доклада на CSN относно атаката с отравяне на тагове в Trivy. Инжектираният код за кражба на данни за автентификация бе насочен към работещи процеси, където тайните данни могат да бъдат особено ценни.

След компрометирането на Trivy групата използва събраните npm токени за разпространение на CanisterWorm, който компрометира повече от 60 npm пакета. Checkmarx, LiteLLM и Telnyx също бяха засегнати, показвайки как откраднатият достъп може да поддържа последващи пробиви.

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

Екипи, които може да са стартирали засегната версия, трябва незабавно да ротират компрометираните токени и да проверят за неоторизирани хранилища, работни процеси и публикувани пакети.

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

ТипИндикаторОписание
Име на хранилищеs1ngularity-repositoryПублично GitHub хранилище, използвано от S1ngularity за разкриване на открадната информация
SHA-1 хеш на образецd2438106211ebd12c4f0a248848bc9864c97a3c0Образец на зловреден код S1ngularity, посочен в източника
SHA-1 хеш на образецb4f20b39aa6df1002872f07973024d85aa49abafОбразец на зловреден код S1ngularity, посочен в източника
SHA-1 хеш на образец2379ac0e03b1a67c4ca5693136eff4945e644a91Образец на зловреден код S1ngularity, посочен в източника
SHA-1 хеш на образецe5d1f3c45ee7cca6ae59cf64e0573050bbe136ecОбразец на зловреден код S1ngularity, посочен в източника