needhelp
← Back to blog

دبیان ۱۴ «Forky» اولین توزیع عمده خواهد بود که بیلدهای قابل بازتولید را الزامی می‌کند

by needhelp
debian
reproducible-builds
linux
security
open-source

در ۱۰ می ۲۰۲۶، تیم انتشار دبیان اعلام کرد نرم‌افزار مهاجرت دبیان حالا هر بسته‌ای را که نمی‌تواند بیت‌به-بیت بازتولید شود (یا در قابلیت بازتولید پسرفت کند) از ورود به شاخه testing مسدود می‌کند. یعنی دبیان ۱۴ «Forky»، که در ۲۰۲۷ انتظار می‌رود، اولین توزیع لینوکس همه‌منظوره بزرگ خواهد بود که بیلدهای قابل بازتولید را برای همه بسته‌ها الزامی می‌کند.

اعلامیه کامل همچنین تأیید کرد LoongArch64 (Loong64) به طور رسمی به آرشیو دبیان اضافه شده.

این صرفاً یک تنظیم خط‌مشی نیست. یک تغییر ساختاری در نحوه تضمین یکپارچگی زنجیره تأمین نرم‌افزار توسط یکی از قدیمی‌ترین و تأثیرگذارترین توزیع‌های لینوکس است.

چرا حالا؟ در پشتی XZ به عنوان نقطه عطف

برای فهم اهمیت این، باید در پشتی XZ Utils (CVE-2024-3094) را بفهمی—حمله زنجیره تأمینی که Alex Stamos محقق امنیتی آن را «گسترده‌ترین و مؤثرترین در پشتی که تا به حال در هر محصول نرم‌افزاری کارگذاشته شده» نامید.

در ۲۰۲۴، یک مهاجم بیش از دو سال را صرف مهندسی اجتماعی برای ورود به اعتماد نگهدارنده پروژه xz/liblzma کرد—کمپین‌های فشار، عروسک‌های جورابی، فوریت جعلی—قبل از کارگذاشتن یک در پشتی در باینری‌های کتابخانه فشرده‌سازی که توسط هر توزیع عمده لینوکس عرضه می‌شد. در پشتی به هرکس با یک کلید خصوصی Ed448 خاص اجرای کد از راه دور به عنوان روت را از طریق SSH می‌داد. نمره CVSS آن ۱۰.۰ بود—حداکثر شدت ممکن. تنها دلیل کشف آن قبل از استقرار گسترده این بود که مهندس مایکروسافت Andres Freund متوجه شد لاگین‌های SSH او ~۵۰۰ms کندتر از حد معمول است.

درس کلیدی: اگر نمی‌توانی یک باینری را از منبع آن بازتولید کنی، نمی‌توانی بدانی واقعاً چه می‌کند. کد مخرب XZ فقط در tarballهای انتشار وجود داشت—نه در مخزن git. یک راه‌اندازی بیلد قابل بازتولید فوراً این ناهماهنگی را پرچم می‌زد: tarball و git checkout باینری‌های متفاوتی تولید می‌کردند و بیلد رد می‌شد.

مکانیسم اجرا: چه چیزی واقعاً تغییر کرد

پروژه بیلدهای قابل بازتولید از ۲۰۱۴ وجود داشته. دبیان یک شرکت‌کننده اصلی بوده. بیش از ۹۵٪ بسته‌های منبع دبیان قبل از این اعلامیه قابل بازتولید بودند. چیزی که در ۱۰ می تغییر کرد اضافه شدن یک دروازه سخت در ابزار مهاجرت بود.

اهمیت عمیق‌تر: این واقعاً چه معنایی دارد

۱. تغییر مدل اعتماد: از «به ما اعتماد کن» به «ما را تأیید کن»

قبل از این تغییر، مدل اعتماد این بود: «دیمون‌های بیلد دبیان امن هستند؛ اعتماد کن باینری‌ای که می‌فرستیم با منبعی که نشانت می‌دهیم مطابقت دارد.»

بعد از این تغییر، مدل به این شکل تغییر می‌کند: «هرکسی می‌تواند به طور مستقل تأیید کند که آنچه می‌فرستیم با منبع مطابقت دارد. اگر نداشته باشد، سیستم از ارسال آن امتناع می‌کند.»

۲. فشار اقتصادی روی بالادست

پروژه‌های بالادستی که از بیلدهای قابل بازتولید پشتیبانی نمی‌کنند از دبیان حذف خواهند شد. دبیان دارد فشار اقتصادی پاییندستی روی کل اکوسیستم متن‌باز اعمال می‌کند تا شیوه‌های بیلد قطعی را بپذیرند.

۳. اثرات پاییندستی: اوبونتو، کالی و فراتر

دبیان بالادست برای بیش از ۱۲۰ توزیع مشتق است. وقتی دبیان بیلدهای قابل بازتولید را برای شاخه testing الزامی می‌کند، هر مشتقی که testing را دنبال می‌کند این تضمین را به ارث می‌برد.


References

Share this page