Исследователи обнаружили «фабрику» вредоносных пакетов npm

Checkmarx обнаружили угрозу, связанную с деятельностью злоумышленника RED-LILI, отметившегося созданием и доставкой сотен вредоносных пакетов в экосистему NPM в режиме автоматизации, что вызывает серьёзные опасения в контексте атак на цепочки зависимостей, особенно на фоне последних инцидентов с саботажем отдельных разработчиков.

По данным Checkmarx, RED-LILI полностью автоматизировал процесс создания учеток NPM для проведения атак с путаницей зависимостей, которые трудно обнаружить.

Обычно злоумышленники для этих целей используют анонимную одноразовую учетную запись NPM, с которой они запускают свои атаки. В этой ситуации злоумышленник полностью автоматизировал процесс их создания, создав выделенные учетные записи на каждый пакет с вредоносным вложением.

Автор в настоящее время все еще активен и продолжает штамповать вредоносные пакеты. На текущий момент исследователи обнаружили и отслеживают около 800 пакетов, большинство из которых имели уникальную учетную запись пользователя для каждого из них, созданных в течение одной недели.

При этом имена пакетов были методично подобраны, а имена публикующих их пользователей представляли собой случайно сгенерированные строки, в том числе такие как 5t7crz72 и d4ugwerp.

Все указывает на то, что злоумышленник выстроил процесс автоматизации от начала до конца, включая регистрацию пользователей и прохождение OTP-вызовов, а также сокрытие вредоносных пакетов NPM.

Если до этого инцидента отмечались случаи публикации вредоносных полезных нагрузок в полуавтоматическом режиме, то RED-LILI организовал все в формате полной автоматизации, значительно увеличивая шансы заражения. И этот факт знаменует новый тренд на ландшафте угроз в экосистеме NPM. Безусловно, негативные процессы будут лишь прогрессировать.

Компания выкатила полный список вредоносных пакетов в своей документации. (https://checkmarx.com/blog/a-beautiful-factory-for-malicious-packages/)

@Stravnik
30.03.2022 00:34 UTC
Первоисточник

Комментарии

@paulstrong
29.03.2022 21:28 UTC
0

Вот негодяй?

@toffkin
30.03.2022 03:30 UTC
+1

Один из двух вариантов:

1) Это упорный придурок и инженера npmjs.org не смогут организовать защиту репозитария - До свидания NodeJS?

2) Все не так как выглядит, журналисты опять все напутали - До свидания NodeJS?

А попробуйте доказать руководителям среднего звена, что JavaScript это безопасно.

У них семья, дети... А тут начальство имеет...

@dagen
30.03.2022 00:35 UTC
+5

Автор, а вы точно сисадмин, а не копирайтер?

@Stravnik
30.03.2022 03:30 UTC
0

А вы с какой целью интересуетесь?

30.03.2022 04:27 UTC
+11

Много признаков машинного перевода и отсутствия опыта в сфере:

  • «созданием и доставкой» — доставляют осязаемые вещи, а информационные продукты публикуют, выкладывают или релизят

  • «создав выделенные учетные записи» — говорят «отдельные» или «индивидуальные», а не «выделенные»

  • «OTP-вызовов» — «вызов» звучит слишком эпично для проверки методом TOTP, как будто это что-то непреодолимое

  • «имели уникальную учетную запись пользователя» — формально верно, но на практике все говорят просто «имели отдельного пользователя»

  • «знаменует новый тренд на ландшафте угроз в экосистеме NPM» — в русском языке слово «ландшафт» не используют в таком контексте

  • «компания выкатила полный список вредоносных пакетов» — выкатывают требования или релизы, а списки публикуют и показывают

Не хватает технических подробностей:

  • Как вредоносные пакеты попадают в легитимные проекты? Они маскируются под полезные пакеты? Может, вредоносные пакеты добавляются в зависимости легитимных пакетов, доступ к которым был взломан?

  • Что именно делают вредоносные пакеты, как вредят?

30.03.2022 04:36 UTC
+2

Уточнение: термин "доставка" существует и используется. Например, в девопсе есть понятие непрерывной доставки. Но да, пакеты не доставляются, а публикуются.

30.03.2022 04:45 UTC
0

Часто встречал в общении "создание и доставку приложений", пример:

"Создав выделенные учетные записи", "Уникальную учетную запись пользователя " Попахивает знакомым канцеляритом и тоже часто приходится слышать. Как и выделенные пэвм и прочее.

"Компания выкатила" часто встречается в виде сленга [Netflix выкатила собственный рейтинг фильмов и сериалов](https://habr.com/ru/news/t/589747/)

"Ландшафт угроз" -> https://encyclopedia.kaspersky.ru/glossary/threat-landscape/#:~:text=Ландшафт угроз (threat landscape) —,периода времени и так далее.

30.03.2022 05:12 UTC
+1

Не спорю, что термины по отдельности используются в определённых контекстах. Но в контексте этой статьи они смотрятся неуместно, как будто дословный машинный перевод.

30.03.2022 05:05 UTC
-3

Ок. С тезисами согласен.

P. S. Ну раз вам не нужны новости, то я умываю руки.

30.03.2022 05:13 UTC
0

Ничего не имею против поста. Я пояснил, что пользователь dagen имел ввиду.

30.03.2022 08:03 UTC
+4

Такие действительно не нужны.

  1. Перевод похож на первые попытки гугла перевести с японского/китайского на русский. Вроде по-русски написано, вроде в курсе о чем речь, т.к. новости на оригинале читал, а ощущения, как у первокурсника читающего работу нобелевского лауреата. Тем более, что новости написаны на несложном английском и беглого прочтения по диагонали хватает для понимания.

  2. Новости не первый день и можно было добавить чуть истории - одна компания обнаружила около 100 "вредоносных" пакетов, сообщила об этом, потом к ним присоединилась еще одна и сообщила, что наблюдает за ситуацией и есть список около 800 пакетов.

  3. Новость про атаку, но самую важную часть из новости опустили. Поэтому даже тут в комментах задаются вопросом - а в чем атака то? что такого, что опубликовали 1000 пакетов? у npm место закончится?.. А написали бы как в новости - "Атака направлена на пользователей azure. Имена пакетов подбираются, чтобы они совпадали с оффициальными или были похожи с точностью до замены символа. Злоумышленик ожидает, что при установке кто-то забудет написать префиксы "@azure", azure- или вместо azure- напишет azure_" - и вопросов было бы меньше.

  4. "Все указывает"... И это все базируется на том, что предположении исследователей, т.к. пакетов много и они попробовали и смогли найти вариант публикации пакета.

30.03.2022 15:38 UTC
0

По пункту 1 не всё так плохо. Понять перевод можно)

По остальным моментам согласен.

@Lure_of_Chaos
30.03.2022 00:55 UTC
+1

всё настолько логично, что даже странно, что раньше (очень раньше) подобное не всплывало.

ну и мне интересно, будет ли кто-то тянуть к себе и использовать нонейм-пакет? ладно, полноценный аудит кода на наличие "нехороших вещей" мало кому доступен, особенно если в пакете больше десятка файлов (и соответственно зависимостей), но вот доверять коммитерам вида 123fqrt65o по-моему как минимум странно. да и "все" предпочитают пользоваться более или менее "известными" библиотеками.

или дело снова в тайп-сквоттинге, когда из-за опечатки тянешь какой-нибудь npn вместо npm?

мне кажется, поэтому у данного занятия мало шансов на "успех", ведь сила вредоноснов в массовости.

или как? мне правда интересно.

@q2digger
30.03.2022 04:33 UTC
+4

Создание тонны вредоносных пакетов может быть только частью плана. Например, дальше автор публикует на каком нибудь ресурсе что-то типа «делаем свой Майнкрафт» и там питает ссылку на заранее подготовленный код, который уже требует «правильные» пакетики… и все, целевая группа будет тиражировать это, потому что это может быть интересно.. примеров можно кучу придумать..

@tyomitch
30.03.2022 04:54 UTC
+1

Там продвинутый тайп-сквоттинг:

the attacker extracted the package names and altered their names, erasing the scope part (‘@azure/’ in this instance) or replacing it with a similar string (such as “azure-“) and doing their best effort in publishing non-taken packages under scopeless, similar package names.

@unsignedchar
30.03.2022 05:20 UTC
0

доверять коммитерам вида 123fqrt65o по-моему как минимум странно

Странно что злоумышленник не использовал какой то fake name generator.

@Assimilator
30.03.2022 05:28 UTC
+3

Достаточно будет например хакнуть одного из девелоперов популярного пакета и вписать депенденси. Все придурки авто-обновляющиеся на проде сразу заразятся. Вот вам и массовость.

@pae174
30.03.2022 05:19 UTC
0

TLTR:

Тайпсвоттеры добрались до репозитория пакетов. Будьте осторожны.

@c_denis_bh2
30.03.2022 06:29 UTC
+1

Никогда не любил бездонную node_modules :)

@AirLight
31.03.2022 11:21 UTC
0

Как-нибудь это будет решаться? Ограничивать количество уровней вложенности? Пореже обновлять версии? Делать для проверенных авторов, пакетов и версий бэджики с безопасностью? Какие-то канареечные релизы?

@AirLight
31.03.2022 11:24 UTC
-1

Видимо нужен какой-то новый менеджер пакетов, более консервативный, более строгий, более безопасный. Может быть даже платный. Корпорациям это нужно. Может быть из этого получится стартап, или может такие уже существуют.