npm ERR! 404 Не найдено: <a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="294c5f4c475d045a5d5b4c4844691a071a071f">[email protected]</a> - программирование
Подтвердить что ты не робот

npm ERR! 404 Не найдено: [email protected]

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

npm ERR! 404 Не найдено: [email protected]

4b9b3361

Ответ 1

TL;DR;

Святая корова! Оказывается, пакет событий-потока имел уязвимость, которая позволяла хакеру красть биткойн.

Чтобы исправить это, вам необходимо обновить пакет event-stream.

  1. Удалите папку node_modules.
  2. Удалите файл package-lock.json.
  3. Запустите npm install.

Это должно обновить ваши пакеты до безопасной версии, и вам должно быть хорошо идти.

И вот официальный ответ блога НПМ:

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

Утром 26 ноября команда безопасности npms была уведомлена о вредоносном пакете, который пробился в поток событий, популярный пакет npm. После обработки вредоносной программы npm Security ответила удалением flatmap-stream и [email protected] из реестра и взяла на себя ответственность за пакет событий-потоков, чтобы предотвратить дальнейшее злоупотребление.

Вредоносным пакетом была версия 0.1.1 flatmap-потока. Этот пакет был добавлен как прямая зависимость пакета событий-потока от нового сопровождающего 9 сентября 2018 года в версии 3.3.6. Пакет event-stream широко используется, но вредоносный код предназначен для разработчиков в компании с очень специфической настройкой среды разработки: запуск полезной нагрузки в любой другой среде не влияет. Этот специфический таргетинг означает, что, в конечном счете, большинство разработчиков не пострадают, даже если они ошибочно установили вредоносный модуль.

Код, введенный в программу, предназначен для приложения Copay. Когда разработчик Copay запускает один из своих сценариев сборки релизов, полученный код изменяется до того, как он будет включен в приложение. Код был разработан для сбора сведений о счете и закрытых ключей с учетных записей, имеющих баланс более 100 биткойнов или 1000 биткойнов.

Первоначальный ответ Copays заключался в том, что никакие сборки, содержащие этот вредоносный код, не были опубликованы для общественности, но теперь у нас есть подтверждение от Copay, что "вредоносный код был развернут в версиях с 5.0.2 до 5.1.0".

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

Технические детали Вот некоторые технические подробности, о которых мы знаем, для тех, кто вас интересует.

Введенный код:

Чтение в AES зашифрованных данных из файла, замаскированного под тестовое приспособление. Схватил описание пакета npm модуля, который его импортировал, используя автоматически заданную переменную среды. Использовал описание пакета в качестве ключа для дешифрования фрагмента данных, извлеченных из замаскированного файла Дешифрованные данные были частью модуля, который затем был скомпилирован в память и выполнен.

Этот модуль выполнил следующие действия:

Расшифровка другого фрагмента данных из замаскированного файла. Конкатенация небольшого префикса с комментариями из первого расшифрованного фрагмента до конца второго расшифрованного фрагмента. Выполнены небольшие задачи декодирования, чтобы преобразовать объединенный блок кода из недействительного JS в действительный JS (мы считаем, что это было сделано для предотвращения обнаружения с помощью инструментов динамического анализа) Написал этот обработанный блок JS в файл, хранящийся в зависимости, который будет упакован сценариями сборки: кусок кода, который был выписан, был фактическим вредоносным кодом, предназначенным для запуска на устройствах, принадлежащих конечным пользователям Copay.

Этот код будет делать следующее:

Обнаружение текущей среды: Mobile/Cordova/Electron. Проверка остатков на биткойне и биткойне. Остатки денежных средств на счету жертвы. Если текущий баланс был больше 100 биткойнов или 1000 биткойнов на наличных деньгах: полностью собрать данные об учетной записи жертв. Убирать жертвы. Отправлять данные учетной записи жертв/закрытые ключи в службу сбора, запущенную на 111.90.151.134. Для пользователей приложения Copay bitpay рекомендует: "Если вы используете любую версию с 5.0.2 до 5.1.0, вы не должны запускать или открывать приложение Copay".

Для пользователей npm вы можете проверить, содержит ли ваш проект уязвимую зависимость, запустив проверку npm. Если вы установили влиятельную версию этого потока событий, мы рекомендуем как можно скорее обновить его до более поздней версии.

Ответ 2

Следуйте нижеприведенным методам:

  1. Удалить файлы node_modules и package_lock.json

  2. Запустить поток событий списка npm

  3. Запустить аудит npm
  4. Запустите проверку кеша npm
  5. Запустите npm install
  6. Запустите git add. (добавьте необходимые файлы)
  7. Запустите git commit (зафиксируйте ваши изменения)
  8. Запустите git push (нажмите ваш код)

Ответ 4

Я решаю эту проблему с помощью следующих шагов:

  1. откройте свой последний журнал для этой ошибки в /node_cache/_logs/xxxx-xx-xxx-debug.log
  2. узнать корень листа event-stream, например:


    45 silly saveTree +-- [email protected]
    45 silly saveTree | +-- [email protected]
    45 silly saveTree | +-- [email protected]
    45 silly saveTree | | '-- [email protected]
    45 silly saveTree | |   '-- [email protected]
    45 silly saveTree | |     +-- [email protected]
    45 silly saveTree | |     +-- [email protected]
    45 silly saveTree | |     +-- [email protected]
    45 silly saveTree | |     '-- [email protected]

  1. в этом случае корнем является nodemon, так что вы можете исправить это: npm install [email protected]
  2. npm успешно установлен

Ответ 5

На самом деле нам не нужно обновлять все пакеты, которые зависят от [email protected]

Вы можете открыть package-lock.json, удалить все ссылки на поток событий и снова вызвать npm install. Это будет быстрее.

После этого npm shrinkwrap && mv npm-shrinwrap.json package-lock.json должен обновить только ссылки на поток событий, а не весь файл.

Ответ 6

Я обновил npm-run-all с 4.1.3 до 4.1.5 в package.json (удалите в потоке событий файла блокировки). Затем установите npm.