npm Worm крадет криптографические ключи, нацеливается на 19 пакетов

LiveBTCNews
BTC4,42%
ETH6,87%
SOL8,45%

Самовоспроизводящийся червь npm под названием SANDWORM_MODE поражает более 19 пакетов, собирая приватные ключи, мнемоники BIP39, файлы кошельков и API-ключи LLM из сред разработки.

Живая атака на цепочку поставок npm охватывает сейчас среды разработчиков. Команда Threat Research от Socket обнаружила то, что она обозначает как SANDWORM_MODE — самовоспроизводящийся червь, распространяющийся по крайней мере на 19 вредоносных пакетов npm, связанных с двумя псевдонимами издателей. Как отметила команда SocketSecurity в X, это активная атака на цепочку поставок, крадущая секреты разработки и CI, внедряющая рабочие процессы GitHub, отравляющая инструменты ИИ и собирающая API-ключи LLM.

Кампания напрямую заимствует идеи у семейства червей Shai-Hulud. Сначала идут приватные ключи. Без временных ограничений, без задержек. Обнаруженные криптоартефакты при импорте немедленно выводятся через специальную точку сброса (drain endpoint) до запуска любого другого этапа payload.

Вам нужно знать: угрозы безопасности кошельков усиливаются Обязательно к прочтению: Взлом безопасности Trust Wallet: как защитить свои активы

Как этот червь сначала получает доступ к вашим приватным ключам

Червь использует двухэтапную схему. Первый этап активируется мгновенно при импорте, собирая токены npm, токены GitHub, секреты окружения и крипто-ключи только через чтение файлов. Без выполнения команд оболочки, без шума. Мнемоники BIP39, приватные ключи Ethereum, байтовые массивы Solana, ключи Bitcoin WIF и строки xprv — всё собирается на первом этапе.

Крипто-ключи сразу же уходят с машины через HTTPS POST на Cloudflare Worker по адресу pkg-metrics[.]official334[.]workers[.]dev/drain. Это происходит до любого временного ограничения. Даже до загрузки этапа 2.

Этап 2 работает с задержкой в 48 часов, основанной на MD5-хэше имени хоста и имени пользователя. Он идет глубже: менеджеры паролей через Bitwarden, 1Password и LastPass CLI, локальные базы данных SQLite, включая Apple Notes и Messages macOS, а также полный скан файловой системы на предмет файлов кошельков. В средах CI эта задержка полностью исчезает. Полный payload активируется сразу при наличии переменных окружения GITHUB_ACTIONS, GITLAB_CI, CIRCLECI, JENKINS_URL и BUILDKITE.

По данным SocketSecurity в X, червь также внедряет рабочие процессы GitHub и отравляет цепочки инструментов ИИ, что подтверждено в полном техническом раскрытии Socket.

Также стоит прочитать: $21 млн изъятого биткоина возвращены после заморозки транзакций властями

Инструменты для программирования на ИИ тоже пострадали, и очень сильно

Три пакета маскируются под Claude Code. Один из них нацелен на OpenClaw — агента ИИ, набравшего более 210 000 звезд на GitHub. Модуль McpInject червя внедряет поддельный сервер MCP в конфигурации Claude Code, Claude Desktop, Cursor, VS Code Continue и Windsurf на диске. Каждый из них содержит фальшивую запись инструмента, указывающую на скрытый вредоносный сервер.

Этот сервер содержит встроенную инъекцию подсказок, которая заставляет помощников ИИ тихо читать SSH-ключи, учетные данные AWS, токены npm и секреты окружения перед каждым вызовом инструмента. Модель никогда не сообщает об этом пользователю. Инъекция явно блокирует такую возможность.

Целевыми для сбора API-ключей стали девять поставщиков LLM: OpenAI, Anthropic, Google, Groq, Together, Fireworks, Replicate, Mistral и Cohere. Ключи собираются из переменных окружения и файлов .env, проверяются по известным шаблонам формата перед эксфильтрацией.

Эксплуатация происходит через три канала по цепочке: сначала HTTPS-запрос к Cloudflare Worker, затем аутентифицированные загрузки через API GitHub в приватные репозитории с двойным base64-кодированием, и, наконец, DNS-туннелинг через запросы, закодированные в base32, на домены freefan[.]net и fanfree[.]net. Алгоритм генерации доменов, инициализированный строкой “sw2025”, обеспечивает резервные варианты на десяти TLD, если все остальное не сработает.

Стоит посмотреть: Glassnode отмечает истощение спроса на BTC

Два псевдонима издателей, стоящих за кампанией, — official334 и javaorg. Среди 19 подтвержденных вредоносных пакетов — suport-color@1.0.1, claud-code@0.2.1, cloude@0.3.0, crypto-locale@1.0.0, secp256@1.0.0 и scan-store@1.0.0. Среди других есть четыре пакета-сна: ethres, iru-caches, iruchache и uudi, которые пока не содержат вредоносных нагрузок.

npm удалил вредоносные пакеты. GitHub отключил инфраструктуру злоумышленников. Cloudflare отключила воркеры. Но защитникам необходимо действовать уже сейчас.

Если любой из этих пакетов запускался в вашей среде, считайте машину скомпрометированной. Обновите токены npm и GitHub, смените все секреты CI, проверьте файлы .github/workflows на наличие добавлений pull_request_target, которые сериализуют ${{ toJSON(secrets) }}. Проверьте глобальные настройки шаблонов git, выполнив git config --global init.templateDir. Проверьте конфигурации помощников ИИ на наличие неожиданных записей о mcpServers. Встроен в червя полиморфный движок deepseek-coder:6.7b, который в этой сборке отключен, что означает возможность будущих вариантов, переписывающих себя для обхода обнаружения.

В коде также есть отключатель аварийной ситуации. Сейчас он отключен. При активации он выполнит команду find ~ -type f -writable и уничтожит все записываемые файлы в домашней директории. Оператор все еще работает над этим.

Посмотреть Оригинал
Отказ от ответственности: Информация на этой странице может поступать от третьих лиц и не отражает взгляды или мнения Gate. Содержание, представленное на этой странице, предназначено исключительно для справки и не является финансовой, инвестиционной или юридической консультацией. Gate не гарантирует точность или полноту информации и не несет ответственности за любые убытки, возникшие от использования этой информации. Инвестиции в виртуальные активы несут высокие риски и подвержены значительной ценовой волатильности. Вы можете потерять весь инвестированный капитал. Пожалуйста, полностью понимайте соответствующие риски и принимайте разумные решения, исходя из собственного финансового положения и толерантности к риску. Для получения подробностей, пожалуйста, обратитесь к Отказу от ответственности.
комментарий
0/400
Нет комментариев