ارتقای اعتماد سختافزاری در CI راست—بدون انتشار کامپایلر جدید
تیم زیرساخت Rust حفاظت با کلیدهای سختافزاری را برای سامانههای حیاتی گسترش داده، اجراکنندههای CI مبتنی بر PowerPC و RISC-V افزوده و زمان بررسی قابلیت ادغام Bors را از حدود ۳۰ دقیقه به یک دقیقه رسانده است. این تغییرات نشان میدهند که قابلیت اتکای کامپایلر بیشازپیش به امنیت و قابلیت حمل خط انتشار پروژه وابسته است.

مهمترین بهروزرسانی Rust خارج از کامپایلر رخ داده است
گزارش اخیر تیم زیرساخت Rust از تغییری کمسروصداتر اما مهم خبر میدهد: پروژه در حال ایمنسازی سامانههایی است که نرمافزار Rust را میسازند، آزمایش میکنند، بازبینی میکنند و منتشر میسازند. گزارش ۱۵ ژوئیه از پشتیبانی جدید کلیدهای امنیتی سختافزاری برای زیرساخت حیاتی، اجراکنندههای CI خارجی برای PowerPC و RISC-V، تنظیمات مشترک Renovate و کاهش چشمگیر زمان بررسی قابلیت ادغام در Bors خبر میدهد.
این یک بهروزرسانی برای سختسازی زیرساخت و قابلیت حمل CI است، نه انتشار کامپایلر Rust. در این گزارش قابلیت زبانی جدید یا نسخه پایدار تازهای از rustc معرفی نشده است. اهمیت آن عملیاتی است: اعتمادپذیری اکوسیستم کامپایلر فقط به کد کامپایلر وابسته نیست؛ بلکه به این هم بستگی دارد که چه کسی میتواند مخازن را تغییر دهد، هدفهای مختلف چگونه آزمایش میشوند و نگهدارندگان با چه سرعتی تغییرات را پردازش میکنند.
کلیدهای سختافزاری، دسترسی ممتاز را از رمز عبور فراتر میبرند
تیم زیرساخت Rust اکنون از کاربران ممتاز سرویسهای حیاتی میخواهد قویترین روش احراز هویت چندعاملیِ پشتیبانیشده را به کار ببرند. سیاست این تیم کلیدهای سختافزاری سازگار با FIDO2/WebAuthn را بالاتر از گذرواژههای عبوری و برنامههای TOTP قرار میدهد و سرویسهایی مانند GitHub، AWS، Azure، Datadog، Fastly، Heroku و زیرساخت Google را دربرمیگیرد.
بنیاد Rust برای اعضای واجد شرایط تیمهای infra، crates.io، docs.rs، release، triagebot و bors کلیدهای YubiKey فراهم میکند. این سیاست همچنین در صورت امکان استفاده از یک روش تأیید پشتیبان را لازم میداند و میگوید اگر دستگاهی گم شد باید فوراً از همه سامانهها لغو شود.
این کار زیرساخت Rust را در برابر همه تهدیدها مصون نمیکند، اما اتکا به تلفن شخصی یا حساب مدیر رمز عبور یک نگهدارنده را هنگام عملیات ممتاز کاهش میدهد. برای پروژهای که خروجیهایش از طریق ابزارهای توسعه، فهرست بستهها، سرویسهای مستندات و CI مصرف میشوند، این کاهش در یک دسته از خطرهای تصاحب حساب اهمیت دارد.
معماریهای بیشتری وارد سطح آزمایش میشوند
پروژه همچنین اجراکنندههای خارجی GitHub Actions را برای مخازن PowerPC و RISC-V فعال کرده است. مستندات Forge توضیح میدهد که وقتی اجراکنندههای میزبانیشده GitHub بهطور بومی از هدفی پشتیبانی نمیکنند، از اجراکنندههای self-hosted استفاده میشود. مستندات فعلی یک اجراکننده لینوکسی PowerPC و گونههایی از Ubuntu برای RISC-V را فهرست میکند و ظرفیت همزمانی و محدوده مخازن مجاز را بهصورت عمومی نشان میدهد.
این موضوع مهم است، چون موفقیت ساخت روی x86-64 ثابت نمیکند که یک زبان سیستمی روی همه معماریهای پشتیبانیشده درست رفتار میکند. تولید کد وابسته به معماری، عملیات اتمیک، رفتار linker و فرضهای کتابخانه استاندارد ممکن است تا زمان آزمایش روی هدف واقعی پنهان بمانند. سختافزار خارجی سطح آزمایش را گستردهتر میکند و سیاست منتشرشده اجراکنندهها به نگهدارندگان اجازه میدهد مالک ماشینها و مخازن مجاز را بررسی کنند.
البته زیرساخت self-hosted یک مرز اعتماد دیگر هم ایجاد میکند. مستندات Rust از مشارکتکنندگان میخواهد پیش از افزودن اجراکننده، قابلیتهای آن و سیاست اجراکنندههای خارجی را بررسی کنند. پروژههایی که از این الگو استفاده میکنند باید اسرار ممتاز را از workflowهای غیرقابل اعتماد دور نگه دارند، برچسبهای اجراکننده را محدود کنند و میزبان را بخشی از طراحی امنیت زنجیره تأمین بدانند.
بررسی سریعتر ادغام، اقتصاد نگهداری را تغییر میدهد
همان گزارش میگوید Rust Bors را از API REST گیتهاب به API گرافکیوال منتقل کرده و زمان بررسی قابلیت ادغام pull request را از میانگین حدود ۳۰ دقیقه به حدود یک دقیقه رسانده است. این فقط بهبود یک داشبورد نیست؛ حلقه بازخورد مشارکتکنندگان را کوتاه میکند و زمان انتظار تغییر برای تصمیم خودکار را کاهش میدهد.
Rust همچنین پشتیبانی از بازبینی جامعه را در Triagebot برای Clippy اضافه کرده است تا مخزن بتواند تخصیص بازبین را تا انجام یک یا چند بازبینی اجتماعی به تأخیر بیندازد. تنظیمات مشترک Renovate نیز بهروزرسانی وابستگیها و GitHub Actions را در مخازن Rust استانداردتر میکند و شامل pull requestهای هشدار آسیبپذیری و نگهداری زمانبندیشده lockfile است.
این تغییرات امنیت را به سرعت کار پیوند میدهند. خودکارسازی سریع فقط زمانی مفید است که مجوزها، بهروزرسانی وابستگیها و پوشش معماری همچنان قابل مشاهده و کنترل باشند. پروژه Rust این موارد را یک سامانه نگهداری واحد میبیند، نه مجموعهای از وظایف جداگانه ابزارها.
نتیجه برای سازندگان Rust
برای تیمهایی که سرویسهای Rust، ابزارهای قرارداد هوشمند یا زیرساخت چندسکویی میسازند، درس عملی گستردهتر از «یک کلید امنیتی بخرید» است. کل مسیر انتشار را ممیزی کنید: احراز هویت مدیران، مالکیت اجراکنندههای CI، پوشش معماری، سیاست بهروزرسانی وابستگی و خودکارسازی ادغام.
جهت فعلی Rust نشان میدهد بلوغ اکوسیستم در مرز پیرامون rustc نیز سنجیده میشود؛ جایی که کد منبع به باینری، بسته یا اثر انتشار تبدیل میشود. کامپایلر همچنان مرکز ماجراست، اما خط لولهای که از آن محافظت و آزمایش میکند نیز دارد به بخشی از داستان مهندسی Rust تبدیل میشود.
خبرخوان را در ایمیل بگیرید
هر سیگنال تازه، مستقیم از خط تولید. بدون مزاحمت، لغو عضویت در هر زمان.


