Найти тему
Герман Геншин

Вредоносные NuGet-пакеты используют MSBuild для установки вредоносных программ

Оглавление

Новая кампания NuGet typosquatting занимается распространением вредоносных пакетов, которые используют интеграцию MSBuild с Visual Studio для выполнения кода и скрытой установки вредоносных программ.

NuGet - это менеджер пакетов с открытым исходным кодом и система распространения программного обеспечения, позволяющая разработчикам загружать и включать в свои проекты готовые к работе библиотеки .NET.

Угрозы, нацеленные на такие системы распространения ПО, как npm и PyPI, в последнее время проявляют интерес к NuGet, которая ориентирована преимущественно на пользователей Windows и стала очень популярной среди разработчиков ПО.

Сокрытие кода с помощью MSBuild

Последняя NuGet-кампания была замечена компанией ReversingLabs 15 октября 2023 года. В ней использовались различные пакеты typosquatting для установки вредоносного ПО.

Среди пакетов, замеченных в этой кампании, можно назвать следующие:

  • CData.NetSuite.Net.Framework
  • CData.Salesforce.Net.Framework
  • Chronos.Platforms
  • DiscordsRpc
  • Kraken.Exchange
  • KucoinExchange.Net
  • MinecraftPocket.Server
  • Monero
  • Pathoschild.Stardew.Mod.Build.Config
  • SolanaWallet
  • ZendeskApi.Client.V2

Новизна этой кампании заключается в том, что вместо стандартного подхода, заключающегося во включении загрузчиков в сценарии установки, эти пакеты используют интеграцию NuGet с MSBuild для выполнения кода.

Интеграция NuGet с MSBuild - это функция, появившаяся в NuGet v2.5 с целью поддержки "родных" проектов, автоматизации процесса сборки и тестирования, а также предоставления разработчикам возможности определять пользовательские действия и разрешать зависимости.

Когда NuGet устанавливает пакет, содержащий папку '\build', он автоматически добавляет в проект элемент MSBuild, ссылающийся на файлы .targets и .props в этой папке. Процесс сборки использует эти файлы для задания конфигураций, свойств или пользовательских задач.

Несмотря на то, что эта новая интеграция NuGet была добавлена для улучшения процесса сборки и упаковки программных проектов, она вызвала опасения по поводу последствий для безопасности, поскольку добавляет новый метод автоматического запуска сценариев при установке пакета.

В случае, обнаруженном ReversingLabs, вредоносный код скрыт в файле .targets в каталоге "build" в виде свойства, реализующего функциональность сценариев PowerShell, использовавшихся в предыдущих версиях пакетов.

-2

При выполнении код получает исполняемый файл с внешнего адреса и запускает его в новом процессе.

-3

Впервые эта техника была представлена исследователем безопасности в 2019 году для иллюстрации того, как процесс MSBuild может быть использован для запуска кода при установке пакетов NuGet.

"Во-первых, строковый артефакт в первой строке файла 'IAmRootDemo' привел нас к корню этой техники выполнения", - поясняет Карло Занки из ReversingLab в отчете, предоставленном Герман Геншин.

"Несколько лет назад, в 2019 году, пакет IAmRoot был опубликован К. Аугусто Пройете (C. Augusto Proiete). Цель пакета: "Продемонстрировать, что любой пакет NuGet может запустить произвольный код на вашей машине"."

Однако это первый задокументированный случай использования угрозами данной функции во вредоносных NuGet-пакетах.

Эволюция существующих кампаний

По данным ReversingLabs, обнаруженные пакеты NuGet, которые были удалены, являлись частью текущей кампании, начавшейся в августе 2023 года.

Однако до середины октября она не злоупотребляла интеграциями MSBuild.

Более ранние версии использовали сценарии PowerShell ('init.ps1') для получения полезной нагрузки из репозитория GitHub.

Это свидетельствует о том, что злоумышленники постоянно совершенствуют свои методы, чтобы сделать атаки более скрытными.

Аналитики также отмечают тесную связь с кампанией, о которой в начале месяца сообщала компания Phylum, где злоумышленники использовали typosquatting для имитации криптовалютных проектов и доставки SeroXen RAT.

По данным ReversingLabs, исполнители угроз пытались установить новые пакеты сразу после удаления предыдущих, что свидетельствует о намерении продолжить кампанию.

По новым правилам Дзена свежие материалы показываются в первую очередь подписчикам, которые реагируют на публикации. Поэтому не забывайте подписаться, поставить лайк и оставить комментарий, так вы будете первым узнавать о всех новых статьях на нашем канале!