The OpenNET Project / Index page

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

В rest-client и ещё 10 Ruby-пакетах выявлен вредоносный код

20.08.2019 22:08

В популярном gem-пакете rest-client, насчитывающем в сумме 113 миллионов загрузок, выявлена подстановка вредоносного кода (CVE-2019-15224), который загружает исполняемые команды и отправляет информацию на внешний хост. Атака была произведена через компрометацию учётной записи разработчика rest-client в репозитории rubygems.org, после чего злоумышленники 13 и 14 августа опубликовали выпуски 1.6.10-1.6.13, включающие вредоносные изменения. До блокировки вредоносных версий их успели загрузить около тысячи пользователей (атакующие чтобы не привлекать внимание выпустили обновления старых версий).

Вредоносное изменение переопределяет метод "#authenticate" в классе Identity, после чего каждый вызов метода приводит к отправке переданного при попытке аутентификации email и пароля на хост злоумышленников. Таким образом осуществляется перехват параметров входа пользователей сервисов, использующих класс Identity и установивших уязвимую версию библиотеки rest-client, которая фигурирует в качестве зависимости во многих популярных Ruby-пакетах, включая ast (64 млн загрузок), oauth (32 млн), fastlane (18 млн) и kubeclient (3.7 млн).

Кроме того, в код добавлен бэкдор, позволяющий выполнить произвольный Ruby-код через функцию eval. Код передаётся через Cookie, заверенную ключом атакующего. Для информирования злоумышленников об установке вредоносного пакета на внешний хост отправляется URL системы жертвы и подборка сведений об окружении, таких как сохранённые пароли к СУБД и облачным службам. C использованием вышеотмеченного вредоносного кода зафиксированы попытки загрузки скриптов для майтинга криптовалюты.

После изучения вредоносного кода было выявлено, что аналогичные изменения присутствуют ещё в 10 пакетах в Ruby Gems, которые не были захвачены, а специально подготовлены злоумышленниками на базе других популярных библиотек с похожими именами, в которых тире было заменено на подчёркивание или наоборот (например, на базе cron-parser создан вредоносный пакет cron_parser, а на базе doge_coin вредоносный пакет doge-coin). Проблемные пакеты:

Первый вредоносный пакет из данного списка был размещён 12 мая, но большая часть появилась в июле. В сумме указанные пакеты успели загрузить около 2500 раз.

Дополнение: Разработчик rest-client уточнил, что злоумышленники смогли захватить управление его учётной записью из-за использования ненадёжного пароля, который был в обиходе более 10 лет и кроме rubygems.org применялся на других сайтах, некоторые из которых ранее подвергались взломам и утечкам пользовательских баз.

  1. Главная ссылка к новости (https://news.ycombinator.com/i...)
  2. OpenNews: Зафиксирована подстановка вредоносного кода в Ruby-пакет Strong_password
  3. OpenNews: В Ruby-библиотеке bootstrap-sass выявлен бэкдор
  4. OpenNews: В каталоге PyPI выявлены вредоносные пакеты
  5. OpenNews: Применение тайпсквоттинга для распространения вредоносных модулей NPM, PyPI и Gems
  6. OpenNews: В зависимостях к npm-пакету с установщиком PureScript выявлены вредоносные изменения
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/51321-ruby
Ключевые слова: ruby, gem
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (19) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, ещеразпривет (?), 23:13, 20/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    привет девопсам с докерами
    неслышавшим про иптаблесы (из соседней ветки) ;)
     
     
  • 2.4, kai3341 (ok), 23:35, 20/08/2019 [^] [^^] [^^^] [ответить]  
  • +11 +/
    Осталось всего 2 недели, и интернет наконец освободится от передающих приветы в соседние ветки
     
     
  • 3.5, Клыкастый (ok), 23:37, 20/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Это если они учиться будут.
     
  • 2.13, Аноним (13), 10:05, 21/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > привет девопсам с докерами
    > Разработчик rest-client уточнил, что злоумышленники смогли захватить управление его учётной записью из-за использования ненадёжного пароля, который был в обиходе более 10 лет

    Казалось бы, причём здесь докер.

     
     
  • 3.14, привет (?), 10:17, 21/08/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    докер ни при чем, конечно.
    он указан чисто как показатель уровня
    развития товарищей неспособных заранее
    предусмотреть подобную ситуацию и, тем более,
    попытаться ее смультигейтить.

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

    и да, дело опять же не в Ruby :)


     
     
  • 4.17, Аноним (13), 15:50, 21/08/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Каким образом докер может показать какой-то уровень?
     
  • 4.19, Водитель маршрутки (?), 19:47, 21/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо, мы поняли, что деле было не в бобине...   в ведущем проекта. Мало смузи было, и тупые прогеры не подворачивали, мы тебе сочувствуем всей маршруткой.
     

  • 1.2, n1rdeks (ok), 23:14, 20/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Как славно. Ситуация принимает массовый оборот.
    Похоже, взрослым дядям придётся дать детям алгоритм защиты (или его придумать) от подобных ситуаций.
     
     
  • 2.3, kai3341 (ok), 23:31, 20/08/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Чисто человеческий фактор. Хотя на pypi заменять релиз нельзя
     
     
  • 3.20, Аноним (20), 21:25, 21/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    На pypi нет цифровых подписей и можно выпустить новый релиз. А блокировка версий лишь конфликты плодит. Тут всю систему менять надо.
     
     
  • 4.21, kai3341 (ok), 00:32, 22/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Какие конфликты плодит блокировка версии?
    Как нужно менять систему? Может, у вас есть удачные примеры?
     

  • 1.6, Аноним (6), 02:48, 21/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ну это нормально...
     
  • 1.8, б.б. (?), 04:37, 21/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > Атака была произведена через компрометацию учётной записи разработчика rest-client в репозитории rubygems.org, после чего злоумышленники 13 и 14 августа опубликовали выпуски 1.6.10-1.6.13,

    а цЫфровая подпись?

     
  • 1.9, Аноним (9), 06:07, 21/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Привет сердитым коллегам из соседней ветки. Сабж ведь не на sourceforge, так?
     
  • 1.10, лютый жабист__ (?), 06:28, 21/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    И за много лет ни одной новости про компрометацию библиотек java. Сразу видно, кто хипсторы, а кто папка.
     
     
  • 2.11, жаба фу (?), 09:23, 21/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ну да, согласен, видно, кто хипарь вонючий, а кто папка жиром заплывший.
     
  • 2.12, анон (?), 10:02, 21/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    видимо потому, что твоя жаба никому на_фиг не вс_ралась (кроме ынтырпрайза)
     
     
  • 3.15, 1 (??), 12:36, 21/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    нда ... прям классический пример двоемыслия
     
  • 2.16, Аноним (16), 14:43, 21/08/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >И за много лет ни одной новости про компрометацию библиотек java

    Как и библиотек COBOL'a и прочих окаменелостей.

     

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



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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