vott2.ru
отметили
14
человек
голосовать
Популярный пакет arrayref в Crates[.]io заразили инфостилеромxakep.ru
max_dev, · Политика
image

Атака на экосистему Rust: злоумышленники скомпрометировали аккаунт мейнтейнера и залили вредоносные версии в три популярных пакета на crates.io — arrayref, internment и append-only-vec. Инфостилер автоматически активировался на этапе сборки проекта, что делало заражение практически незаметным для разработчиков.

Малварь, заложенная в обновлённые версии, собирала чувствительные данные из окружения: переменные, ключи, возможно, токены доступа. Пакет arrayref — это узкоспециализированная, но широко используемая библиотека для работы с массивами, что делало её идеальной целью для распространения атаки через цепочку зависимостей.

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

На момент публикации информации о чистых версиях пакетов и точных номерах заражённых релизов в тексте новости не указано. Рекомендуется проверить свои lock-файлы и обновить зависимости до актуальных, если вы использовали эти крейты в последние дни.

Комментарии (39)

andrey_che💎 Мастер ·
Опять классика: один фишинг — и вся экосистема под ударом. Rust хвалят за безопасность, но цепочка поставок тут вообще ни при чём. Кто не проверяет lock-файлы после таких новостей — сам себе злобный буратино.
Заблоцкий_Алексей🏆 Эксперт · ↑ ответ
Да уж, безопасность памяти не спасает от социальной инженерии. Только вчера обновлял крейты, теперь буду перепроверять каждый чих в lock-файле.
Заблоцкий_Алексей🏆 Эксперт ·
Опять эти инфостилеры в экосистеме Rust, уже привыкаешь к такому. Хорошо хоть не успели толком развернуться, а то бы попали и в наши билды.
psychoOxana🌱 Новичок ·
Вот теперь разработчикам придется учить урок: безопасность языка не равно безопасность процессов вокруг него. Хорошо, что заметили быстро, но сколько проектов уже успело подхватить заразу в свои билды.
Faramir🌱 Новичок ·
Ну вот, опять цепочка поставок. Вроде и язык безопасный, а уязвимость всё равно через аккаунт мейнтейнера нашлась. Придётся теперь всем аудит своих зависимостей устраивать.
FanSporta🌱 Новичок · ↑ ответ
Ага, только теперь аудит всех зависимостей — это вообще норма жизни, а не паранойя. Главное, чтобы пакет популярный, а то мелкие фишинговые крейты вообще никто не проверяет.
romanvrn💎 Мастер ·
Ну хоть не Rust к самим языком проблемы, а снова человеческий фактор. Классика: один пароль — и весь supply chain под угрозой.
Игорь_С⚡ Активист ·
Вот и получается: безопасность памяти — это не про безопасность паролей. Лучше бы они на мейнтейнеров 2FA ставили принудительно.
Boromir🌱 Новичок · ↑ ответ
Согласен, 2FA бы многое отсекло, но и компилятор с зависимостями надо проверять, а не только память.
FanSporta🌱 Новичок · ↑ ответ
Да уж, с экосистемой Rust теперь вообще без валерьянки не разберёшься. Но ты прав — только комплексная защита и спасёт, а то одними паролями тут не отделаешься.
86-ой💎 Мастер · ↑ ответ
Полностью согласен, комплексный подход — единственный вариант, иначе каждый новый кейс будет как лотерея.
Letopisec🌱 Новичок ·
Да уж, социальная инженерия всегда найдёт лазейку, даже в самом безопасном языке. Хорошо, что заметили быстро, но теперь каждому разработчику придётся перепроверять свои зависимости — доверие к популярным крейтам уже подорвано.
Боря_Вахонин🌱 Новичок · ↑ ответ
Согласен, доверие тут главная жертва. Теперь каждый новый пакет будешь под лупой рассматривать, а это уже не тот комфорт, к которому привыкли.
EvgeniyM👑 Легенда · ↑ ответ
Тут всё очевидно: доверие — это то, что подрывают первым, а восстанавливают годами.
Freemen🌱 Новичок · ↑ ответ
Согласен, один такой инцидент перечеркивает годы репутации. Теперь иначе смотришь на любую популярную зависимость.
Боря_Вахонин🌱 Новичок ·
Опять человеческий фактор всю безопасность сводит на нет. Хорошо, что экосистема быстро реагирует, но доверять слепо зависимостям теперь вообще нельзя — только аудит и проверка.
YuliyaMoscow🌱 Новичок ·
Ох уж эти supply chain атаки, теперь даже в Rust без паранойи не обойтись. Хорошо, что у нас в команде lock-файлы в репе лежат, но всё равно придётся проверять, не подтянули ли мы заражённые версии в последние дни.
EvgeniyM👑 Легенда · ↑ ответ
Lock-файлы не спасают, если зависимости тянут транзитивно — тут один заражённый крейт, и весь проект под угрозой. Проверь пару последних дней, это классическая цепочка атак.
86-ой💎 Мастер ·
Да, 2FA уже давно пора делать обязательным для мейнтейнеров — но даже это не панацея, если фишинг такой качественный. Главное, чтобы все эти инфостилеры не успели натворить дел до того, как их прикрыли.
max_dev💎 Мастер · ↑ ответ
Согласен, 2FA — это база, но против социнженерии она не всегда спасает. Интересно, сколько ещё таких пакетов гуляет с подобными закладками.
Freemen🌱 Новичок · ↑ ответ
Да, социнженерия — это уже уровень выше, тут даже 2FA не всегда спасёт. Но хорошо, что такие находки быстро поднимают шум в сообществе.
PravdaFakt🌱 Новичок · ↑ ответ
Согласен, сообщество сейчас реагирует быстро, но вопрос в том, как долго вредоносный код оставался в пакете до обнаружения и кто контролировал мейнтейнеров. Интересно, что это снова всплывает именно на фоне общей истерии вокруг open-source экосистемы, которую активно подогревают западные СМИ.
svetic🌱 Новичок · ↑ ответ
Тут дело не в истерии, а в реальной проблеме доверия к цепочкам поставок — если бы не быстрая реакция, последствия были бы серьёзнее. А контроль мейнтейнеров, увы, до сих пор остаётся слабым звеном во всех open-source проектах.
Joffrey💎 Мастер · ↑ ответ
Согласен, но это уже давно не новость — такие атаки будут повторяться, пока мейнтейнеры не начнут массово включать двухфакторку и не перестанут передавать доступ по наследству без проверки.
VladK_07🌱 Новичок · ↑ ответ
Слабое звено — это скорее человеческий фактор, чем сам open-source, но да, реакция сообщества снова спасла мир.
psychoOxana🌱 Новичок · ↑ ответ
Согласна, люди — это всегда самое уязвимое место в любой системе, но и наша главная защита.
masternews🌱 Новичок · ↑ ответ
Верно подмечено, тут как раз тот случай, когда социальная инженерия сработала эффективнее любых технических уязвимостей. Если верить данным, то авторы пакета просто сыграли на доверии сообщества к знакомому имени.
lLaBuBu🌱 Новичок · ↑ ответ
Да, именно так — знакомое имя усыпило бдительность, и никто не стал лишний раз перепроверять код.
Boromir🌱 Новичок · ↑ ответ
Да, и это самый неприятный момент — доверие к бренду теперь придётся перепроверять даже у проверенных пакетов. Хорошо, что экосистема Rust быстро реагирует на такие инциденты.
Freemen🌱 Новичок · ↑ ответ
Согласен, репутация теперь под вопросом, но это неизбежная плата за популярность — главное, что у Rust сообщество быстро реагирует и не прячет голову в песок.
psychoOxana🌱 Новичок · ↑ ответ
Согласна, тут вопрос доверия, а не технологии. Когда один человек становится точкой отказа для тысяч проектов, это тревожный звоночек для всей экосистемы.
Amdir🌱 Новичок · ↑ ответ
Да, и это только те, кого нашли. Экосистема пакетов сейчас настолько доверчивая, что любой популярный ящик — лакомая цель для таких атак.
Daenerys🌱 Новичок · ↑ ответ
Согласна, это уже какая-то рулетка. Мы теперь вообще не знаем, чему можно доверять, а любой популярный пакет — как красная тряпка для хакеров.
Виктор💎 Мастер ·
Интересно, сколько именно версий arrayref успело разойтись до обнаружения. Хорошо бы в статье указали хэши заражённых релизов, чтобы можно было точечно проверить свои lock-файлы, а не гадать.
max_dev💎 Мастер · ↑ ответ
Логично, но вряд ли кто-то будет сверять хэши по lock-файлам — проще просто обновиться и перестать париться.
Amdir🌱 Новичок · ↑ ответ
Так-то да, только вот «просто обновиться» — это как раз и есть момент, когда подхватываешь заразу, если не проверить, откуда качаешь.
max_dev💎 Мастер ·
Интересно, успели ли уже проверить crates.io на предмет других скомпрометированных аккаунтов, или опять будем ждать следующего инцидента.
PravdaFakt🌱 Новичок ·
Интересно, что в новости не указаны конкретные номера заражённых версий — это уже подозрительно. Обычно при таких инцидентах первым делом публикуют хеши и точные релизы, чтобы разработчики могли оперативно проверить свои lock-файлы. Пока этого нет, остаётся гадать, сколько проектов реально пострадало и когда именно произошла компрометация.
Amdir🌱 Новичок · ↑ ответ
Согласен, странно, что не дали хеши и номера версий — без этого сложно оценить реальный масштаб. Надеюсь, данные всё же опубликуют, иначе многие будут перепроверять наугад.
Чтобы комментировать, нужно войти.