- Регистрация
- 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
Рекомендации для разработчиков:
– Незамедлительное обновление: разработчикам, использующим уязвимые пакеты, следует без промедления обновить их до последних безопасных версий.
– Проверка зависимостей: регулярно проводите аудит и проверку зависимостей проекта, чтобы выявлять и устранять потенциальные уязвимости.
– Улучшить меры безопасности
Для просмотра ссылки Войдиили Зарегистрируйся
В недавнем тревожном инциденте эксперты по кибербезопасности выявили сложную атаку на цепочку поставок, нацеленную на связанные с 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
Рекомендации для разработчиков:
– Незамедлительное обновление: разработчикам, использующим уязвимые пакеты, следует без промедления обновить их до последних безопасных версий.
– Проверка зависимостей: регулярно проводите аудит и проверку зависимостей проекта, чтобы выявлять и устранять потенциальные уязвимости.
– Улучшить меры безопасности
Для просмотра ссылки Войди