URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 114823
[ Назад ]

Исходное сообщение
"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."

Отправлено opennews , 13-Июл-18 10:46 
Администраторы репозитория NPM уведомили (https://blog.npmjs.org/post/175824896885/incident-report-npm...) пользователей о компрометации (https://eslint.org/blog/2018/07/postmortem-for-malicious-pac...) пакетов eslint-scope (https://www.npmjs.com/package/eslint-scope) и eslint-config-eslint (https://www.npmjs.com/package/eslint-config-eslint), в которых поставлялся популярный анализатор JavaScript-кода, насчитывающий более 2 млн загрузок в неделю.

В результате получения контроля за учётными данными мэйнтейнера  eslint-scope злоумышленникам удалось (https://github.com/eslint/eslint-scope/issues/39) опубликовать обновление, содержащее троянский код. В процессе установки пакета с сайта pastebin.com загружался и запускался (https://gist.github.com/hzoo/51cb84afdc50b14bffa6c6dc49826b3e) скрипт (https://github.com/eslint/eslint-scope/issues/39#issuecommen...), который отправлял на внешний сервер содержимое файла ~/.npmrc, включающего токен для аутентификации в NPM. Данные отправлялись на серверы учёта статистики посещений "sstatic1.histats.com" и "c.statcounter.com" в составе параметра, указанного в HTTP-заголовке "Referer" (злоумышленники могли просмотреть захваченные токены через web-интерфейсы счётчиков посещений histats.com и statcounter.com).


Взлом учётной записи  разработчика был произведён путём использования одного и того же пароля на разных сайтах, на одном из которых произошла утечка базы пользователей. Сопоставив email разработчика злоумышленники смогли воспользоваться паролем для получения доступа к NPM. Троянская вставка присутствовала в версиях eslint-scope 3.7.2 и eslint-config-eslint 5.0.2.

По предварительным сведениям с момента публикации до блокировки вредоносного обновления (c 12:49 до 17:37 MSK 12 июля) злоумышленникам удалось получить токены для доступа к учётным записям примерно 4500 разработчиков. К счастью атака была оперативно пресечена (https://status.npmjs.org/incidents/dn7c1fgrr7ng) и администрация NPM заблокировала все токены аутентификации, выданные до 17:30 (MSK) 12 июля. Пользователям NPM необходимо обновить свои токены повторно выполнив процедуру аутентификации на сайте npmjs.com. Для усиления защиты своих учётных записей разработчикам модулей рекомендовано включить двухфакторную аутентификацию (https://blog.npmjs.org/post/166039777883/protect-your-npm-ac...). В промежуток времени с момента публикации вредоносного обновления до начала блокировки токенов достоверно подтверждённых попыток использования перехваченных токенов не  зафиксировано.

Предполагается, что компрометация пакета eslint-scope, как правило используемого для отладки других NPM-пакетов разработчиками, была первым этапом внедрения червя (https://jamie.build/how-to-build-an-npm-worm), использующего захваченные токены для внедрения вредоносного кода в новые модули. С учётом разветвлённой системы зависимостей в случае успеха атака могла иметь катастрофические последствия.

URL: https://blog.npmjs.org/post/175824896885/incident-report-npm...
Новость: https://www.opennet.dev/opennews/art.shtml?num=48960


Содержание

Сообщения в этом обсуждении
"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено Аноним , 13-Июл-18 10:46 
у меня дежавю

"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено Аноним , 13-Июл-18 17:52 
Тоже репозиторий Gentoo вспомнился?

"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено MPEG LA , 13-Июл-18 10:49 
>рекомендовано включить двухфакторную аутентификацию.

да сделайте ее обязательной уже!


"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено Аноняшка , 13-Июл-18 12:04 
...и с привязкой к паспорту, личной подписью майора, и трибуналом по результатам действия пользователей после аутентификакации))

"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено Константавр , 13-Июл-18 13:50 
Если это поможет остановить вредителей - то я только ЗА. Задолбали уже все эти проблемы. Вот бы уже прижали всё это дело.

"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено Аноним , 13-Июл-18 13:55 
> вредителей

тут главное понять, с какой они стороны

PS: 2fa есть не только через телефон, но и c помощью отдельностоящего приложения, генерящего последовательность псевдослучайных чисел. Поэтому, необязательно связываться ни с одними вредителями.


"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено Аноним , 13-Июл-18 15:01 
Двухфакторка бывает и в виде кода, генерируемого апликухой на мобильнике. FreeOTP подойдёт.

"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено Kuromi , 14-Июл-18 01:36 
U2F токены и WebAuthn забыли добавить.

"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено Kuromi , 14-Июл-18 01:36 
Да нахрена привязки к чему либо? Зачем по вашему Chrome и Firefox реализовывали WebAuthn? как раз таки (в том числе) для двухфакторной авторизации аппаратными токенами (FIDO U2F, FIDO2), которых на том же Амазоне - навалом.

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


"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено тов. майор , 16-Июл-18 07:05 
> которых на том же Амазоне - навалом.

ню-ню. Ты себе примерно представляешь последствия поимки тебя на почте с таким товаром?

(это если еще все пройдет гладко на американской таможне - потому что это вот тот самый экспорт сильной криптографии, который по сей день ограничен)


"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено Kuromi , 12-Авг-18 01:23 
А ничего что российский Аладдин выпускаеть Jacarta U2f? Боитесь покупать с Амазона - ну пожалуйста, покупайте здесь.

"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено Kuromi , 12-Авг-18 01:31 
Тем не менее, "поимка на почте" - очень маловероятна. Причина - визуально устройство не отличается от USB флешки.

Что же до госпаранойи...тут даже и не знаю что сказать. "Мы рождены чтоб Кафку сделать былью".


"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено Сталин , 05-Авг-18 13:40 
>и трибуналом по результатам действия пользователей после аутентификакации

зачем результаты? Просто расстреливать всех погромистов на ноде как врагов народа


"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено Аноним , 13-Июл-18 10:57 
А я вам всегда говорил вспомнити leftpad , но никто неприслушивался ко мне

"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено Пиони , 13-Июл-18 12:00 
Верно, нужно чаще прислушиваться к анонимам

"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено Аноняшка , 13-Июл-18 12:03 
...и к пони по имени Пиони))

"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено Аноняшка , 13-Июл-18 12:05 
leafpad лучше))

"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено mimocrocodile , 13-Июл-18 13:02 
Что бы мы без тебя делали, друг

"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено Аноним , 14-Июл-18 03:45 
говорил - значит и сделал гадость - пойдешь в подозреваемые

"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено Аноним , 13-Июл-18 11:21 
> При выполнении операции установки пакета с сайта pastebin.com загружался и запускался скрипт, который отправлял на внешний сервер содержимое файла ~/.npmrc

Вот это и есть корень зла. С какого перепугу скрипт, который фиг знает какой маньяк писал, имеет доступ в .npmrc? Chrootить такое надобно, ограничивая той папкой, в которую оно непосредственно гадит!


"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено J.L. , 13-Июл-18 12:41 
>> При выполнении операции установки пакета с сайта pastebin.com загружался и запускался скрипт, который отправлял на внешний сервер содержимое файла ~/.npmrc
> Вот это и есть корень зла. С какого перепугу скрипт, который фиг
> знает какой маньяк писал, имеет доступ в .npmrc? Chrootить такое надобно,
> ограничивая той папкой, в которую оно непосредственно гадит!

опа, тут есть адекватные люди, а не только "свидетели репозиториев и мантейнеров"
в андройде уже по дефолту всё подряд автоматом пихается в песочницу (дырки в песочнице - другой вопрос, так то однажды и ядро через пинг хакнут), стоит поучится на опыте тех, кто вынужден работать с иди^W пользователями


"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено Аноним , 14-Июл-18 01:21 
Ага, а на офтопике как засендбоксить? NPM же должен быть кроссплатформенный.

"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено Аноним , 14-Июл-18 08:05 
не чрутить. Нужна полноценная система изоляции с разрешениями для десктопов. В МС это понимают и делают.

"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено Аноняшка , 13-Июл-18 12:01 
> По счастливому стечению обстоятельств

А сколько обычных стечений обстоятельств уже украли ваши токены/пароли/сраные аккаунты сраного вконтакте?


"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено index0h , 13-Июл-18 12:16 
NPM без факапов 0 дней

"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено J.L. , 13-Июл-18 13:44 
> NPM без факапов 0 дней

это не факап NPM
> В результате получения контроля за учётными данными мэйнтейнера  eslint-scope


"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено Аноним , 13-Июл-18 13:57 
Не факт. Политика безопасности должна соответствовать важности сервиса. Если компрометация через юзеров происходит часто, значит в консерватории что-то не так.

"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено пох , 16-Июл-18 07:06 
угу - например, этих юзеров больше одного. Ну надо же!


"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено pull request , 13-Июл-18 13:03 
Никогда такого не было, и вот опять!

"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено Аноним , 13-Июл-18 18:00 
Я давно говорил что экосистема, завязанная на никем не проверяемых помойкорепозиториях и тулзах которые из них ставят любое говно подходящее по версии (pip, bundler, go, cargo, ...) не проверяя подписи и чексуммы - это рассадник малвари. А плюсовики ещё плачутся что у них этого гoвна нет.

"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено KonstantinB , 13-Июл-18 18:14 
А кто будет проверять каждый leftpad?

Решение давно известно - поднять свой npm-репозиторий, где хранить только проверенный код. Но это ж делать надо!


"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено Аноним , 13-Июл-18 21:36 
Ну я вообще подразумевал системные репозитории в которых есть дополнительный слой из мантейнеров, которые в лучшем случае всё досконально протестируют, в худшем хотя бы не пропустят откровенный шлак в виде какого-нибудь майнера. Кроме того, там обеспечивается предсказуемость и повторяемость сборок и проверяется целостность пакетов. Когда я делаю pkg install, мне не может прилететь свежачок с поломанной совместимостью выпущенный секунду назад, и мне не может по дороге провайдер в него подложить трояна. Мне прилетит либо то что проверил мантейнер и я лично проверил на тестовой машине, либо ничего. Питон, perl, php так замечательно живут испокон веков (басенки о несовместимостях и необходимости в pip и virtualenv оставлю дурачкам). А сейчас я вижу что и новоязы, несмотря на чудесность и полную самодостаточность их хайповых пакетных менеджеров появляются в виде системных пакетов:

https://repology.org/metapackages/?search=rust%3A
https://repology.org/metapackages/?search=go%3A

У JS-макак свой мир, конечно - в нормальной экосистеме модуль из одной строки никогда бы не стали использовать, да он бы и не появился. Но даже их это касается:

https://repology.org/metapackages/?search=node%3A

> Решение давно известно - поднять свой npm-репозиторий

И когда в каком-то модуле найдут проблемы, у вас он никогда не обновится, знаем-знаем.


"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено Сергей , 14-Июл-18 13:18 
Можно более подробно почему не нужен pip и virtualnv? Не совсем понял, что имели ввиду.

"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено Led , 15-Июл-18 04:28 
Если гвидобейсикокодеры ненужны, то зачем тогда нужны "pip и virtualnv"?

"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено Ordu , 15-Июл-18 05:46 
Ты путаешь системный пакетный менагер и пакетный менагер для девелопера. Это разные вещи, которые предназначены для решения разных задач. Мне как девелоперу нафиг не сдались системные библиотеки из debian'а, они протухли уже сейчас, а когда я допишу свой код, они даже пахнуть уже не будут, окаменеют. В то же время мне, как админу локалхоста, нафиг не сдался девелоперский пакетный менагер в качестве системного по причинам, которые собственно ты и озвучиваешь. И мне необходимо разделять их, потому что как девелоперу мне может требоваться несколько разных версий одной и той же библиотеки, иногда просто чтобы посмотреть скомпилируется ли. Иногда я гоняю тесты для нескольких версий депендансов. Вручную это делать убьёшься. Системные пакетные менагеры тут ничем помочь не могут, скорее под ногами путаются и мешают: вручную будет проще и быстрее, особенно если подпереть костыликами на bash. Собственно все эти pip/cargo и иже с ними именно эти задачи и решают: быстро накатить нужную версию, хочешь совсем-совсем новую, хочешь древнючую и устаревшую, на которую заточен тот код, который я где-то наковырял, и который не получал обновлений последние десять лет, чтобы я сначала мог бы его запустить, посмотреть как он работает, решить нужен ли он мне или нет, и только после этого заниматься (или не заниматься) апдейтом кода под актуальные версии библиотек.

Системный пакетный менагер и девелоперский -- это разные вещи. Веб-девелоперы же, так же как и ты, путают одно с другим, не отделяя разработку софта от деплоймента. И поэтому они получают то, что получают. У них и ещё более интересные баги бывают, типа нечаянно сделал drop table в продакшне, хотя всего лишь хотел пересоздать тестовую базу данных. Но на то они и веб-девелоперы.


"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено J.L. , 20-Июл-18 13:19 
> Ты путаешь системный пакетный менагер и пакетный менагер для девелопера.

познакомьтесь с nix


"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено KonstantinB , 16-Июл-18 10:48 
PHP без composer уже не живет. Ну, то есть можно, но бессмысленно. Но это так, между прочим.

В npm, помимо большего на порядки количества модулей (и микромодулей), есть еще одна специфика - каждый пакет тянет свои зависимости рекурсивно, независимо от остальных. И в одном проекте запросто может быть 10 разных невосместимых версий какого-нибудь leftpad-а. (Оставим в стороне дискуссии о разумности такого подхода). Мейнтенить такое принципиально невозможно - никаких разумных ресурсов не хватит.

Но, поскольку проблема актуальна, там придумали своего рода "постмодерацию" - npm audit.


"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено Аноним , 14-Июл-18 01:44 
В Go не все так плохо. Так каждый импорт пакета - это путь к Git-репозиторию. Централизованной репы нет, есть только стандартная либа, но она огорожена от васянов. А с левого репозитория что угодно может быть, такова жизнь ;)

"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено KonstantinB , 16-Июл-18 10:52 
Завязка на HEAD - это как раз одна из основных проблем управления зависимостями в Go.
(Я знаю, что уже есть несколько решений).

"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено smartypants , 17-Июл-18 01:46 
> When checking out or updating a package, get looks for a branch or tag that matches the locally installed version of Go. The most important rule is that if the local installation is running version "go1", get searches for a branch or tag named "go1". If no such version exists it retrieves the default branch of the package.

Матчасть, не?


"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено Аноним , 14-Июл-18 03:45 
Говорил? Значит будешь подозреваемым. Накаркал

"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено Аноним , 14-Июл-18 08:11 
Эту проблему уже сто раз поднимали. Но никто её фиксить не будет в официальных репах.

CTAN вообще ужасен, там ЧУЖОЙ пакет может подменить КТО УГОДНО. Мне очень страшно, когда miktex требует установки пакета. Потому что установка пакета там - это огромный бэкдор. Как шелб по неаутентифицированному телнету. Проблема поднята давно, но навоз и ныне там.

Та же хрень с pypi.


"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено Аноним , 15-Июл-18 11:07 
Аналогично. Всякие композеры и прочие идут в задницу - только ручной накат, с внимательным чтением чейнджлогов перед апдейтами. Да, не девопсненько, зато страхует от ряда весёлых приключений.

"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено Аноним , 15-Июл-18 12:33 
Как бы еще погромистам это объяснить :(

"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено gdsagdfhdfg , 15-Июл-18 19:39 
сначала заказчикам, программисты сами все поймут

"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено Аноним , 15-Июл-18 21:50 
> А плюсовики ещё плачутся что у них этого гoвна нет.

По моим наблюдениям, по поводу отсутствия в плюсках своего велопакетного менеджера плачутся-злорадствуют как раз те, кто на плюсах не пишет. Мол, у всех модно-молодёжных языков есть, а у C++ нет и поэтому плюсы -- окаменелое легаси, на котором ни в коем случае нельзя делать ничего нового.


"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено Аноним , 13-Июл-18 18:38 
А говорили такого не может быть, никогда-никогда честно

"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено Аноним , 14-Июл-18 00:18 
Лал. Опять любители автоматом тянуть всякий хлам страдают.

"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено your mom , 14-Июл-18 03:00 
Эххх, а ведь эта была заявка на настоящий БЫЛИННЫЙ отказ!!! Надо было админам еще денек потупить и потом оставшийся месяц (если не год) наслаждаться пылающими седалищами веб мак^W разработчиков!

Ну, ничего.


"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено Аноним , 14-Июл-18 08:10 
К сожалению, вредоносное ПО забыли нормально протестировать перед релизом.
Баги спасли нпм. Как иронична бывает судьба =)

"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено Аноним , 14-Июл-18 11:30 
Мне начинает казаться, что такие новости постят просто чтобы посмеяться

"В популярный NPM-модуль внедрено вредоносное ПО,..."
Отправлено arisu , 16-Июл-18 20:43 
а что, разве не так? O_O

"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено user90 , 14-Июл-18 15:48 
Йес! Я рад :) Нет вебне, жопоскриптерам - по заслугам! Да вообще 99% js так или иначе "вредоносен" для пользователя.

"В популярный NPM-модуль внедрено вредоносное ПО, копирующее ..."
Отправлено Аноним , 15-Июл-18 11:30 
А когда тоже самое случилось с Gentoo на днях, ты был рад? Осталось понять, причем тут js...