В npm-пакеты SAP внедрили вредонос, открывающий доступ к корпоративным системам
В npm-пакетах, используемых в проектах SAP, обнаружили вредоносный код. Он запускался при установке библиотек и собирал токены и ключи доступа разработчиков, включая доступы к системам, которые автоматически собирают и публикуют обновления приложений. Это позволяет злоумышленникам вмешиваться в разработку и внедрять свой код в корпоративные приложения.
В npm-пакеты (каталог библиотек для JavaScript), которые используют при разработке приложений для SAP, внедрили вредоносный код. Он запускался при установке пакета и собирал токены и ключи доступа разработчиков. Заражение происходило во время обычного обновления зависимостей. Разработчик устанавливал пакет для работы с SAP — и вместе с ним в системе запускался скрытый код, не связанный с работой этого пакета.
Этот код срабатывал автоматически. В зараженные версии добавили preinstall-скрипт — механизм npm, который выполняется до завершения установки. Он запускал файл setup.mjs, затем загружал дополнительный исполняемый модуль и передавал ему управление, описали исследователи.
С точки зрения разработчика ничего необычного не происходило: установка проходила как обычно. Но параллельно вредонос уже начинал работать и собирал данные из системы. В первую очередь он искал токены доступа к GitHub и npm — с их помощью можно менять код в репозиториях и публиковать новые версии пакетов. Также собирались SSH-ключи (они дают доступ к серверам и репозиториям) и учетные данные облачных сервисов AWS, Azure и Google Cloud, указано в анализе инцидента.
Дополнительно вредонос извлекал переменные окружения и данные из систем, которые автоматически собирают и публикуют обновления SAP-приложений. В таких системах часто хранятся служебные токены и пароли, указано в анализе инцидента.
Собранные данные отправлялись в GitHub. Вредонос создавал или использовал репозитории и загружал туда зашифрованную информацию. Это затрудняет обнаружение: данные передаются через GitHub, доступ к которому в корпоративных сетях обычно открыт, поэтому такая активность не выглядит подозрительной.
Под удар попали четыре пакета, используемые в разработке SAP-приложений: @cap-js/sqlite 2.2.2, @cap-js/postgres 2.2.2, @cap-js/db-service 2.10.1 и mbt 1.2.48. Эти версии признали небезопасными и заменили исправленными.
Кампания получила название Mini Shai-Hulud. Ее связывают с группой TeamPCP по косвенным признакам — совпадающим ключам шифрования и схожим методам маскировки кода. При этом вредонос проверял язык системы и прекращал работу, если обнаруживал русскую локаль.
Новая версия вредоносного кода получила дополнительные функции. Помимо кражи токенов и ключей, он мог извлекать сохраненные пароли из браузеров и пытался распространяться дальше. Если у него появлялся доступ к репозиториям или пакетам, он мог изменять их содержимое и добавлять в них зараженные версии.
В таком сценарии один зараженный пакет для разработки SAP может привести к тому, что вредоносный код попадет в другие проекты и в обновления приложений. Разработчикам рекомендуют обновить пакеты, проверить системы и сменить токены, ключи и пароли.
ФСТЭК России выпускала рекомендации по защите SAP-систем после прекращения поддержки в России — редакция SecPost ранее публиковала материал об этом. По данным, приведенным в той же публикации, такие системы используют крупные компании в промышленности, химии, металлургии, фармацевтике, сельском хозяйстве и ритейле.

