Пакеты Npm — заразительное интервью

Пакеты Npm маскируются под безобидные библиотеки пользовательского интерфейса в северокорейской атаке на цепочку поставок «Заразного интервью»

Недавно обнаруженные вредоносные пакеты 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.

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

Защитите свою разработку и доставку программного обеспечения

с пакетом продуктов Xygeni