В RubyGems выявлено 724 вредоносных пакета
22 апреля 2020 года
Компания ReversingLabs опубликовала результаты анализа применения тайпсквоттинга в репозитории RubyGems. Обычно тайпсквоттинг применяется для распространения вредоносных пакетов, рассчитанных на то, что невнимательный разработчик при поиске допустит опечатку или не заметит разницы. В ходе исследования было выявлено более 700 пакетов, названия которых схожи с популярными пакетами и отличаются незначительными деталями, например, заменой похожих букв или использованием подчёркивания вместо тире.
В более чем 400 пакетах были обнаружены компоненты, подозреваемые в совершении вредоносных действий. В частности, внутри находился файл aaa.png, включающий исполняемый код в формате PE. Указанные пакеты были связаны с двумя учётными записями, через которые с 16 по 25 февраля 2020 года в RubyGems было размещено 724 вредоносных пакета, которые в сумме были загружены около 95 тысяч раз. Исследователи проинформировали администрацию RubyGems и выявленные вредоносные пакеты уже удалены из репозитория.
Из выявленных проблемных пакетов наиболее популярным оказался "atlas-client", который на первый взгляд практически неотличим от легитимного пакета "atlas_client". Указанный пакет был загружен 2100 раз (нормальный пакет при этом был загружен 6496 раз, т.е. пользователи ошибались почти в 25% случаях). Остальные пакеты в среднем были загружены 100-150 раз и камуфлировались под другие пакеты с использованием схожей техники замены подчёркивания и тире (например, среди вредоносных пакетов: appium-lib, action-mailer_cache_delivery, activemodel_validators, asciidoctor_bibliography, assets-pipeline, apress_validators, ar_octopus-replication-tracking, aliyun-open_search, aliyun-mns, ab_split, apns-polite).
Вредоносные пакеты включали в себя PNG-файл, в котором вместо изображения размещался исполняемый файл для платформы Windows. Файл был сформирован при помощи утилиты Ocra Ruby2Exe и включал самораспаковывающийся архив с Ruby-скриптом и интерпретатором Ruby. При установке пакета файл png переименовывался в exe и запускался. В ходе выполнения создавался и добавлялся в автозапуск файл с VBScript. Указанный вредоносный VBScript в цикле анализировал содержимое буфера обмена на предмет наличия информации, напоминающей адреса криптокошельков, и в случае выявления подменял номер кошелька с расчётом на то, что пользователь не заметит отличий и переведёт средства не на тот кошелёк.
Проведённое исследование показало, что не представляет труда добиться добавления вредоносных пакетов в один из самых популярных репозиториев и данные пакеты могут оставаться незамеченными, несмотря на значительное число загрузок. Следует отметить, что проблема не специфична для RubyGems и касается других популярных репозиториев. Например, в прошлом году те же исследователи выявили в репозитории NPM вредоносный пакет bb-builder, использующий аналогичную технику запуска исполняемого файла для кражи паролей. До этого бэкдор был найден в зависимости к NPM-пакету event-stream и вредоносный код был загружен около 8 млн раз. Вредоносные пакеты также периодически всплывают в репозитории PyPI.
Источники
[править]
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии[править]
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.