В npm обнаружены вредоносные версии pgserve и automagik: они крадут токены, SSH-ключи и учетные данные AWS, Azure и GCP

Прослушать статью

Поддельные пакеты нацелены на кражу данных, учетных данных и секретов, а также на заражение каждого созданного с их помощью пакета, что может привести к «полной компрометации организации».

Разработчиков приложений предупреждают о вредоносных версиях pgserve — встроенного сервера PostgreSQL для разработки приложений, — и automagik, инструмента для AI-кодинга, которые были загружены в JavaScript-реестр npm и могут заразить компьютеры разработчиков.

Использование этих версий приведет к краже данных, токенов, SSH-ключей и учетных данных, включая данные для Amazon Web Services (AWS), Microsoft Azure и Google Cloud Platform (GCP), криптовалюты из браузерных кошельков и паролей браузера. Вредоносная программа также распространяется на другие подключенные ПК.

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

Исследователи Socket обнаружили поддельные пакеты, нацеленные на разработчиков, ищущих pgserve — встроенный сервер PostgreSQL для разработки и тестирования приложений, — и automagik, CLI-инструмент для AI-кодинга и оркестрации агентов от Namastex.ai. Исследователи заявили, что атака похожа на недавнюю кампанию под названием CanisterWorm — worm-атаку на цепочку поставок, которая подменила содержимое легитимных пакетов на npm вредоносным кодом.

На момент анализа Socket поддельный пакет automagik/genie показывал 6 744 загрузки в неделю, а поддельный пакет pgserve — около 1 300 загрузок в неделю.

Поддельные версии automagik на момент публикации предупреждения Socket имели номера 4.260421.33–4.260421.39, и дополнительные вредоносные версии по-прежнему публикуются и выявляются. Исследователи заявили, что полный масштаб затронутых релизов, информация о сопровождающих и компрометации цепочки релизов все еще расследуется.

Отдельно исследователи StepSecurity также обнаружили вредоносные версии pgserve на npm и отметили, что скомпрометированные версии (1.1.11, 1.1.12 и 1.1.13) внедряют 1 143-строчный скрипт для сбора учетных данных, который запускается через postinstall при каждой установке.

Последним легитимным релизом pgserve, по данным StepSecurity, является v1.1.10.

StepSecurity заявила, что в отличие от простых инфостилеров это вредоносное ПО является worm-угрозой для цепочки поставок: если на зараженной машине оно находит npm publish token, то встраивает себя в каждый пакет, который этот токен может публиковать, тем самым дальше распространяя компрометацию. Украденные данные шифруются и передаются в децентрализованный Internet Computer Protocol (ICP) canister — вычислительную точку, размещенную в блокчейне и выбранную специально потому, что ее нельзя отключить действиями правоохранительных органов или через изъятие домена.

Еще одна атака на цепочку поставок

Это лишь очередной пример атаки на цепочку поставок программного обеспечения, при которой злоумышленники надеются, что разработчики загрузят зараженные утилиты и инструменты из open source-реестра и используют их в пакетах, которые затем широко распространят вредоносное ПО.

Среди недавних примеров — взлом в прошлом месяце аккаунта npm ведущего сопровождающего библиотеки Axios HTTP client library. А прошлым летом злоумышленники скомпрометировали несколько JavaScript-утилит для тестирования на npm.

Что делать пострадавшим разработчикам

Разработчикам, которые загрузили вредоносные версии pgserver и automagik, нужно действовать быстро, говорит Tanya Janca, руководитель канадской консультационной компании по безопасной разработке SheHacksPurple.

«Немедленно смените все учетные данные, о которых только сможете вспомнить, прежде чем делать что-либо еще», — сказала она. «Затем ужесточите правила исходящего трафика в CI/CD, чтобы ваши сборочные runners могли обращаться только к тем доменам, которые им действительно нужны. Убедитесь, что сборочные runners и deployment runners используют разные service accounts с разными правами. Цель в том, чтобы даже если вредоносный пакет запустится в среде сборки, он не смог достучаться до инфраструктуры атакующего для вывода данных и секретов и не смог перейти в вашу deployment-цепочку».

Чтобы снизить риск компрометации через любой вредоносный пакет npm, Janca рекомендует IT-руководителям по умолчанию отключить автоматическое выполнение postinstall-скриптов.

Разработчикам также следует немедленно выполнить команду npm config set ignore-scripts true. Она признала, что из-за этого иногда ломаются легитимные пакеты, но смысл в том, чтобы создать намеренное трение и заставить разработчиков осознанно решать, разрешен ли скрипт к запуску на их машинах.

Кроме того, по ее словам, нужны инструменты, которые проверяют, соответствует ли то, что опубликовано в npm, тому, что находится в исходном репозитории. «Не все инструменты software composition analysis умеют это делать, — сказала Janca. — Поэтому обязательно спросите у вендора, умеет ли инструмент выявлять несоответствия между registry и repo».

Наконец, она посоветовала применять принцип минимальных привилегий к токенам публикации: жестко ограничивать их область действия, давать только те права, которые нужны для одного конкретного пакета, и регулярно обновлять их — автоматически, а не вручную.

Это больше, чем кража учетных данных

«Люди склонны думать об этом как об инциденте кражи учетных данных, — сказала Janca. — На самом деле это потенциальный полный захват организации, и он может разворачиваться по этапам. Сначала атакующий забирает ваши секреты прямо во время установки: AWS-ключи, токены GitHub, SSH-ключи, пароли к базам данных — все, что лежит в вашей среде или домашнем каталоге. Во-вторых, если у вас есть npm publish token, worm немедленно использует его, чтобы встроить себя в каждый пакет, который вы можете публиковать, а значит, ваши downstream-пользователи тоже становятся жертвами. В-третьих, украденные облачные учетные данные используются для продвижения в вашей инфраструктуре: запуска ресурсов, вывода данных, lateral movement между учетными записями. В-четвертых, ваши CI/CD-пайплайны, которые неявно доверяют runners и service accounts, впускают вредоносный код атакующих в production».

Она подчеркнула, что разработчики часто очень долго замечают такие атаки, «и к тому времени у атакующего уже мог быть доступ к исходному коду, production-системам, данным клиентов и к ПО, на которое полагаются ваши пользователи».

Смена тактики

Janet Worthington, старший аналитик по безопасности и рискам в Forrester Research, сказала, что недавние атаки, такие как кампания CanisterSprawl и компрометация npm-пакетов Namastex.ai, показывают сдвиг в сторону самораспространяющегося вредоносного ПО, которое крадет учетные данные и использует их для автоматического заражения других пакетов.

«Это поведение напоминает более ранние вспышки, такие как worm Shai-Hulud, который распространился по сотням пакетов, собирая npm tokens и перевыпуская троянизированные версии от имени скомпрометированного сопровождающего», — сказала она в письме.

Хотя open registry-платформы вроде npm внедряют более сильные защиты для аккаунтов издателей и токенов, эти инциденты показывают, что компрометация больше не ограничивается одним вредоносным пакетом, отметила она. Вместо этого она быстро распространяется по экосистеме реестра и даже переходит в другие экосистемы. «Предприятиям следует использовать только проверенные open source- и third-party-компоненты, поддерживая curated registries, автоматизируя SCA [software composition analysis] в пайплайнах и применяя dependency firewalls, чтобы ограничить зону поражения», — сказала Worthington.

Разработчики находятся на пересечении исходного кода, облачной инфраструктуры, CI/CD-пайплайнов и учетных данных для публикации, подчеркнула Janca, поэтому компрометация одного разработчика может означать компрометацию каждого пользователя каждого пакета, который он сопровождает, или даже всей организации. Эта атака, как и несколько других за последние месяцы, также нацелена на личные криптокошельки наряду с корпоративными учетными данными. «Это говорит нам о том, — сказала она, — что атакующие точно понимают, кого именно они атакуют, и оптимизируют свои действия ради максимальной выгоды от одной атаки».


Материал — перевод статьи с английского.

Оригинал: Malicious pgserve, automagik developer tools found in npm registry