В экосистеме Rust снова целятся не в код, а в людей, которые имеют право его публиковать. Команда crates.io и рабочая группа Rust по реагированию на инциденты 17 сентября предупредили о продолжающейся кампании против участников проекта и владельцев популярных crates, чьи компьютеры и учётные записи пытаются захватить ради последующей публикации вредоносных пакетов.
Схема начинается с правдоподобного делового контакта. Злоумышленники предлагают работу, контракт или участие в проекте, после чего переводят общение в видеозвонок. Уже во время разговора жертву убеждают установить якобы недостающий аудиокодек либо выполнить команду, которую атакующие помещают в буфер обмена. В результате код запускает сам разработчик.
Для снижения подозрений операторы создают новые компании и оформляют убедительные страницы в LinkedIn. Быстрой проверки такого профиля может оказаться недостаточно, поскольку история выглядит как обычное предложение о сотрудничестве. Rust прямо связывает цель операции с доступом к устройствам и аккаунтам, способным выпускать пакеты в crates.io, официальном реестре библиотек языка.
Crate в Rust представляет собой пакет с кодом, который другие проекты могут подключать как зависимость. Поэтому доступ к учётной записи владельца популярной библиотеки даёт атакующим гораздо больше, чем взлом одного компьютера. Достаточно выпустить новую вредоносную версию под доверенным именем, после чего она может попасть в сборки пользователей и автоматические процессы CI/CD.
Опасность уже перестала быть теоретической. В августе похожая схема уже привела к компрометации популярных arrayref, internment и append-only-vec. Через захваченную учётную запись в зависимости добавили вредоносный proc-macro1, чей сценарий сборки скачивал дополнительную нагрузку. Для заражения было достаточно просто собрать проект с такой зависимостью.
Тогда команда Rust удалила вредоносные версии и заблокировала связанную учётную запись. arrayref 0.3.10 оставалась доступна 86 минут, internment 0.8.7 около 90 минут, а append-only-vec 0.1.9 около 107 минут. Разработчики Rust считали наиболее вероятной компрометацию компьютера или учётных данных владельца пакетов, а не его сознательное участие в операции.
Нынешнее предупреждение также связывает новую волну с июньскими попытками атаковать заметных участников сообщества Rust через фальшивые деловые предложения. Однако команда проекта не утверждает, что июньская активность, августовский взлом и текущая кампания принадлежат одному оператору. Совпадение методов показывает устойчивую модель, но не доказывает общего происхождения всех эпизодов.
Команда Rust рекомендует осторожнее относиться к неожиданным предложениям о работе и сотрудничестве, а видеозвонки проводить через знакомые площадки, по возможности создавая встречу самостоятельно. Владельцам аккаунтов советуют проверить многофакторную аутентификацию и историю входов. При подозрениях вокруг crates.io можно обратиться в help@crates.io, по другим вопросам в security@rust-lang.org.
