The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги | ]

13.07.2018 10:14  В популярный NPM-модуль внедрено вредоносное ПО, копирующее параметры аутентификации

Администраторы репозитория NPM уведомили пользователей о компрометации пакетов eslint-scope и eslint-config-eslint, в которых поставлялся популярный анализатор JavaScript-кода, насчитывающий более 2 млн загрузок в неделю и 59 млн суммарных загрузок. В результате получения контроля за учётными данными мэйнтейнера eslint-scope злоумышленникам удалось опубликовать обновление, содержащее троянский код.

При выполнении операции установки пакета, с сайта pastebin.com загружался и запускался скрипт, который отправлял на внешний сервер содержимое файла ~/.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 разработчиков. К счастью атака была оперативно пресечена и администрация NPM заблокировала все токены аутентификации, выданные до 17:30 (MSK) 12 июля. Пользователям NPM необходимо обновить свои токены повторно выполнив процедуру аутентификации на сайте npmjs.com. Для усиления защиты своих учётных записей разработчикам модулей рекомендовано включить двухфакторную аутентификацию. В промежуток времени с момента публикации вредоносного обновления до начала блокировки токенов достоверно подтверждённых попыток использования перехваченных токенов не зафиксировано.

Предполагается, что компрометация пакета eslint-scope, как правило используемого для отладки других NPM-пакетов разработчиками, была первым этапом внедрения червя, который мог использовать захваченные токены для внедрения вредоносного кода в новые модули. С учётом разветвлённой системы зависимостей в случае успеха атака могла иметь катастрофические последствия. Например, среди пользователей eslint-scope разработчики таких популярных проектов, как Yarn (48% всех загрузок в NPM), Babel (150 млн загрузок), jQuery (65 млн загрузок), CoffeeScript (50 млн загрузок). Данные пакеты используются как зависимости в тысячах других пакетов и проектов.

По счастливому стечению обстоятельств во вредоносном коде была допущена ошибка, которая приводила к сбою установки, если при определённых условиях поток для получения ответа на запрос к pastebin.com закрывался до окончания выполнения вызова eval(). Данная особенность сразу привлекла внимание пользователей пакета, которые начали разбирать код и менее чем через час после публикации вредоносного обновления отправили уведомление разработчикам.

  1. Главная ссылка к новости (https://blog.npmjs.org/post/17...)
  2. OpenNews: Применение тайпсквоттинга для распространения вредоносных модулей NPM, PyPI и Gems
  3. OpenNews: Выявлена попытка включения бэкдора в популярный NPM-пакет mailparser
  4. OpenNews: Незащищённость NPM к атакам по внедрению вредоносных модулей-червей
  5. OpenNews: Сбой антиспам-системы привёл к коллапсу в репозитории NPM
  6. OpenNews: Более половины npm-пакетов могли быть скомпрометированы из-за ненадёжных паролей доступа
Лицензия: CC-BY
Тип: Проблемы безопасности
Ключевые слова: npm
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.1, Аноним (-), 10:46, 13/07/2018 [ответить] [показать ветку] [···]    [к модератору]
  • +23 +/
    у меня дежавю
     
     
  • 2.26, Аноним (26), 17:52, 13/07/2018 [^] [ответить]    [к модератору]
  • –2 +/
    Тоже репозиторий Gentoo вспомнился?
     
  • 1.2, MPEG LA (ok), 10:49, 13/07/2018 [ответить] [показать ветку] [···]    [к модератору]
  • +1 +/
    >рекомендовано включить двухфакторную аутентификацию.

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

     
     
  • 2.15, Аноняшка (?), 12:04, 13/07/2018 [^] [ответить]    [к модератору]
  • +21 +/
    ...и с привязкой к паспорту, личной подписью майора, и трибуналом по результатам действия пользователей после аутентификакации))
     
     
  • 3.22, Константавр (ok), 13:50, 13/07/2018 [^] [ответить]    [к модератору]
  • –6 +/
    Если это поможет остановить вредителей - то я только ЗА. Задолбали уже все эти проблемы. Вот бы уже прижали всё это дело.
     
     
  • 4.23, Аноним (-), 13:55, 13/07/2018 [^] [ответить]     [к модератору]  
  • +1 +/
    тут главное понять, с какой они стороны PS 2fa есть не только через телефон, но... весь текст скрыт [показать]
     
  • 3.25, Аноним (25), 15:01, 13/07/2018 [^] [ответить]    [к модератору]  
  • +2 +/
    Двухфакторка бывает и в виде кода, генерируемого апликухой на мобильнике. FreeOTP подойдёт.
     
     
  • 4.35, Kuromi (ok), 01:36, 14/07/2018 [^] [ответить]    [к модератору]  
  • +/
    U2F токены и WebAuthn забыли добавить.
     
  • 3.34, Kuromi (ok), 01:36, 14/07/2018 [^] [ответить]     [к модератору]  
  • +/
    Да нахрена привязки к чему либо Зачем по вашему Chrome и Firefox реализовывали ... весь текст скрыт [показать]
     
     
  • 4.54, тов. майор (?), 07:05, 16/07/2018 [^] [ответить]     [к модератору]  
  • +1 +/
    ню-ню Ты себе примерно представляешь последствия поимки тебя на почте с таким т... весь текст скрыт [показать]
     
     
  • 5.63, Kuromi (ok), 01:23, 12/08/2018 [^] [ответить]    [к модератору]  
  • +/
    А ничего что российский Аладдин выпускаеть Jacarta U2f? Боитесь покупать с Амазона - ну пожалуйста, покупайте здесь.
     
  • 5.64, Kuromi (ok), 01:31, 12/08/2018 [^] [ответить]     [к модератору]  
  • +/
    Тем не менее, поимка на почте - очень маловероятна Причина - визуально устрой... весь текст скрыт [показать]
     
  • 3.62, Сталин (?), 13:40, 05/08/2018 [^] [ответить]    [к модератору]  
  • +/
    >и трибуналом по результатам действия пользователей после аутентификакации

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

     
  • 1.4, Аноним (4), 10:57, 13/07/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +3 +/
    А я вам всегда говорил вспомнити leftpad , но никто неприслушивался ко мне
     
     
  • 2.12, Пиони (?), 12:00, 13/07/2018 [^] [ответить]    [к модератору]  
  • +8 +/
    Верно, нужно чаще прислушиваться к анонимам
     
     
  • 3.14, Аноняшка (?), 12:03, 13/07/2018 [^] [ответить]    [к модератору]  
  • +2 +/
    ...и к пони по имени Пиони))
     
  • 2.16, Аноняшка (?), 12:05, 13/07/2018 [^] [ответить]    [к модератору]  
  • –2 +/
    leafpad лучше))
     
  • 2.19, mimocrocodile (?), 13:02, 13/07/2018 [^] [ответить]    [к модератору]  
  • +/
    Что бы мы без тебя делали, друг
     
  • 2.39, Аноним (39), 03:45, 14/07/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    говорил - значит и сделал гадость - пойдешь в подозреваемые
     
  • 1.11, Аноним (11), 11:21, 13/07/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +9 +/
    > При выполнении операции установки пакета с сайта pastebin.com загружался и запускался скрипт, который отправлял на внешний сервер содержимое файла ~/.npmrc

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

     
     
  • 2.18, J.L. (?), 12:41, 13/07/2018 [^] [ответить]     [к модератору]  
  • +1 +/
    опа, тут есть адекватные люди, а не только свидетели репозиториев и мантейнеров... весь текст скрыт [показать]
     
  • 2.33, Аноним (11), 01:21, 14/07/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    Ага, а на офтопике как засендбоксить? NPM же должен быть кроссплатформенный.
     
  • 2.40, Аноним (40), 08:05, 14/07/2018 [^] [ответить]    [к модератору]  
  • –2 +/
    не чрутить. Нужна полноценная система изоляции с разрешениями для десктопов. В МС это понимают и делают.
     
  • 1.13, Аноняшка (?), 12:01, 13/07/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    > По счастливому стечению обстоятельств

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

     
  • 1.17, index0h (ok), 12:16, 13/07/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +3 +/
    NPM без факапов 0 дней
     
     
  • 2.21, J.L. (?), 13:44, 13/07/2018 [^] [ответить]    [к модератору]  
  • +2 +/
    > NPM без факапов 0 дней

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

     
     
  • 3.24, Аноним (-), 13:57, 13/07/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Не факт. Политика безопасности должна соответствовать важности сервиса. Если компрометация через юзеров происходит часто, значит в консерватории что-то не так.
     
     
  • 4.55, пох (?), 07:06, 16/07/2018 [^] [ответить]    [к модератору]  
  • +/
    угу - например, этих юзеров больше одного. Ну надо же!

     
  • 1.20, pull request (?), 13:03, 13/07/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +6 +/
    Никогда такого не было, и вот опять!
     
  • 1.27, Аноним (27), 18:00, 13/07/2018 [ответить] [показать ветку] [···]     [к модератору]  
  • +3 +/
    Я давно говорил что экосистема, завязанная на никем не проверяемых помойкорепози... весь текст скрыт [показать]
     
     
  • 2.28, KonstantinB (ok), 18:14, 13/07/2018 [^] [ответить]    [к модератору]  
  • +/
    А кто будет проверять каждый leftpad?

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

     
     
  • 3.31, Аноним (27), 21:36, 13/07/2018 [^] [ответить]     [к модератору]  
  • +1 +/
    Ну я вообще подразумевал системные репозитории в которых есть дополнительный сло... весь текст скрыт [показать]
     
     
  • 4.45, Сергей (??), 13:18, 14/07/2018 [^] [ответить]    [к модератору]  
  • –2 +/
    Можно более подробно почему не нужен pip и virtualnv? Не совсем понял, что имели ввиду.
     
     
  • 5.47, Led (ok), 04:28, 15/07/2018 [^] [ответить]    [к модератору]  
  • +4 +/
    Если гвидобейсикокодеры ненужны, то зачем тогда нужны "pip и virtualnv"?
     
  • 4.48, Ordu (ok), 05:46, 15/07/2018 [^] [ответить]     [к модератору]  
  • +/
    Ты путаешь системный пакетный менагер и пакетный менагер для девелопера Это раз... весь текст скрыт [показать]
     
     
  • 5.60, J.L. (?), 13:19, 20/07/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    > Ты путаешь системный пакетный менагер и пакетный менагер для девелопера.

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

     
  • 4.56, KonstantinB (ok), 10:48, 16/07/2018 [^] [ответить]     [к модератору]  
  • +/
    PHP без composer уже не живет Ну, то есть можно, но бессмысленно Но это так, м... весь текст скрыт [показать]
     
  • 2.36, Аноним (11), 01:44, 14/07/2018 [^] [ответить]     [к модератору]  
  • –1 +/
    В Go не все так плохо Так каждый импорт пакета - это путь к Git-репозиторию Це... весь текст скрыт [показать]
     
     
  • 3.57, KonstantinB (ok), 10:52, 16/07/2018 [^] [ответить]    [к модератору]  
  • +/
    Завязка на HEAD - это как раз одна из основных проблем управления зависимостями в Go.
    (Я знаю, что уже есть несколько решений).
     
     
  • 4.59, smartypants (?), 01:46, 17/07/2018 [^] [ответить]     [к модератору]  
  • +/
    Матчасть, не ... весь текст скрыт [показать]
     
  • 2.38, Аноним (39), 03:45, 14/07/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    Говорил? Значит будешь подозреваемым. Накаркал
     
  • 2.42, Аноним (40), 08:11, 14/07/2018 [^] [ответить]     [к модератору]  
  • –1 +/
    Эту проблему уже сто раз поднимали Но никто её фиксить не будет в официальных р... весь текст скрыт [показать]
     
  • 2.49, Аноним (49), 11:07, 15/07/2018 [^] [ответить]    [к модератору]  
  • +/
    Аналогично. Всякие композеры и прочие идут в задницу - только ручной накат, с внимательным чтением чейнджлогов перед апдейтами. Да, не девопсненько, зато страхует от ряда весёлых приключений.
     
     
  • 3.51, Аноним (51), 12:33, 15/07/2018 [^] [ответить]    [к модератору]  
  • –1 +/
    Как бы еще погромистам это объяснить :(
     
     
  • 4.52, gdsagdfhdfg (?), 19:39, 15/07/2018 [^] [ответить]    [к модератору]  
  • +/
    сначала заказчикам, программисты сами все поймут
     
  • 2.53, Аноним (53), 21:50, 15/07/2018 [^] [ответить]     [к модератору]  
  • +/
    По моим наблюдениям, по поводу отсутствия в плюсках своего велопакетного менедже... весь текст скрыт [показать]
     
  • 1.30, Аноним (30), 18:38, 13/07/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    А говорили такого не может быть, никогда-никогда честно
     
  • 1.32, Аноним (49), 00:18, 14/07/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +1 +/
    Лал. Опять любители автоматом тянуть всякий хлам страдают.
     
  • 1.37, your mom (?), 03:00, 14/07/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Эххх, а ведь эта была заявка на настоящий БЫЛИННЫЙ отказ!!! Надо было админам еще денек потупить и потом оставшийся месяц (если не год) наслаждаться пылающими седалищами веб мак^W разработчиков!

    Ну, ничего.

     
     
  • 2.41, Аноним (41), 08:10, 14/07/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    К сожалению, вредоносное ПО забыли нормально протестировать перед релизом.
    Баги спасли нпм. Как иронична бывает судьба =)
     
  • 1.44, Аноним (44), 11:30, 14/07/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Мне начинает казаться, что такие новости постят просто чтобы посмеяться
     
     
  • 2.58, arisu (ok), 20:43, 16/07/2018 [^] [ответить]    [к модератору]  
  • +/
    а что, разве не так? O_O
     
  • 1.46, user90 (?), 15:48, 14/07/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Йес! Я рад :) Нет вебне, жопоскриптерам - по заслугам! Да вообще 99% js так или иначе "вредоносен" для пользователя.
     
     
  • 2.50, Аноним (26), 11:30, 15/07/2018 [^] [ответить]    [к модератору]  
  • +2 +/
    А когда тоже самое случилось с Gentoo на днях, ты был рад? Осталось понять, причем тут js...
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2018 by Maxim Chirkov  
    ДобавитьПоддержатьВебмастеруГИД  
    Hosting by Ihor