Зловреден софтуер CanisterWorm
Сложна атака срещу веригата за доставки, първоначално насочена към широко използвания скенер Trivy, ескалира в по-широкомащабна атака, засягаща множество npm пакети. Заподозрени са, че злонамерените лица, стоящи зад кампанията, са внедрили досега недокументиран саморазпространяващ се червей, известен като CanisterWorm, което значително увеличава мащаба и въздействието на проникването.
Зловредният софтуер получава името си от използването на контейнер с интернет компютърен протокол (ICP) - устойчиви на неправомерно използване интелигентни договори, хоствани на децентрализирана блокчейн мрежа, като част от неговата командна инфраструктура. Това бележи първия публично документиран случай на използване на контейнери с ICP за извличане на крайни точки за командване и контрол (C2), въвеждайки нова и устойчива тактика, която усложнява традиционните усилия за смекчаване на риска.
Съдържание
Компрометирани пакети и вектор за първоначален достъп
Атаката е засегнала множество npm пакети в различни области, демонстрирайки широк радиус на взрив във веригата за доставки на софтуер:
- 28 пакета в обхвата на @EmilGroup
- 16 пакета в обхвата на @opengov
- Допълнителни пакети, включително @teale.io/eslint-config, @airtm/uuid-base32 и @pypestream/floating-ui-dom
Тази кампания следва непосредствено след компрометиране на идентификационни данни, което позволи на атакуващите да публикуват злонамерени версии на инструменти, свързани с Trivy, по-специално trivy, trivy-action и setup-trivy, които съдържаха вградена функционалност за кражба на идентификационни данни. Смята се, че операцията е свързана с фокусирана върху облака киберпрестъпна група, идентифицирана като TeamPCP.
Работен процес при инфекции и децентрализирана командна инфраструктура
Веригата на заразяване започва по време на процеса на инсталиране на npm пакета, където скрипт след инсталация изпълнява програма за зареждане. Този скрипт за зареждане разполага с базирана на Python задна вратичка, предназначена да комуникира с ICP контейнера. Контейнерът действа като „dead drop resolver“, връщайки URL адрес, който насочва заразената система да изтегли и изпълни следващия полезен товар.
Децентрализираният характер на ICP инфраструктурата предоставя значително предимство на атакуващите. Тъй като контейнерът може динамично да актуализира URL адреса на полезния товар, злонамерените лица могат да разпространяват нови злонамерени двоични файлове във всички заразени системи, без да променят самия внедрен зловреден софтуер. Тази архитектура също така прави усилията за премахване значително по-трудни.
Механизъм за постоянство и техники за скритост
Устойчивостта се постига чрез създаването на потребителска услуга на systemd, конфигурирана да рестартира автоматично злонамерения процес. Ключовите характеристики включват:
- Автоматично рестартиране, наложено чрез директивата Restart=always
- 5-секундно забавяне преди повторно стартиране на задната вратичка, ако бъде прекратена
- Прикриване на услугата като легитимен софтуер за мониторинг на PostgreSQL под името „pgmon“
Този подход осигурява непрекъсната работа, като същевременно минимизира вероятността от откриване, като се слива с легитимни системни услуги.
Адаптивна доставка на полезен товар и поведение на прекъсвача за аварийно спиране
Задната вратичка периодично комуникира с ICP контейнера на всеки 50 минути, използвайки фалшив потребителски агент на браузъра, за да избегне подозрение. Върнатият URL адрес определя следващото действие:
- Ако URL адресът сочи към валиден полезен товар, зловредният софтуер го изтегля и изпълнява.
- Ако URL адресът съдържа „youtube.com“, зловредният софтуер преминава в спящо състояние.
Този механизъм ефективно служи като дистанционен авариен прекъсвач. Чрез превключване на URL адреса на контейнера между доброкачествена връзка към YouTube и злонамерен полезен товар, нападателят може да активира или деактивира зловредния софтуер във всички заразени системи. Важно е да се отбележи, че преди това изпълнените полезен товар продължават да се изпълняват във фонов режим, тъй като злонамереният софтуер не прекратява по-ранни процеси.
Подобен awl switch, базиран на YouTube, е наблюдаван и в троянски двоичен файл Trivy (версия 0.69.4), който комуникира със същата ICP инфраструктура чрез отделен Python dropper.
Възможности на червеите и автоматизирано разпространение
Първоначално разпространението разчиташе на ръчно изпълнен скрипт, наречен deploy.js, който използваше откраднати npm токени за удостоверяване, за да инжектира злонамерен код в достъпни пакети. Този скрипт не се задействаше по време на инсталацията, а служише като самостоятелен инструмент за разширяване на обхвата на атаката.
Последващи варианти на CanisterWorm са еволюирали значително. В по-новите версии, като тези, които се намират в @teale.io/eslint-config (версии 1.8.11 и 1.8.12), червеят включва саморазпространение директно в процеса на инсталиране на пакета. Обновеният механизъм включва:
- Извличане на npm токени за удостоверяване от заразената среда
- Незабавно изпълнение на рутината за разпространение като отделен фонов процес
- Автоматизирано публикуване на компрометирани пакети с помощта на събрани идентификационни данни
Тази промяна трансформира атаката от ръчно управлявана кампания в напълно автономна система за разпространение.
Ескалация в заплаха за самоподдържаща се верига за доставки
Въвеждането на автоматизирано събиране на токени и саморазпространение бележи критична ескалация. Всяка работна станция на разработчика или CI/CD конвейер, който инсталира компрометиран пакет и съдържа достъпни npm идентификационни данни, се превръща в активен възел за разпространение. Това създава каскаден ефект, при който заразените пакети водят до по-нататъшни инфекции в зависимостите надолу по веригата.
На този етап заплахата еволюира отвъд изолирано компрометиране на акаунти в самоподдържаща се екосистема от разпространение на зловреден софтуер. Всяка новозаразена среда допринася за разпространението, позволявайки експоненциален растеж и значително затруднявайки ограничаването.
Засилвайки опасенията, тестването на артефакти, като например заместващ полезен товар („hello123“), показва, че нападателите активно усъвършенстват и валидират веригата на атаките, преди да внедрят напълно функциониращи злонамерени двоични файлове.