В популярной библиотеке Ruby, проверяющей сложность паролей, найден бэкдор

8 июль, 2019 - 14:31

В популярной библиотеке Ruby, проверяющей сложность паролей, найден бэкдор

Механизм опасного бэкдора обнаружил разработчик Тут Коста (Tute Costa) в ходе штатных аудитов безопасности, которые он выполняет перед обновлением зависимостей, используемых внутри его рабочего приложения.

Вредоносный код проверяет, используется ли библиотека strong_password в тестовой или рабочей среде. Во втором случае он загружает Pastebin.com, портала текстового хостинга, и запускает вторую свою полезную нагрузку. Собственно она и создаёт бэкдор в приложениях и сайтах, использующих библиотеку strong_password.

Бэкдор отсылает веб-адрес каждого инфицированного сайта на smiley.zzz.com.ua и затем ожидает инструкций. Удалённые команды получаются через файлы куки, которые бэкдор распаковывает и пропускает через функцию eval (выполнение).

Такой механизм, по сути, позволяет хакеру запускать любой код внутри приложения с заражённой бэкдорои библиотекой.

Коста также выяснил, что хакер подставил себя на место реального разработчика этой библиотеки в главном репозитории пакетов языка Ruby, RubyGems.

Библиотека с бэкдором была загружена 547 раз. Кроме того, по статистике RubyGems, 537 пользователей сгрузили выпущенный хакером новый релиз этой библиотеки — 0.0.7.

Данный вредоносный код распространяется только через RubyGems и не был выложен в эккаунте этой библиотеки на GitHub. После уведомления владельцев и разработчиков этих ресурсов вредоносная версия была удалена с RubyGems в течении недели.

Это происшествие практически идентично инциденту, имевшему место в апреле. Тогда хакер внедрил бэкдор в библиотеку Ruby Bootstrap-Sass с практически идентичным механизмом приёма куки и проверки рабочей среды.