Xakep #305. Многошаговые SQL-инъекции
На этой неделе сотрудники RubyGems очистили репозиторий от 18 вредоносных версий 11 библиотек, в которых был обнаружен бэкдор, использовавшийся для запуска криптовалютных майнеров в Ruby-проектах пользователей.
Впервые вредоносный код был обнаружен в четырех версиях популярной библиотеки rest-client. Так, голландский разработчик Ян Динтел (Jan Dintel) пишет, что найденный в rest-client код, собирает и отправляет URL-адреса и различные переменные окружения на украинский сервер. В зависимости от настроек, к этой информации также могли добавиться учетные данные от различных сервисов, которыми пользовалась жертва, например, от БД или платежных систем.
Кроме того, обнаруженный код содержал бэкдор, который позволял злоумышленнику передавать обратно файлы cookie, за счет чего атакующий получал возможность выполнения вредоносных команд.
Основываясь на этих сообщениях, сотрудники RubyGems повели собственное расследование и выявили подобный вредоносный код в 10 других проектах, сообщив, что злоумышленники используют его для добычи криптовалюты. Бэкдоры обнаружили в составе следующих библиотек:
- rest-client:6.10 (скачана 176 раз с 13 августа 2019 года), 1.6.11 (скачана 2 раза с 14 августа 2019 года), 1.6.12 (скачана 3 раза с 14 августа 2019 года) и 1.6.13 (скачана 1061 раз с 14 августа 2019 года);
- bitcoin_vanity:3.3 (скачана 8 раз с 12 мая 2019 года);
- lita_coin:0.3 (скачана 210 раз с 17 июля 2019 года);
- coming-soon:2.8 (скачана 211 время с 17 июля 2019 года);
- omniauth_amazon:0.1 (скачана 193 раза с 26 июля 2019 года);
- cron_parser:1.4 (скачана 2 раза с 8 июля 2019 года), 1.0.12 (скачана 3 раза с 8 июля 2019 года) и 1.0.13 (скачана 248 раз с 8 июля 2019 года) ;
- coin_base:2.1 (скачана 206 раз с 9 июля 2019 года) и 4.2.2 (скачана 218 раз с 16 июля 2019 года);
- blockchain_wallet:0.6 (скачана 201 раз с 10 июля 2019 года) и 0.0.7 (скачана 222 раза с 16 июля 2019 года);
- awesome-bot:18.0 (скачана 232 раза с 15 июля 2019 года);
- doge-coin:0.2 (скачано 213 раз с 17 июля 2019 года);
- capistrano-colors:5.5 (скачано 175 раз с 1 августа 2019 года).
Все вредоносные библиотеки, кроме rest-client, были созданы очень просто: злоумышленники брали за основу другую полнофункциональную библиотеку, добавляли в нее бэкдор и заново загружали в RubyGems под новыми именем. Стоящий за этой схемой человек или группа лиц, были активны более месяца, прежде чем их действия обнаружили.
В случае с rest-client все вышло иначе. На этот раз злоумышленники сумели получить доступ к учетной записи одного из разработчиков на RubyGems, и воспользовались этим для загрузки в репозиторий четырех вредоносных версий rest-client. Разработчики признаются, что дело было в ненадежном, неуникальном пароле, который попал в открытый доступ в составе какой-то утечки данных.
Но атаковав столь крупный проект (rest-client насчитывает более 113 миллионов загрузок на RubyGems), хакеры привлекли к себе внимание. В результате, уже через несколько часов после обнаружения малвари в составе rest-client, все 18 версий вредоносных библиотек, которые успели загрузить более 3500 раз, были удалены из RubyGems.
Замечу, что это далеко не первый случай такого рода. К примеру, весной текущего года, бэкдор был обнаружен в другой популярной Ruby-библиотеке — Bootstrap-Sass. Тогда внедрение малвари тоже произошло из-за компрометации одного из разработчиков.
Кроме того, нужно сказать, что на этой неделе малварь обнаружили и в репозитории npm. Как оказалось, все версии пакета bb-builder содержали вредоносный код, который похищал с зараженной машины все секреты и ключи. Здесь речь тоже идет о компрометации учетной записи разработчика, причем взлом оставался незамеченным более года.