Более 40 вредоносных пакетов в RubyGems нацелены на разработчиков криптовалют и web3

Более 40 вредоносных пакетов в RubyGems нацелены на разработчиков криптовалют и web3

В публичном хранилище RubyGems обнаружено более 40 вредоносных пакетов для языка Ruby. Все они ориентированы на разработчиков криптовалютных проектов и сервисов web3. Названия копируют популярные библиотеки, поэтому установка выглядит обычной рутинной операцией. Пакеты публиковал один и тот же аккаунт, владелец которого называет себя Ghost Dev. Под видом утилит для защиты кошельков распространяется набор для кражи криптовалюты. Первым в поле зрения попал пакет, оформленный как средство защиты биткоин-кошелька, но внутри оказался целый комплект для хищения средств.

Описание

Внутри пакета лежит файл, замаскированный под скрипт сборки расширения Ruby. Настоящая задача - отложенный запуск вредоносного кода на машине разработчика. Перед активацией проверка выясняет, не запущен ли код в системе непрерывной сборки, в изолированной среде или в каталоге анализа. Похожие проверки касаются тестовых учётных записей и служебных окружений. Отдельно ищутся следы настоящей рабочей станции: ключи доступа, настройки системы контроля версий, учётные данные менеджеров пакетов и сведения о зависимостях проекта. Обычная рабочая машина и система сборки выглядят по-разному, и код это учитывает. Если признаки реального разработчика найдены, вредоносный код продолжает работу. Такая логика сильно затрудняет автоматический анализ.

Исследование OpenSourceMalware показало, что у набора две версии. Первая проще: одиннадцать пакетов из сорока с лишним содержат обратную оболочку. Так называют удалённое подключение, дающее оператору доступ к командной строке жертвы. Если проверки окружения пройдены, код уходит в фоновый режим и ждёт от двадцати до сорока минут. Затем он связывается с командным сервером и повторяет попытки каждые тридцать секунд. Финальные строки файла выглядят как штатные команды сборки, поэтому поверхностный просмотр ничего не выявляет. Получив доступ, злоумышленник распоряжается машиной разработчика по своему усмотрению.

Вторая версия, напротив, скачивает целый набор инструментов. В него входят скрипты на Python, расширение для браузера, установочный скрипт и поддельный корневой сертификат. Рядом лежат сертификаты под конкретные биржи и конфигурация целей. Комментарии в коде прямо описывают подмену буфера обмена, извлечение данных кошельков и утечку собранного. Установочный скрипт копирует набор в скрытый каталог в домашней папке пользователя. Поддельный корневой сертификат добавляется в список доверенных. В конфигурацию командной оболочки прописываются настройки прокси, а в автозапуск попадают два ярлыка. Один запускает перехватчик трафика, второй - сборщик данных кошельков. Права администратора для этого не нужны, что расширяет круг потенциальных жертв.

Перехватчик слушает локальный порт и обслуживает обычные и защищённые запросы браузера. Для посещаемых бирж он подменяет сертификаты и незаметно вставляет в страницы свой скрипт. При этом остальной защищённый трафик проходит без изменений. Вставленный скрипт распознаёт адреса в сетях Bitcoin, Ethereum, Tron, Solana и TON. Он следит за полями, в названиях которых есть слова про адрес, кошелёк, получателя, вывод средств или выплату. Подменяются как обычные формы, так и современные способы отправки данных. Найденный адрес получателя заменяется на кошелёк злоумышленника. Видимый текст и значения полей возвращаются к исходному виду на срок до двенадцати секунд. Сама страница при этом не меняется визуально, поэтому тревожных сигналов у пользователя не возникает. Жертва продолжает видеть правильный адрес, а средства уходят другому получателю.

Сборщик данных читает буфер обмена примерно каждые восемьсот миллисекунд. Обнаружив криптовалютный адрес, он отправляет его оператору и подменяет на свой. Так перехватываются адреса, скопированные в любом приложении, а не только в браузере. Кроме того, программа ищет данные кошельков в хранилищах расширений Chrome, Brave и Edge. В списке интересов - TronLink, MetaMask, Phantom, Binance, Coinbase и Trust Wallet. Отдельный сканер обходит пользовательские каталоги в поисках файлов, чьи названия содержат слова про кошелёк, резервную копию, парольную фразу или закрытый ключ. Найденные данные маскируются, кодируются и уходят на сервер злоумышленников. Утечка таких сведений опасна и спустя месяцы после заражения.

Конфигурация перечисляет почти тридцать бирж. В частности, среди целей - Binance, Coinbase, Kraken, OKX, Bybit, KuCoin, Gate.io, Bitfinex, Gemini, Upbit и Bitstamp. Это крупные и средние площадки, которыми пользуются и частные трейдеры, и компании. География целей охватывает Азию, Европу и США. Собранные сведения включают адреса, суммы, название биржи и похищенные секретные данные. Такой набор позволяет не только перехватить конкретный перевод, но и позже опустошить кошелёк. Для команд, которые ведут разработку и одновременно управляют активами, риск удваивается.

Тем не менее схема опирается на доверие к репозиторию пакетов, а не на уязвимости нулевого дня. Пока разработчики ставят библиотеки с похожими названиями, атака на цепочку поставок остаётся дешёвой и результативной. Проверять авторов и репутацию пакетов перед установкой - базовая мера. Для работы с крупными суммами разумнее держать отдельное устройство и аппаратный кошелёк. Двухфакторная аутентификация и ручная сверка адреса получателя заметно снижают риск подмены. Биржам и командам web3 стоит следить за составом зависимостей и регулярно пересматривать список доверенных сертификатов на машинах сотрудников.

Индикаторы компрометации

Комментарии: 0