Хакеры взломали учетную запись разработчика широко используемого Rust-крейта
arrayref, внедрив вредоносное ПО, которое выполнялось в системах разработчиков во время компиляции.
В течение 23 минут злоумышленник также скомпрометировал два других крейта: append-only-vec и internment в рамках той же атаки на цепочку поставок.
Arrayref - популярная библиотека
Rust, которую за последние 90 дней скачали более 53 млн. раз. Она используется в криптографии, графике и инструментах для работы с блокчейном.
В отчете
StepSecurity отмечается, что вредоносные версии крейтов
Rust -
arrayref 0.3.10,
append-only-vec 0.1.9 и
internment 0.8.7 - поддерживались через одну и ту же учетную запись.
Хакер внедрил зависимость от пакета под названием
proc-macro1, представляющего собой опечатку, имитирующую популярный крейт
proc-macro2, при этом полностью сохранив неизменным остальной исходный код проекта.
По данным исследователей, скрипт в
proc-macro1 под названием
build.rs автоматически выполняется во время компиляции, восстанавливая свою инфраструктуру из фрагментов, закодированных в
base64, и выбирая полезную нагрузку, соответствующую хостовой ОС (
Linux x86-64, Windows x86-64, macOS x86-64 и macOS ARM64).
StepSecurity полагает, что злоумышленник также опубликовал несколько версий четырех собственных крейтов (
aovine, arone, aronenao, tinymember), которые были удалены с сайта
crates.io.
В системах
Unix вредоносная ПО записывает данные в /tmp/rust-setup, помечает его как исполняемый файл и запускает как отсоединенный процесс. В
Windows он создает файл %TEMP%\rust-setup.ps1 и использует скрытый файл wscript.exe и VBS-скрипт для запуска процесса.
В качестве аргумента полезная нагрузка получает адрес, который, как предполагается, является адресом управления.
Согласно анализу
Wiz, возможности второго этапа включают в себя кражу информации о хостах и учетных данных. Исследователи
утверждают, что вредоносная ПО собирает учетные данные из браузеров
Google Chrome, Brave и Edge, обращаясь к базам данных авторизации
SQLite.
Сохранение состояния обеспечивается через ключ Run в реестре
Windows, LaunchAgent в
macOS и systemd в
Linux.
Потенциальные последствия этой атаки на цепочку поставок значительны, поскольку только
arrayref имеет более 245 млн. загрузок за все время существования, в то время как совокупное количество установок
append-only-vec и internment составляет почти 19 млн.
В число проектов, использующих
arrayref, входят
blake3, графические фреймворки на
Rust, такие как
egui, eframe и iced, а также компоненты, используемые в
Ethereum и Solana.
Атака началась в 01:17 UTC 20 августа, когда был создан аккаунт на
GitHub, выдающий себя за известного разработчика
Rust Дэвида Толнея, а затем аналогичный аккаунт был создан в реестре
crates.io.
В 01:55 злоумышленник опубликовал
proc-macro1@1.0.106, безобидную копию
proc-macro2, а затем вредоносное обновление до версии 1.0.107, опубликованное в 7:11. Об инциденте стало известно в 07:54.
Crates.io удалил
proc-macro1 в 08:03 и
arrayref 0.3.10 из индекса в 08:41.
В 07:15
arrayref 0.3.10 был опубликован через легитимный аккаунт
droundy (Дэвид Раунди), в то время как версии 0.3.5-0.3.9 были удалены, возможно, для принудительной установки вредоносной версии.
StepSecurity,
SafeDep и
Aikido опубликовали технический анализ атаки на цепочку поставок и поделились IOCs.
Обсуждение 0
Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.
Обсудить в Telegram