خلاصه
گوگل دیپمایند سیستم «CodeMender» را معرفی کرد؛ عامل هوش مصنوعی که بدون دخالت انسان، آسیبپذیاریهای بحرانی کد را شناسایی کرده و پچ میسازد. در ششماه گذشته ۷۲ وصله امنیتی به پروژههای متنباز ارسال کرده است. سیستم همزمان با پیدا کردن باگ، آن را برطرف میکند و حتی کد را بازنویسی میکند تا کلاسهای آسیبپذیری در آینده رخ ندهند.
مقدمه
یافتن و ترمیم حفرههای امنیتی همیشه کند و پرهزینه بوده. حالا دیپمایند عاملی ساخته که این فرآیند را خودکار میکند تا توسعهدهندهها وقتشان را صرف ساخت قابلیتهای جدید کنند.
چرا CodeMender ساخته شد؟
ابزارهای کشف خودکار، روزبهروز بیشتر خطا پیدا میکنند ولی تعداد توسعهدهندهها ثابت مانده. نتیجهاش انباشت باگهایی است که ترمیمشان نیازمند دقایق طولانی انسانی است. CodeMender این چاله را پر میکند.
ویژگیهای اصلی
ترمیم آنی
به محض اینکه آسیبپذیری شناسایی میشود، پچ آماده میکند و برای بررسی انسانی ارسال میکند.
سختسازی پیشگیرانه
کدهای موجود را بازنویسی میکند تا کلاسهای حمله مثل «ریختن بافر» بهطور کلی از بین بروند.
چک خودکار
هر وصله را در برابر آزمونها، سبک کدنویسی پروژه و عدم regression تست میکند.
فناوری درون CodeMender
مدل Gemini Deep Think قابلیت استدلال پیچیده دارد. سیستم با ترکیب تحلیل ایستا، پویـا، fuzzing و حلگر SMT جرئیترین نقاط ضعف را ردیابی میکند.
معماری چندعاملی
- عامل اصلی: مسئول تولید وصله
- عامل ناقد: مقایسه نسخه قدیم و جدید و گزارش تفاوتها
- عامل تصحیحگر: در صورت شکست تست، مسیر جدید را امتحان میکند
مثالهای واقعی
heap buffer overflow در کتابخانه XML
گزارش کرش اشاره به سرریز بافر داشت، ولی ریشه در مدیریت پشته بود. CodeMender با اشکالزدا root cause را پیدا کرد و فقط چند خط تغییر داد.
مشکل طول عمر اشیا در کد درونزاد C
در پروژهای که کد C تولید میکرد، عمر متغیرها پیچیده بود. عامل، ساختار کنترلی را تغییر داد تا pointerها همیشه معتبر بمانند.
سختسازی پیشگیرانه libwebp
کتابخانهای که سال قبل با CVE-2023-4863 مورد حمله قرار گرفت. CodeMender حاشیهنویسی -fbounds-safety را اضافه کرد تا هر بافر قبل از write کنترل شود.
برنامه بعدی دیپمایند
هماکنون تمام وصلهها توسط انسان نهایی میشود. پس از جمعآوری بازخورد جامعه، نسخه عمومی و API ارائه خواهد شد و مقالات فنی منتشر میشود.
چه چیزی میآموزیم؟
- عامل هوش مصنوعی میتواند فراتر از کشف، «ترمیم خودکار» را هم انجام دهد.
- چکلیست validation مانع خطاهای گرانقیمت میشود.
- بازخورد انسانی هنوز در حلقه ضروری است ولی نقشش از «انجام» به «تایید» تغییر کرده.
