Всё начинается с публикации вакансии в тематических чатах. Тексты объявлений могут быть самыми разными, но все они так или иначе связаны с Web3 и блокчейном. Обязательно требуется кандидат с опытом работы с криптовалютой, желательно от нескольких лет. Зарплату предлагают вполне рыночную — ничего подозрительного.
В описании вакансии указывают реально существующую компанию. В процессе общения «HR» без стеснения показывает свой профиль в LinkedIn, сайт компании и всячески демонстрирует, что компания настоящая. Так и есть — вот только сам он к ней никакого отношения не имеет.
После непродолжительной переписки и созвона оказывается, что кандидат полностью устраивает работодателя, и остаётся лишь выполнить тестовое задание. Причём даже не бесплатно! 😃
После получения согласия присылают ссылку на GitLab-репозиторий. Хотя он создан совсем недавно, за пару дней у него уже набирается около тысячи загрузок. В самом коде проекта ничего подозрительного нет, однако среди зависимостей присутствует пакет, который и содержит вредоносную нагрузку.
Во время установки этого пакета запускается хук, который загружает код стилера с GitHub, проверяет, не выполняется ли он в виртуальной машине, а затем начинает сканировать систему в поисках криптокошельков:
MetaMask, Phantom, Trust Wallet, Coinbase Wallet, OKX Wallet, Rabby, Solflare, SafePal, Station Wallet, Binance Wallet, TronLink, Kaia Wallet, Argent X, Auro Wallet и Sui Wallet.Кроме того, стилер собирает SSH-ключи, сессионные файлы Telegram, cookies из браузеров, различные конфигурационные файлы из домашнего каталога, а также файлы вроде
credentials, accessTokens, azureProfile, FileZilla, .mylogin.cnf, .pgpass, .env и многое другое.После сбора данных они упаковываются в архив, слегка шифруются и отправляются через Telegram в специальный канал для дальнейшей обработки 🗿
После отправки жалоб в различные инстанции удалось добиться следующих результатов:
1. Администратор группы заблокировал в личных сообщениях с отправкой репорта. При этом вакансию из канала он не удалил, а из чата её, предположительно, удалил сам мошенник ещё до того, как админ получил сообщение.
2. GitLab никак не отреагировал, репозиторий всё ещё на месте.
3. GitHub удалил все репозитории, связанные с данной атакой.
4. NPM никак не отреагировал, вредонос всё ещё доступен.
5. Контакты одной жертвы удалось легко найти, однако ответа не последовало.
6. Токен Telegram-бота, через которого отправлялись собранные данные, был отозван.
7. Сам злоумышленник от дополнительных комментариев отказался.
И что с этим дальше делать? 🤨
Много разных советов можно дать, чтобы снизить риск supply chain-атак. Но, пожалуй, главное — запускать чужой код только в изолированной среде: виртуальной машине, отдельном контейнере или хотя бы под отдельным пользователем. Не доверять количеству загрузок и звёздочек у репозитория. Проверять
preinstall, install и postinstall-скрипты, а также не торопиться — особенно если вас пытаются торопить.Главное помнить, что сегодня опасность представляет не только исполняемый файл. Одной команды
npm install, pip install или cargo build иногда достаточно, чтобы на машине выполнился код, который вы даже не увидите при беглом просмотре репозитория 🫠
