تحقق صوری نرمافزار در مقیاس بزرگ با کمک مدلهای هوش مصنوعی Claude — LLMs are making formal software verification feasible at a much larger scale
خلاصه
شرکت Anthropic در همکاری با Theorem نشان داد که مدلهای زبانی بزرگ مانند Claude میتوانند اثباتهای ریاضی و صوری صحت کدهای سطح پایین (Assembly) را در مقیاس وسیع تولید کنند. این رویکرد امکان تضمین امنیت نرمافزارها را به شکلی خودکار و فراتر از محدودیتهای تست سنتی فراهم میکند.
مقدمه و زمینه
نرمافزارهای مدرن، حتی آنهایی که به شدت تست شدهاند، همواره با باگهای امنیتی دست به گریبان هستند. برای نمونه، در کرنل لینوکس (Linux) که یکی از حیاتیترین پروژههای متنباز جهان است، همواره آسیبپذیریهای متعددی کشف میشود. در حالی که ابزارهای سنتی مانند Fuzzing برای پیدا کردن باگها عالی هستند، اما اثبات قطعی اینکه هیچ باگی در سیستم باقی نمانده است، کار بسیار دشوار و زمانبری است.
اینجا است که مفهوم «تحقق صوری نرمافزار» یا Formal Software Verification مطرح میشود. در این روش، کدهای برنامه به مدلهای ریاضی تبدیل میشوند تا اثبات شود که هیچگاه قوانین امنیتی نقض نخواهند شد. با این حال، به دلیل حجم بسیار زیاد اثباتها و نیاز به تخصص بسیار بالا، این تکنیک تا پیش از این تنها در پروژههای فوقالعاده حساس مانند صنایع هوافضا (مانند سیستمهای Airbus) کاربرد داشت.
جزئیات فنی و دستاوردها
در همکاری اخیر شرکت Anthropic با پلتفرم Theorem، مدل هوش مصنوعی Claude توانست به صورت خودکار اثباتهای صحت (Correctness Proofs) را برای بیش از ۱۰۰ کتابخانه متنباز تولید کند. این پروژه روی کدهای کامپایلشدهی سطح پایین (معماری RISC-V و سیستمعامل Linux) اجرا شد.
- تبدیل تست به اثبات: تیم تحقیقاتی به جای نوشتن مشخصات پیچیده از صفر، تستهای Fuzz موجود در پروژههای OSS-Fuzz را به مدلهای ریاضی تبدیل کرد.
- مقیاس کار: Claude توانست برای ۲۳۹ نقطه ورود (Entry Point) در ۱۲۳ کتابخانه مختلف ثابت کند که برنامهها تحت ورودیهای تا سقف ۶۴ مگابایت دچار خطای حافظه یا کرش (Crash) نمیشوند.
- حجم کد تولیدی: این اثباتها به زبان Rocq (که پیشتر با نام Coq شناخته میشد) نوشته شدهاند و حجم کل آنها به حدود ۱۸۰ میلیون خط کد میرسد که توسط Proof Checker بررسی میشوند.
- کشف باگهای پنهان: در حین فرآیند اثبات، کلود توانسته است باگهای عمیقی را کشف و حتی پچ کند که ابزارهای Fuzzing سنتی پس از تریلیونها بار اجرا نیز موفق به یافتن آنها نشده بودند؛ از جمله باگهای زیر جریان (Counter Underflow) و دسترسیهای غیرمجاز به حافظه.
چرا این موضوع برای مهندسان مهم است؟
این دستاورد نشان میدهد که هوش مصنوعی در حال تغییر دادن معادلات در حوزهی مهندسی نرمافزار امن است. هزینهی بالای نوشتن اثباتهای صوری همواره مانع اصلی استفاده از آنها بوده است. با ورود LLMها به این حوزه، تولید اثباتهای بزرگ دیگر نیازمند سالها تلاش متخصصان انسانی نیست.
همانطور که در بحثهای جامعهی هکرنیوز (Hacker News) نیز اشاره شده است، اگرچه این ایجنتها در تولید اثباتهای حجیم بسیار توانمند هستند، اما چالش اصلی در آینده مقیاسپذیری این سبک اثبات برای برنامههای پیچیدهتر و ساختاریافتهتر خواهد بود. با این حال، این روش مسیری جدید را برای توسعه نرمافزارهای تضمینشده از نظر امنیتی باز میکند.
این مطلب بهصورت کاملاً خودکار و با هوش مصنوعی از مقالهٔ اصلی و بحث هکرنیوز تهیه شده و ممکن است خطا داشته باشد. حقوق مطلب اصلی متعلق به نویسندهٔ آن است. قوانین و گزارش مشکل