Взлом Стиллер нацелен на пакеты SAP npm в рамках сложной атаки на цепочку поставок

user_on_rehub

Monk
Moderator
Регистрация
19.08.25
Сообщения
279
Реакции
188
Вредоносное ПО, крадущее учетные данные, нацелено на связанные с SAP npm-пакеты в рамках сложной атаки на цепочку поставок

В недавнем тревожном инциденте эксперты по кибербезопасности выявили сложную атаку на цепочку поставок, нацеленную на связанные с SAP npm-пакеты. Эта кампания, получившая название mini Shai-Hulud, скомпрометировала несколько пакетов, являющихся неотъемлемой частью экосистемы разработки приложений на JavaScript и облачных сервисов SAP.

Затронутые пакеты:

mbt@1.2.48
– @cap-js/db-service@2.10.1
– @cap-js/postgres@2.2.2
– @cap-js/sqlite@2.2.2

В этих скомпрометированных версиях появились неожиданные особенности во время установки. В частности, был добавлен скрипт предварительной установки, который действует как загрузчик во время выполнения. Этот скрипт загружает специфичный для платформы ZIP-архив Bun из GitHub Releases, распаковывает его и немедленно запускает распакованный бинарный файл Bun. Такое поведение не являлось частью первоначальной функциональности этих пакетов.
Реализация также использует перенаправления HTTP без проверки адреса назначения и применяет PowerShell с параметром -ExecutionPolicy Bypass в Windows, что повышает риск для затронутых сред разработки и CI/CD.
Вредоносные пакеты имеют несколько общих характеристик с предыдущими операциями, приписываемыми злоумышленнику, известному как TeamPCP, что предполагает возможную связь с той же группой.

Хронология атаки:

Вредоносные версии были опубликованы 29 апреля 2026 года между 09:55 UTC и 12:14 UTC. В этих версиях был добавлен новый хук preinstall в package.json, который запускает файл setup.mjs. Этот файл действует как загрузчик для среды выполнения JavaScript Bun, выполняя фреймворк кражи учетных данных и распространения (execution.js).

Возможности вредоносного ПО:

Вредоносная программа предназначена для сбора широкого спектра конфиденциальной информации, включая:
– Локальные учетные данные разработчика
– Токены GitHub и npm
– Секреты GitHub Actions
– Секреты облачных сервисов AWS, Azure, GCP и Kubernetes

Украденные данные шифруются и передаются в общедоступные репозитории GitHub, созданные в учетной записи жертвы, каждый из которых имеет описание «Появился мини-Шай-Хулуд». На данный момент выявлено более 1100 таких репозиториев.

Механизм самораспространения:

Полезная нагрузка размером 11,6 МБ обладает возможностью самораспространения. Она использует украденные токены GitHub и npm для внедрения вредоносного рабочего процесса GitHub Actions в репозитории жертвы. Этот алгоритм предназначен для кражи секретов репозитория и публикации скомпрометированных версий пакетов npm в реестре, тем самым расширяя масштабы атаки.

Отличительные особенности этой атаки:

Этот инцидент демонстрирует заметные отличия от предыдущих кампаний Shai-Hulud:
– Расширенное шифрование: Все похищенные данные шифруются с использованием AES-256-GCM, а ключ инкапсулируется с помощью RSA-4096. Открытый ключ встроен в полезную нагрузку, гарантируя, что расшифровать данные сможет только злоумышленник.
– Географический таргетинг: Вредоносное ПО разработано таким образом, чтобы избегать выполнения на системах с русской локалью, что указывает на преднамеренную стратегию таргетинга.
– Инновационный механизм сохранения: Полезная нагрузка внедряется во все доступные репозитории GitHub путем внедрения файла .claude/settings.json, который использует уязвимость SessionStart в Claude Code. Кроме того, добавляется файл .vscode/tasks.json с параметром runOn: folderOpen. Это гарантирует, что открытие зараженного репозитория в Microsoft Visual Studio Code (VS Code) или Claude Code запускает выполнение вредоносного ПО.

Это один из первых случаев, когда атака на цепочку поставок была направлена на конфигурации агентов ИИ-кодирования как вектор для закрепления и распространения.

Анализ первопричин:

Расследование показало, что злоумышленники взломали учетную запись RoshniNaveenaS для трех пакетов @cap-js. Затем они отправили модифицированный рабочий процесс в ветку, не являющуюся основной, и использовали извлеченный токен npm OIDC для публикации вредоносных пакетов без подтверждения происхождения. В случае с mbt предполагается, что злоумышленники получили статический токен npm cloudmtabot неизвестным способом.

Команда cds-dbs перешла на доверенную публикацию OIDC в npm в ноябре 2025 года. В этой конфигурации GitHub Actions может запрашивать кратковременный токен npm без хранения долговременных секретов в репозитории. Злоумышленник воспользовался этой конфигурацией, вручную воспроизведя обмен токенами на этапе CI и распечатав полученный токен.

Была выявлена критическая уязвимость в конфигурации: конфигурация доверенного издателя OIDC в npm для @cap-js/sqlite доверяла любому рабочему процессу в cap-js/cds-dbs, а не только каноническому файлу release-please.yml в основной ветке. Это позволяло при отправке изменений в ветку обмениваться токеном OIDC от имени пакета, если рабочий процесс имел разрешение на запись id-token: и среда ссылалась на npm.


Меры по смягчению последствий:

В ответ на атаку разработчики затронутых пакетов выпустили новые, безопасные версии взамен скомпрометированных:
– sqlite: v2.4.0, v2.3.0
– postgres: v2.3.0, v2.2.2
– hana: v2.8.0, v2.7.2
– db-service: v2.10.1
– mbt: v1.2.49

Рекомендации для разработчиков:
– Незамедлительное обновление: разработчикам, использующим уязвимые пакеты, следует без промедления обновить их до последних безопасных версий.
– Проверка зависимостей: регулярно проводите аудит и проверку зависимостей проекта, чтобы выявлять и устранять потенциальные уязвимости.
– Улучшить меры безопасности

Для просмотра ссылки Войди или Зарегистрируйся