top of page

Червей в npm зарази и настройките на кодов асистент

8.08
време за четене: 3 мин.
На 4 август компрометиран профил на поддръжник изведе зловреден код в стотици пакета в npm. Новото в тази атака не е мащабът, а мястото, до което стигна товарът: конфигурационните файлове на редактора и на асистента за писане на код.

Хуманоиден робот подава чист на вид пакет на разработчик, но зад гърба му втори робот вече е отворил папката и от нея излиза сянка

Какво се случи за няколко часа


Първата потвърдена зловредна версия е на пакета keyv, публикувана около 09:35 UTC на 4 август. Нападателят е превзел профила на поддръжника и е издал нови версии на цялото семейство пакети около keyv и cacheable. По преброяване на Aikido засегнатите пакети събират над два милиарда инсталации месечно.


Товарът добавя скрипт, който се изпълнява преди самата инсталация, сваля средата за изпълнение Bun от официалните хранилища и пуска компилиран пакет. Изборът не е случаен: контроли, които следят само процеси на Node, не го забелязват. Открадва се всичко достижимо - жетони за GitHub и npm, ключове за облачните доставчици, тайни от Vault, служебни жетони за Kubernetes, идентификации за бази данни и частни ключове.


Разпространението върви по две отделни вериги. Едната ползва откраднати жетони за npm, за да преиздава пакети. Другата ползва откраднати жетони за GitHub и вписва промени в клоновете на достижимите хранилища.


Защо кодов асистент се оказа входна врата


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


Последицата е формулирана точно от SafeDep: проверка на зависимостите не открива кука в изтеглен код. Заразата не изисква инсталация на пакет, достатъчно е проектът да бъде отворен. Всеки кодов асистент, който чете настройки от хранилището, влиза в повърхността за атака наравно с редактора.


Уговорката е съществена и не бива да се пропуска. И редакторът, и асистентът прилагат режим на доверие към работната папка: автоматичните задачи и настройките от хранилището не тръгват в недоверена папка. Механизмът е реален, но минава през потвърждение от разработчика.


Числата се разминават и това не е дефект


SafeDep брои 1684 версии в 420 имена, Aikido отчита 444 пакета в 1381 версии, Socket дава 442 версии в 353 имена, а сингапурската агенция за киберсигурност съобщава над 1300 версии. Стойностите не си противоречат и не бива да се сумират: снимките са направени в различен момент, докато червеят преиздава пакети на всеки няколко минути, а единицата за броене е различна - веднъж име на пакет, веднъж версия.


Към 7 август зловредните версии са свалени от регистъра. Няма издаден идентификатор CVE, няма и запис в базата за уязвимости на GitHub, а Snyk е завел случая под собствен номер. Публично изявление от поддръжника, от npm или от GitHub не е открито.


Какво може да направи един екип днес


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


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


Техническият съвет на ENISA от март 2026 препоръчва същите мерки, включително прескачане на инсталационните скриптове, и е издаден преди този случай. По данни на Sonatype през 2025 година са регистрирани над 454 600 нови зловредни пакета с отворен код, като над 99% от тях са в npm.


Заключение


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


Помагаме на български технологични екипи да въведат AI инструменти, без да разширяват неволно повърхността за атака. Услугите ни покриват одит, оценка на готовност, обучение на екипи и имплементация на специализирани AI автоматизации за всяка организация. Препоръчваме консултация при въвеждане на асистенти, които четат настройки от хранилищата на проектите. [Свържете се с нас за консултация: academy@razvivai.se]


Източници



Този текст е създаден в съавторство с AI и е редактиран от екипа на РазвивAI се. Илюстрацията към публикацията е генерирана с AI.

Коментари


bottom of page