Наука и технологии

Хакеры отравили Rust-crate arrayref, чтобы разнести инфостилер

Хакеры отравили Rust-crate arrayref, чтобы разнести инфостилер

По данным StepSecurity, уязвимые релизы получили номера arrayref 0.3.10, append-only-vec 0.1.9 и internment 0.8.7. Во всех трех случаях злоумышленник действовал через один и тот же аккаунт, а arrayref за 90 дней набрал более 53 млн загрузок.

Как взломали Rust-crate arrayref

Исследователи описывают схему как подмену зависимости с сохранением остального кода без изменений. В зараженный пакет добавили зависимость от proc-macro1, название которого подделывает популярный proc-macro2.

Скрипт build.rs в составе proc-macro1 запускается автоматически при компиляции. Он собирает инфраструктуру из фрагментов в base64, а затем выбирает полезную нагрузку под конкретную систему: Linux x86-64, Windows x86-64, macOS x86-64 или macOS ARM64.

StepSecurity пишет, что атакующий также выпустил несколько версий четырех собственных crates: aovine, arone, aronenao и tinymember. Их уже удалили из crates.io.

  • Unix: запись в /tmp/rust-setup, запуск как отдельного процесса.
  • Windows: файл %TEMP%\rust-setup.ps1, скрытый wscript.exe и VBS-лаунчер.
  • Передача адреса в аргументах полезной нагрузки, вероятно, для связи с C2.
  • Сбор учетных данных из Chrome, Brave и Edge через SQLite-базы.
  • Закрепление через Registry Run на Windows, LaunchAgent на macOS и systemd на Linux.
  • Хронология и последствия

    Атака началась 20 августа в 01:17 UTC, когда появился GitHub-аккаунт, выдававший себя за известного разработчика Rust Дэвида Толнея. Затем в реестре crates.io создали похожую учетную запись, после чего в 01:55 опубликовали proc-macro1@1.0.106 как безвредную копию proc-macro2.

    Позже вышло вредоносное обновление proc-macro1@1.0.107 в 07:11, а в 07:15 через легитимный аккаунт Дэвида Раунди опубликовали arrayref 0.3.10. Версии arrayref с 0.3.5 по 0.3.9 при этом удалили, что могло подтолкнуть установку зараженного релиза.

    Об инциденте сообщили в 07:54, после чего crates.io удалил proc-macro1 в 08:03 и убрал arrayref 0.3.10 из индекса в 08:41. Во время окна примерно в 1,5 часа под угрозой могли оказаться проекты, установившие затронутые версии.

    У arrayref более 245 млн загрузок за все время, а у append-only-vec и internment вместе почти 19 млн. Среди проектов, где используется arrayref, исследователи называют blake3, GUI-фреймворки egui, eframe и iced, а также компоненты для Ethereum и Solana.

    StepSecurity, SafeDep и Aikido уже опубликовали технический разбор атаки и индикаторы компрометации. Wiz отдельно отмечает, что инфраструктура кампании совпадает с недавними supply-chain-атаками, связанными с КНДР, включая Mastra и axios.

    Тем, кто ставил затронутые версии в окно атаки, исследователи советуют проверить Cargo.lock, поискать сброшенные файлы и посмотреть трафик к 23.254.165[.]112 на портах 9089 и 443. Если компрометация подтверждена, нужно сменить доступные учетные данные, CI-токены, signing keys и другие секреты, а среду пересобрать из безопасных бэкапов.

    Источник: Bleepingcomputer

    Хакеры скомпрометировали аккаунт сопровождающего Rust-crate arrayref и встроили в него вредоносный код, который запускался на компьютерах разработчиков во время сборки. За 23 минуты они испортили еще два пакета, append-only-vec и internment.

    По данным StepSecurity, уязвимые релизы получили номера arrayref 0.3.10, append-only-vec 0.1.9 и internment 0.8.7. Во всех трех случаях злоумышленник действовал через один и тот же аккаунт, а arrayref за 90 дней набрал более 53 млн загрузок.

    Как взломали Rust-crate arrayref

    Исследователи описывают схему как подмену зависимости с сохранением остального кода без изменений. В зараженный пакет добавили зависимость от proc-macro1, название которого подделывает популярный proc-macro2.

    Скрипт build.rs в составе proc-macro1 запускается автоматически при компиляции. Он собирает инфраструктуру из фрагментов в base64, а затем выбирает полезную нагрузку под конкретную систему: Linux x86-64, Windows x86-64, macOS x86-64 или macOS ARM64.

    StepSecurity пишет, что атакующий также выпустил несколько версий четырех собственных crates: aovine, arone, aronenao и tinymember. Их уже удалили из crates.io.

    • Unix: запись в /tmp/rust-setup, запуск как отдельного процесса.
    • Windows: файл %TEMP%\rust-setup.ps1, скрытый wscript.exe и VBS-лаунчер.
    • Передача адреса в аргументах полезной нагрузки, вероятно, для связи с C2.
    • Сбор учетных данных из Chrome, Brave и Edge через SQLite-базы.
    • Закрепление через Registry Run на Windows, LaunchAgent на macOS и systemd на Linux.
    • Хронология и последствия

      Атака началась 20 августа в 01:17 UTC, когда появился GitHub-аккаунт, выдававший себя за известного разработчика Rust Дэвида Толнея. Затем в реестре crates.io создали похожую учетную запись, после чего в 01:55 опубликовали proc-macro1@1.0.106 как безвредную копию proc-macro2.

      Позже вышло вредоносное обновление proc-macro1@1.0.107 в 07:11, а в 07:15 через легитимный аккаунт Дэвида Раунди опубликовали arrayref 0.3.10. Версии arrayref с 0.3.5 по 0.3.9 при этом удалили, что могло подтолкнуть установку зараженного релиза.

      Об инциденте сообщили в 07:54, после чего crates.io удалил proc-macro1 в 08:03 и убрал arrayref 0.3.10 из индекса в 08:41. Во время окна примерно в 1,5 часа под угрозой могли оказаться проекты, установившие затронутые версии.

      У arrayref более 245 млн загрузок за все время, а у append-only-vec и internment вместе почти 19 млн. Среди проектов, где используется arrayref, исследователи называют blake3, GUI-фреймворки egui, eframe и iced, а также компоненты для Ethereum и Solana.

      StepSecurity, SafeDep и Aikido уже опубликовали технический разбор атаки и индикаторы компрометации. Wiz отдельно отмечает, что инфраструктура кампании совпадает с недавними supply-chain-атаками, связанными с КНДР, включая Mastra и axios.

      Тем, кто ставил затронутые версии в окно атаки, исследователи советуют проверить Cargo.lock, поискать сброшенные файлы и посмотреть трафик к 23.254.165[.]112 на портах 9089 и 443. Если компрометация подтверждена, нужно сменить доступные учетные данные, CI-токены, signing keys и другие секреты, а среду пересобрать из безопасных бэкапов.

      Источник: Bleepingcomputer
Марта Баринова
Редактор новостного отдела, специализирующийся на аналитике программного обеспечения, стриминговых сервисов и изменениях в политике глобальных технологических платформ. В своих материалах Марта подробно освещает обновления Windows, функциональные изменения в Spotify и Google, а также исследует вопросы антимонопольного регулирования магазинов приложений. Автор более 140 публикаций, помогающих пользователям ориентироваться в быстро меняющемся ландшафте цифровых сервисов.

    Оставить комментарий