عرضه ابزار Lean همراه با هستههای اثباتگر تأییدشده برای مقابله با خطاهای امنیتی — Lean now ships with verified kernels
خلاصه
زبان Lean با انتشار نسخه v4.35.0 و دستور lake check، هستههای اثباتگر جدید و تأییدشدهای را برای مقابله با آسیبپذیریهای کشفشده توسط عاملهای هوش مصنوعی ارائه کرده است. این بهروزرسانی با استفاده از رویکردهای صوری و هستههای جایگزین، امنیت بررسی اثباتها را به شکل چشمگیری افزایش میدهد.
زمینه و مقدمه
سیستم اثباتگر Lean یکی از ابزارهای قدرتمند در دنیای مهندسی نرمافزار و ریاضیات صوری است که توسعهدهندگان از آن برای اثبات درستی کدهای خود استفاده میکنند. با ظهور عاملهای هوش مصنوعی (AI agents) که در یافتن آسیبپذیریها بسیار توانا شدهاند، مشخص شد که حتی هسته (kernel) اصلی اثباتگر Lean نیز ممکن است در معرض خطاهای امنیتی و منطقی قرار بگیرد. برای مقابله با این چالش، تیم Lean نسخه جدید v4.35.0 را همراه با ابزارهای قدرتمندی برای بررسی مجدد اثباتها عرضه کرده است.
جزئیات فنی نسخه جدید و دستور lake check
در نسخه جدید، دستور lake check معرفی شده است که به توسعهدهندگان اجازه میدهد کدهای خود را صادر کرده و آنها را توسط هستههای خارجی و ایزوله مجدداً بررسی کنند. این فرایند بهطور پیشفرض درون یک سندباکس اجرا میشود (هرچند با پرچم --inadvisably-no-sandbox قابل غیرفعالسازی است).
علاوه بر این، با استفاده از پرچم --paranoid میتوانید پروژه خود را همزمان با چهار هسته جدید بررسی کنید:
- نانودا (nanoda)
- لینفورلین (lean4lean)
- کانلشه (con-leche)
- کانرون (con-ron)
همچنین در این حالت، یک نسخه از هسته اصلی که با یک تخصیصدهنده حافظه سختگیرانه کامپایل شده است اجرا میشود تا خطاهای فساد حافظه را به جای پاسخهای نادرست خاموش، به توقفهای بررسیشده تبدیل کند.
هستههای تأییدشده صوری: con-leche و con-ron
نکته برجسته این انتشار، هسته con-leche است؛ اولین هسته برای Lean که به زبان خود Lean نوشته شده و سازگاری آن به صورت صوری اثبات شده است. این اثبات با نظارت دقیق Joachim Breitner و با استفاده از مدلهای هوش مصنوعی Claude (مدلهای Fable و Opus) انجام شد. مزیت بزرگ این رویکرد حذف خطاهای برنامهنویسی در پیادهسازی هسته بدون افت عملکرد است (به طوری که کل کتابخانه Mathlib را تنها در حدود ۱۰۰ ثانیه با ۸ ترد بررسی میکند).
برای کاهش ریسک ناشی از باگهای احتمالی در کامپایلر و زمان اجرایی (Runtime)، نسخه دیگری به نام con-ron نیز ارائه شده است. این نسخه با ترجمه کدهای con-leche به زبان Rust و استفاده از ابزار صوریسازی Aeneas (ابزاری برای تأیید کدهای Rust با استفاده از Lean) توسعه یافته است. اجرای همزمان این دو هسته لایه حفاظتی مضاعفی در برابر خطاهای کامپایلر ایجاد میکند.
چرا این موضوع برای مهندسان نرمافزار مهم است؟
با رشد روزافزون پروژههای مبتنی بر Lean (که برخی از آنها به مقیاسهای کلان میلیونها خط کد رسیدهاند)، مقیاسپذیری بررسی اثباتها به یک دغدغه جدی تبدیل شده است. تیم Lean در حال کار بر روی فرمتهای صادراتی باینری و بررسی تدریجی (incremental) است. برای توسعهدهندگانی که روی سیستمهای با اطمینان بالا (High-assurance) کار میکنند، داشتن هستههای متعدد، تأییدشده و مستقل به معنای اعتماد مطلق به صحت اثباتهای ریاضی و منطقی نرمافزار است.
این مطلب بهصورت کاملاً خودکار و با هوش مصنوعی از مقالهٔ اصلی و بحث هکرنیوز تهیه شده و ممکن است خطا داشته باشد. حقوق مطلب اصلی متعلق به نویسندهٔ آن است. قوانین و گزارش مشکل