Недавно обнаруженные вредоносные пакеты npm маскируются под безобидные вспомогательные интерфейсы, но содержат вредоносный запутанный код.
Группа исследований безопасности Ксигени определили, что эти пакеты npm: 'react-ui-notify', 'react-tmedia', 'react-ui-animates', 'react-medias', 'react-mandes' являются модифицированными производными «бинго-логгер», который сам по себе является вредоносным форком, имитирующим структуру и документацию популярного пакета журналирования 'пино' Чтобы выглядеть легитимным. Это прикрытие используется для того, чтобы злоупотребить доверием разработчиков и привлечь загрузку. На самом деле кодовая база содержит не связанный с проектом обфусцированный файл, работающий в среде Node.
Предыстория злоумышленника: кампания «Заразительное интервью»
Кампания «Заразительное интервью» связан с кластером угроз, известным как «UNC4034», который сообщает о связях с северокорейскими аффилированными лицами Лазарь Групп or APT38— известная спонсируемая государством группа, связанная с северокорейским режимом. Злоумышленники, стоящие за этой кампанией, имеют опыт атак на разработчиков через экосистемы с открытым исходным кодом, распространяя поддельные пакеты, которые выполняют скрытые полезные нагрузки. В конечном итоге они извлекают данные, исходный код и учетные данные, связанные с криптографией, из зараженных систем.
тактика, методы и процедуры (TTP), наблюдаемые в этих пакетах npm, следуют одному и тому же шаблону:
- Подражайте звучащим правдоподобным названиям проектов, чтобы выглядеть заслуживающими доверия.
- Встраивайте запутанный код в тестовые файлы и вспомогательные скрипты.
- Запускать скрытые полезные нагрузки, которые собирают конфиденциальные данные и отправляют их на удаленный сервер управления и контроля (C2).
Технические результаты: анализ запутанной полезной нагрузки
Полезная нагрузка, обнаруженная внутри "/test/fixtures/eval/node_modules/test.list' использует запутанный JavaScript (поиск по индексу/массиву строк, закодированные блоки) для сокрытия читаемых строк, а поток управления будет выполнен после установки пакета из-за скрипта postinstall 'npm run test || npm transpile || npm run skip' в пределах пакет.json.
Наш анализ показал, что эти пакеты содержат адаптивный вредоносный код, предназначенный для использования в различных операционных системах (Windows, macOS или Linux) и пользовательских средах. Эта возможность предполагает целенаправленную ориентацию на технических пользователей, часто работающих в различных средах.
После внедрения в систему вредоносная программа исследует свое окружение, собирая подробная информация о системе такие как хоста, Платформа, домашний каталог и системный tmp-каталог прежде чем расширить сферу своего влияния на приложения, хранящие конфиденциальные данные, такие как браузеры (Chrome/Brave/Edge/Opera) и цифровые кошельки. Он рекурсивно ищет профили браузеров, файлы кошельков, связки ключей и множество типов документов/файлов в распространённых местах. Ключевые слова для поиска включают в себя «кошелек», термины, связанные с сидами, и множество расширений файлов, которые могут содержать учётные данные или секреты (*.env, *.key, *.wallet, *.json, *.txt, *.doc и т. д..). Он содержит списки исключений для общих каталогов, чтобы избежать очевидных системных файлов.
Полезная нагрузка записывает локальный маркер/файл блокировки, чтобы предотвратить множественные одновременные запуски, и записывает свои данные во временные каталоги ОС, чтобы избежать обнаружения.
Замаскированная полезная нагрузка также содержит канал связи с удалённым сервером, который выполняет функции центра управления. Через этот канал она может выманить украденную информацию и получить дальнейшие инструкцииХотя сама инфраструктура кажется ограниченной и специально созданной, её существование подтверждает намерение злоумышленника сохранить постоянный контроль над заражёнными системами.
Когда вредоносная программа находит конфиденциальные данные, она объединяет их и пытается загрузить на удаленную конечную точку, размещенную на облачном сервере, используя multipart/form-data, поэтому украденные файлы прикрепляются к запросам.
Индикаторы компромисса и рекомендации по смягчению последствий
Организациям рекомендуется удалить эти вредоносные зависимости (react-ui-notify, react-tmedia, react-ui-animates, react-medias, react-mandes, bingo-logger) и обновить эти среды для обеспечения целостности. В системах, которые могли быть подвержены риску, необходимо немедленно провести ротацию всех учётных данных и токенов доступа.
Сетевые администраторы должны ограничить исходящий трафик на эти IP-адреса. 23.227.202.24, 131.153.22.25 и проверьте недавние соединения на наличие аномалий. Настоятельно рекомендуется восстанавливать пострадавшие среды из проверенных, чистых источников для предотвращения повторного заражения и обеспечения целостности цепочки поставок.
Более широкий контекст
В целом, эти пакеты являются еще одним примером нового уровня зрелости атак на цепочки поставок на основе JavaScript злоумышленники все чаще создают похожие пакеты, которые заимствуют структуру и документацию из доверенных проектов, модульное расширение и внедряют более совершенные методы, чтобы сделать обнаружение и устранение угроз сложной задачей.
Эта эволюция увеличивает вероятность случайной установки ничего не подозревающими разработчиками и предоставляет злоумышленникам более глубокий доступ к средам сборки, CI/CD системы и репозитории исходного кода.
Экосистемы с открытым исходным кодом стали предпочтительной платформой распространения для подобных кампаний. Пользуясь доверием разработчиков к пакетам, созданным сообществом, злоумышленники могут проникнуть в цепочку поставок программного обеспечения с минимальными усилиями и часто без немедленного обнаружения и последствий.
Система раннего предупреждения о вредоносных программах (MEW) от Xygeni
Этот инцидент был первоначально выявлен с помощью Xygeni Раннее предупреждение о вредоносных программах система, которая постоянно отслеживает реестры пакетов с открытым исходным кодом, такие как npm, PyPI, Maven, на предмет наличия вредоносных пакетов.
Наш механизм обнаружения автоматически пометил эти пакеты как подозрительные из-за их необычной структуры, послеустановочного скрипта и запутанной полезной нагрузки. В результате вредоносные пакеты (react-ui-notify, react-tmedia, react-ui-animates, react-medias и react-mandes) были признаны вредоносными нашей службой безопасности и переданы в npm до того, как они смогли получить более широкое распространение.
Как система раннего оповещения Xygeni защищает ваши данные pipelines
- Обнаружение угроз в режиме реального времени: Сканирует каждый новый или обновленный пакет в вашем графике зависимостей и отмечает подозрительное поведение, такое как системные вызовы ОС, выполнение команд, запутанный код, типосквоттинг и многое другое.
- Немедленные оповещения: оповещает ваши команды безопасности и DevOps в Slack, Jira или по электронной почте, как только в вашей среде появляется новая угроза.
- Исправление в один клик: Генерирует pull requests которые удаляют или заменяют уязвимые версии зависимостей в ваших проектах.
- Поддерживаемые экосистемы: В настоящее время включают npm, PyPI, Maven и Packagist.
- Xygeni помогает вам предотвращать атаки на цепочку поставок, перехватывая вредоносные пакеты на самой ранней стадии, до того, как они попадут в вашу сборку.
👉 Попробуйте бесплатное раннее предупреждение о вредоносных программах Xygeni и посмотрите, насколько быстро вы сможете обнаружить и нейтрализовать угрозы в цепочке поставок в вашей собственной pipelines.





