Атака на Rust-пакеты: вредоносная зависимость заражает проекты через Cargo

20 августа пакеты append-only-vec, arrayref и internment подверглись компрометации. Злоумышленники использовали учётные записи сопровождающих или процесс выпуска пакетов, чтобы добавить вредоносную зависимость proc-macro1.

Количество загрузок затронутых пакетов составило приблизительно 4 миллиона для append-only-vec, 244 миллиона для arrayref и 14 миллионов для internment.

Поддельная зависимость маскировалась под легитимный пакет

proc-macro1 является опечаточной подделкой, typosquat, легитимного пакета proc-macro2. Вредоносный пакет имитирует его метаданные, информацию об авторе и документацию. Связанный с кампанией пакет proc-macro-en также выдавал себя за легитимного сопровождающего.

Вредоносный код находится в файле build.rs пакета proc-macro1. Cargo автоматически компилирует и выполняет этот файл в процессе сборки. Поэтому заражение возможно даже в том случае, если проект не вызывает функциональность скомпрометированного пакета.

Вредоносная нагрузка запускается во время сборки

Код маскирует адрес загрузки с помощью фрагментов, закодированных в Base64. Затем он выбирает payload в зависимости от операционной системы и архитектуры хоста и загружает его по HTTPS.

  • На Linux и macOS payload записывается на диск, помечается как исполняемый файл и запускается как отсоединённый процесс с подавлением вывода.
  • На Windows создаётся сценарий PowerShell.
  • Для сохранения процесса после завершения сборки Cargo используются скрытые загрузчики wscript и VBScript.

Компиляция проекта, который зависит от любого из скомпрометированных пакетов, может привести к заражению без вызова функциональности этого пакета.

Восстановленные payloads работают как infostealers

Восстановленные payloads для Linux x86_64 и macOS ARM64 представляют собой infostealers, написанные на языке Rust. Они получают адрес command-and-control в качестве аргумента запуска, а не содержат его непосредственно в коде.

Dropper передаёт адрес 23.254.165.112:443, после чего вредоносное ПО взаимодействует с {host}/49890878.

На macOS payload нацелен на учётные данные, которые хранятся в браузерах на базе Chromium, включая Chrome, Brave и Edge. Для этого используются встроенные SQL-запросы к базам данных с логинами браузеров.

Вредоносное ПО обеспечивает persistence и удалённое выполнение команд

В payload присутствует шаблон LaunchAgent с параметром RunAtLoad. Это указывает на persistence на уровне пользователя через каталог ~/Library/LaunchAgents.

Вредоносное ПО регистрирует заражённые системы, передавая сведения о хосте и параметры платформы. В набор данных входят операционная система, архитектура, версия, приложение и поля электронной почты.

Диспетчер команд поддерживает следующие функции:

  • конфигурирование;
  • запуск;
  • выполнение скриптов;
  • выполнение команд в оболочке;
  • ожидание по таймеру.

Набор возможностей указывает на периодический опрос C2 и удалённое выполнение команд.

Связь с предыдущими компрометациями npm

Кампания использует общую инфраструктуру, методы beaconing и техники внедрения зависимостей, которые наблюдались в предыдущих компрометациях npm. Она может быть связана с той же угрозой, которую связывают с КНДР.

Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.

Ознакомиться подробнее с отчетом можно по ссылке.

Технологии киберугроз
Автор: Технологии киберугроз
Технологии киберугроз – технологическая компания, специализирующаяся на решениях по анализу угроз для предприятий любого размера. Мы собираем, нормализуем, обогащаем информацию о киберугрозах со всего мира. Нашими источниками являют более 260 открытых фидов, более 100 открытых поставщиков Threat Intelligence-отчетов, открытые online sandbox, социальные сети и репозитории GitHub. Мы также предоставляем ряд сервисов по: семантическом анализу Threat Intelligence-отчетов и приведения их в машиночитаемый формат STIX 2.1, проверки IoC на потенциальные ложноположительные сработки, а также получению WHOIS-записей для доменных имен.
Комментарии: