حمله زنجیره تأمین به بستههای Rust
خلاصهٔ کاملتر
به گفتهٔ تیم Security Response پروژهٔ Rust، صبح ۲۰ آگوست یه گزارش رسید که crate به اسم proc-macro1 مخربه. بعد از بررسی معلوم شد این crate یه اسکریپت build داشته که یه فایل مخرب رو دانلود میکرده. این crate و چندتای مشابهش مثل proc-macro-en، aovine و arone هم از crates.io حذف شدن.
جالبتر اینکه معلوم شد crate محبوب arrayref هم اخیراً دوباره منتشر شده بود و بهش وابستگی به همون crate مخرب اضافه شده بود، در حالی که نسخههای جدیدترش yank شده بودن (یعنی از دسترس خارج شده بودن). تیم امنیتی این نسخهٔ مخرب رو حذف کرد و نسخههای سالم قبلی رو دوباره فعال کرد. پکیجهای دیگهای از همون نویسنده مثل internment و append-only-vec هم همین سرنوشت رو داشتن.
طبق این گزارش، نویسندهٔ اصلی این پکیجها احتمالاً مقصر نبوده و بهجاش کامپیوتر یا اکانتش هک شده؛ برای همین تیم امنیتی اکانتش رو بهعنوان یه اقدام احتیاطی قفل کرده و داره تلاش میکنه باهاش تماس بگیره. زمان آنلاین بودن نسخههای آلوده کوتاه بود؛ مثلاً arrayref@0.3.10 فقط ۸۶ دقیقه و internment@0.8.7 حدود ۹۰ دقیقه روی crates.io در دسترس بودن.
تیم Rust توصیه کرده اگه از این پکیجها استفاده میکنی، کش رجیستری محلیتو چک کنی تا مطمئن بشی نسخهٔ آلوده دانلود نشده:
find ~/.cargo/registry/cache -type f \
\( -name 'arrayref-0.3.10.crate' \
-o -name 'internment-0.8.7.crate' \
-o -name 'proc-macro1-*.crate' \) -printنکات کلیدی:
- crate مخرب proc-macro1 یه اسکریپت build داشت که یه فایل مخرب رو دانلود میکرد.
- arrayref@0.3.10 حدود ۸۶ دقیقه و internment@0.8.7 حدود ۹۰ دقیقه روی crates.io آنلاین بودن.
- append-only-vec و internment هم بهخاطر همون نویسنده تحت تأثیر قرار گرفتن.
- تیم امنیتی اکانت نویسنده رو قفل کرده؛ میگن به نظر نمیرسه خودش مقصر باشه.




