TL; ДР
Злонамерните npm пакети не се повремени. Тие се континуирано објавување, а листата на потврдени случаи се ажурира секоја недела. Низ седум последователни изданија на нашиот Malicious Code Digest, кој сега го помина 87-мото, Xygeni потврди 635 малициозни пакети, од 13 во мирна недела до 206 во зафатена. Неделниот опсег е поентата: ова е каденца, а не инцидент.
- Проблемот е каденцата. Еден пакет се зголеми од нула на повеќе од 55 верзии за една недела. Друг кластер објави речиси 30 имиња на пакети за помалку од три часа. Неделната ревизија е погрешна единица време.
- Тие не пристигнуваат како CVE. Злонамерниот пакет не е маана во легитимниот код, па затоа нема совет, нема оценка и обично воопшто нема идентификатор. Програмата водена од ранливост е структурно слепа за ова.
- Отстранувањето не е заштита. Пакетите обично се активни од неколку минути до неколку часа. Вашата инсталација или се случила во тој прозорец или не.
- Детекцијата мора да се изврши при објавување, а спроведувањето при инсталација. Сè што чека на потпис, CVE или неделно скенирање пристигнува по изградбата што го извршила.
Листата постои. Тоа не е исто како да бидеш набљудуван.
Нема мистерија околу злонамерните npm пакети. Потврдените случаи се објавуваат, именуваат и документираат секоја недела, вклучително и во Сопствена верзија на малициозен код на Xygeni, сега поминато своето осумдесет и седмо издание.
Јазот не е информација. Тоа е внимание и каденца. Листа што се ажурира неделно, се чита месечно и се постапува според неа квартално е листа што документира што веќе му се случило на некого.
Еве како изгледаа седум недели, земени од нашите сопствени потврдени наоди, а не од анкета на добавувачи.
| Вари | Потврдени пакети | Што се издвои |
|---|---|---|
| Дајџест 87 | 13 | Прв кластер на композитори. @umschool/platform објавено на 999.0.0 да се надмине интерен пакет |
| Дајџест 86 | 35 | Кампањата на Бејли ротира алијаси. Четири @stellarshift пакети објавени во идентична верзија |
| Дајџест 85 | 53 | [потврди дека е извонреден] |
| Дајџест 84 | 34 | Имитацијата на Бејлис низ четири имиња и шест дена. cloud-baileys преобјавен четири пати |
| Дајџест 83 | 114 | wormgpt-cli: девет верзии во еден ден, именувани по вистинска алатка за темна LLM |
| Дајџест 82 | 206 | [потврди дека е извонреден] |
| Дајџест 81 | 180 | 17 пакети кои лажно ги претставуваат внатрешните имиња на PayPal на 28.0.0. zevairouter последните 55 верзии |
Моделот што е важен не се вкупните бројки. Важен е брзината во секоја недела.
Брзината е целиот напад
Три наоди од тие недели, секое од нив претставува различен начин на надминување на прегледот.
- Преполнување на верзии. Еден npm пакет,
zevairouter, достигна повеќе од 55 потврдени верзии за една недела, на кои им се придружија уште десет од придружниот пакет. На PyPI,bingo-aiпроизведе речиси 80 верзии за приближно 30 минути. Ниеден рачен процес на преглед не работи со таа брзина, а ниту еден од нив не ја извршува работата секоја вечер. - Синхронизирани кластери. Седумнаесет пакети што лажно ги претставуваат имињата на интерните услуги на PayPal беа објавени во истите неколку минути, сите на верзија 28.0.0. Тоа не е обем, туку трка: постои надуен број на верзија за да се надмине интерниот пакет што го напишаа вашите сопствени тимови. Истиот трик се појави повторно неколку недели подоцна со
@umschool/platformобјавено на 999.0.0. - Упорност преку отстранување. Кампањата за лажно претставување на Бејлис трае со недели. Имињата ротираат, верзиите се зголемуваат, а повторното објавување продолжува по откривањето. Оператор кој ги третира отстранувањата како трошок за водење бизнис, а не како причина за запирање, е оператор со кој вашата квартална рецензија никогаш нема да се запознае.
А времето на задржување е кратко по природа. Во еден неодамнешен кластер, пакетите беа активни помеѓу 17 минути и 13 часа пред да бидат отстранети.
| пакет | Објавено (UTC) | Лево стоејќи |
|---|---|---|
moidev | 2026-08-16 16:31 | 5ч 58м |
moidevx | 2026-08-17 03:24 | 13ч 23м |
moidevz | 2026-08-26 03:38 | 12ч 56м |
moideva | 2026-08-26 18:58 | 1ч 33м |
amicat | 2026-08-28 20:48 | 17m |
bmcat | 2026-08-28 21:17 | 47m |
eyevox | 2026-08-28 21:44 | 21m |
moidevh | 2026-08-31 03:22 | 47m |
Сфатете го тоа како прозорец на експозиција, а не како метрика за перформанси за регистарот. Ако градбата се извршуваше за време на неа, отстранувањето не промени ништо.
Зошто вашата програма за ранливост не го гледа ова
Ова е структурната поента и е онаа што повеќето безбедносни тимови не ја интернализирале.
| Ранливост | Злонамерен пакет | |
|---|---|---|
| Потекло | Грешка во кодот напишана со добра намера | Артефакт изграден и објавен за да предизвика штета |
| идентификатор | CVE, со советување и оценка | Обично нема. Нема CVE, нема советување. |
| Хронологија | Откриено, потоа поправано во текот на денови или недели | Живее од минути до часови, а потоа се отстранува |
| Како учиш | Довод, скенер, советување | Само ако нешто го набљудувало регистарот при објавувањето |
| Поправи | Надградете на поправена верзија | Нема закрпена верзија. Никогаш не била легитимна. |
| Што прави вашата програма | Внесувања, резултати, распореди | Ништо, освен ако не е изградено за ова |
Ранливоста е грешка во кодот што некој го напишал добронамерно. Малициозен пакет е намерен артефакт објавен од напаѓач, обично без идентификатор, без совет и со животен век мерен во часови. Секој процес изграден околу внесување на CVE, оценување на сериозноста и прозорци за закрпи е дизајниран за првото нешто и применет на второто по дифолт.
Отсуството на идентификатор не е превид во CVE системот. Тоа е категоријата што работи како што е замислено: никој не поднесува известување против артефакт чија цел била злонамерна, и додека некој може, пакетот е исчезнат. Што значи дека прашањето „Дали ова има CVE?„го враќа истиот одговор за чист пакет и за крадец на акредитиви објавен пред еден час.“
Што всушност прават товарите сега
Наивната слика за малициозни npm пакети е крипто-рудар. Сегашната реалност е кражба на акредитиви насочена кон програмерите, а сè повеќе кон акредитивите за вештачка интелигенција на нивните машини.
на ФантомСинк кластер, осум npm пакети објавени под една сметка, работеа точно како што беше рекламирано, додека криеја самоповикувачки dropper кој се активираше приближно 37 секунди по импортирањето, декодираа товар поставен како лажен тест уред, инсталираа крос-платформска перзистентност и лансираа крадец на паричници и тајни. Одложување, прикривање, перзистирање, ексфилтрирање.
На поголем обем, CHAINDROP бранот на Црвот Шаи-Хулуд достигна повеќе од 400 пакети и 1,700 верзии на почетокот на август 2026 година, со вкупно 1.3 милијарди месечни преземања. Неговиот колекционер скенираше за повеќе од 300 шеми на акредитиви, вклучувајќи ги копчињата OpenAI, Anthropic и Cursor. Машините за развивачи станаа вредни предcisely поради акредитивите на моделот што се наоѓаат на нив.
Конвенциите за именување ги следеа парите. Неодамнешните кластери се претставуваат како крипто и DeFi SDK, модули за плаќање, библиотеки на WhatsApp API, AWS алатки и, во еден случај, пакет отворено брендиран по алатка за напаѓачи од dark-LLM.
Што всушност ги спречува злонамерните npm пакети
Четири контроли, по редоследот по кој се исплаќаат.
1. Откривање при објавување, а не при откривање. Рано предупредување за малициозен софтвер на Xygeni Анализира новообјавени пакети низ npm, PyPI, Maven и други регистри во моментот кога се појавуваат, користејќи анализа на однесувањето и аномалиите, наместо да чека потпис или извештај. Тоа е единствената точка во временската линија што е пред вашата изградба.
2. Спроведување на прописите таму каде што се врши инсталацијата. Детекцијата ви кажува дека пакетот е злонамерен. Политиката што ја блокира инсталацијата е она што го спречува извршувањето на скриптата по инсталацијата. Ова е уште поважно сега кога агентите инсталираат зависности без да ги избере човек.
3. Заклучување на датотеки и хеширање. Користете npm ci во CI наместо npm install, па затоа се гради точното дрво на зависности во заклучената датотека. Го затвора патот за замена на кој се потпираат typosquats и надуените верзии.
4. Наоди на едно место. Наодите за малициозен софтвер припаѓаат во истиот приоритетен ред како и вашиот SCA и наоди од кодот, а не во посебен канал што некој го прегледува. Потврдена злонамерна зависност треба да биде повисоко рангирана од CVE со средна сериозност, а само модел на споделен ризик ја овозможува таа споредба.
Следете го списокот или автоматизирајте го
Никој нема доволно внимание да чита фид од регистарот секоја недела. Тоа е поентата на автоматизирањето.
Xygeni анализира новообјавени пакети низ npm и други регистри во моментот на објавување, го означува потврдениот малициозен софтвер пред да стигне до верзијата и го става наодот во истиот приоритетен ред како и сè друго од кое вашите тимови веќе работат. Откривање на малициозен софтвер е вклучено во бесплатниот план за програмери, што не важи за повеќето бесплатни нивоа во оваа категорија.
Пробајте бесплатно, или прочитајте овонеделниот преглед на малициозен код прво.
NAJČESTO POSTAVUVANI PRAŠANJA
Што се малициозни npm пакети?
Пакети објавени во регистарот на npm кои се намерно изградени за да предизвикаат штета: крадци на акредитиви и паричници, задни врати, dropper-и и артефакти од конфузија на зависности кои имитираат внатрешни или популарни имиња на пакети.
Колку се чести злонамерните npm пакети?
Континуирано. Во седум неодамнешни изданија на нашиот Malicious Code Digest, Xygeni потврди 635 малициозни пакети, почнувајќи од околу десетина во мирна недела до над 200 за време на активни кампањи. npm го сочинува огромното мнозинство.
Колку долго остануваат достапни малициозните npm пакети?
Честопати од неколку минути до неколку часови. Тој прозорец е важен, бидејќи градбата што работи во него е веќе засегната, без оглед на тоа колку брзо пакетот ќе се отстрани потоа.
Дали злонамерните npm пакети добиваат CVE?
Обично не. Тие се артефакти објавени од напаѓачите, а не недостатоци во легитимен код, а следените кампањи од 2026 година не добиле никакви CVE доделувања за време на активната експлоатација.
Како да проверам дали пакетот е злонамерен пред да го инсталирам?
Користете алатка што ги анализира пакетите при објавување, наместо алатка што проверува список со познати дефекти, проверете го издавачот и историјата на верзии, бидете сомничави кон невообичаено високи броеви на верзии и сосема нови сметки и спроведувајте политика при инсталацијата, наместо да се потпирате на преглед.
Што е конфузија во зависноста?
Објавување на јавен пакет со исто име како и интерниот, обично во надуена верзија, така што решавачот ја претпочита копијата на напаѓачот. Кластерот со име на PayPal на верзијата 28.0.0 е пример од учебник.







