В популярном gem-пакете rest-client (https://rubygems.org/gems/rest-client), насчитывающем в сумме 113 миллиона загрузок, выявлена (https://github.com/rest-client/rest-client/issues/713) подстановка вредоносного кода (CVE-2019-15224), который загружает исполняемые команды и отправляет информацию на внешний хост. Атака была произведена через компрометацию (https://github.com/rest-client/rest-client/issues/713#issuec...) учётной записи разработчика rest-client в репозитории rubygems.org, после чего злоумышленники 13 и 14 августа опубликовали выпуски 1.6.10-1.6.13, включающие вредоносные изменения. До блокировки вредоносных версий их успели загрузить около тысячи пользователей (атакующие чтобы не привлекать внимание выпустили обновления старых версий).Вредоносное изменение переопределяет метод "#authenticate" в классе
Identity, после чего каждый вызов метода приводит к отправке переданного при попытке аутентификации email и пароля на хост злоумышленников. Таким образом осуществляется перехват параметров входа пользователей сервисов, использующих класс Identity и установивших уязвимую версию библиотеки rest-client, которая фигурирует (https://rubygems.org/gems/rest-client/reverse_dependencies) в качестве зависимости во многих популярных Ruby-пакетах, включая ast (64 млн загрузок), oauth (32 млн), fastlane (18 млн) и kubeclient (3.7 млн).
Кроме того, в код добавлен бэкдор, позволяющий выполнить произвольный Ruby-код через функцию eval. Код передаётся через Cookie, заверенную ключом атакующего. Для информирования злоумышленников об установке вредоносного пакета на внешний хост отправляется URL системы жертвы и подборка сведений об окружении, таких как сохранённые пароли к СУБД и облачным службам. C использованием вышеотмеченного вредоносного кода зафиксированы попытки загрузки скриптов для майтинга криптовалюты.После изучения вредоносного кода было выявлено (https://github.com/rubygems/rubygems.org/issues/2097), что аналогичные изменения присутствуют ещё в 10 пакетах (https://github.com/rubygems/rubygems.org/wiki/Gems-yanked-an...) в Ruby Gems, которые не были захвачены, а специально подготовлены злоумышленниками на базе других популярных библиотек с похожими именами, в которых тире было заменено на подчёркивание или наоборот (например, на базе cron-parser (https://rubygems.org/gems/cron-parser) создан вредоносный пакет cron_parser, а на базе doge_coin (https://rubygems.org/gems/doge_coin) вредоносный пакет doge-coin). Проблемные пакеты:
- coin_base (https://rubygems.org/gems/coin_base): 4.2.2, 4.2.1
- blockchain_wallet (https://rubygems.org/gems/blockchain_wallet): 0.0.6, 0.0.7
- awesome-bot (https://rubygems.org/gems/awesome-bot): 1.18.0
- doge-coin (https://rubygems.org/gems/doge-coin): 1.0.2
- capistrano-colors (https://rubygems.org/gems/capistrano-colors): 0.5.5
- bitcoin_vanity (https://rubygems.org/gems/bitcoin_vanity): 4.3.3
- lita_coin (https://rubygems.org/gems/lita_coin): 0.0.3
- coming-soon (https://rubygems.org/gems/coming-soon): 0.2.8
- omniauth_amazon (https://rubygems.org/gems/omniauth_amazon): 1.0.1
- cron_parser (https://rubygems.org/gems/cron_parser): 1.0.12, 1.0.13, 0.1.4
Первый вредоносный пакет из данного списка был размещён 12 мая, но большая часть появилась в июле. В сумме указанные пакеты успели загрузить около 2500 раз.
URL: https://news.ycombinator.com/item?id=20745768
Новость: https://www.opennet.me/opennews/art.shtml?num=51321
привет девопсам с докерами
неслышавшим про иптаблесы (из соседней ветки) ;)
Осталось всего 2 недели, и интернет наконец освободится от передающих приветы в соседние ветки
Это если они учиться будут.
> привет девопсам с докерами
> Разработчик rest-client уточнил, что злоумышленники смогли захватить управление его учётной записью из-за использования ненадёжного пароля, который был в обиходе более 10 летКазалось бы, причём здесь докер.
докер ни при чем, конечно.
он указан чисто как показатель уровня
развития товарищей неспособных заранее
предусмотреть подобную ситуацию и, тем более,
попытаться ее смультигейтить.одно время я вел проект на руби, кстати,
и заставлял прогов использовать фильтрующий
прокси, сильно сомневаюсь, что сейчас
там это есть.и да, дело опять же не в Ruby :)
Каким образом докер может показать какой-то уровень?
Спасибо, мы поняли, что деле было не в бобине... в ведущем проекта. Мало смузи было, и тупые прогеры не подворачивали, мы тебе сочувствуем всей маршруткой.
Как славно. Ситуация принимает массовый оборот.
Похоже, взрослым дядям придётся дать детям алгоритм защиты (или его придумать) от подобных ситуаций.
Чисто человеческий фактор. Хотя на pypi заменять релиз нельзя
На pypi нет цифровых подписей и можно выпустить новый релиз. А блокировка версий лишь конфликты плодит. Тут всю систему менять надо.
Какие конфликты плодит блокировка версии?
Как нужно менять систему? Может, у вас есть удачные примеры?
ну это нормально...
> Атака была произведена через компрометацию учётной записи разработчика rest-client в репозитории rubygems.org, после чего злоумышленники 13 и 14 августа опубликовали выпуски 1.6.10-1.6.13,а цЫфровая подпись?
Привет сердитым коллегам из соседней ветки. Сабж ведь не на sourceforge, так?
И за много лет ни одной новости про компрометацию библиотек java. Сразу видно, кто хипсторы, а кто папка.
Ну да, согласен, видно, кто хипарь вонючий, а кто папка жиром заплывший.
видимо потому, что твоя жаба никому на_фиг не вс_ралась (кроме ынтырпрайза)
нда ... прям классический пример двоемыслия
>И за много лет ни одной новости про компрометацию библиотек javaКак и библиотек COBOL'a и прочих окаменелостей.