LLMها چقدر تو پیداکردن باگ امنیتی خوبن؟
خلاصهٔ کاملتر
یه محقق امنیت به اسم Parsiya توی یه آزمایش مفصل بررسی کرده که مدلهای زبانی بزرگ (LLM) چقدر توی triage یا دستهبندی آسیبپذیریهای امنیتی توی کد خوبن — و مهمتر، اینکه آیا reasoning بیشتر و مدل جدیدتر لزوماً نتیجهٔ بهتری میده یا نه. به گفتهٔ نویسنده، این کار ادامهٔ آزمایشهای قبلیِ Kurt از تیم Semgrep روی بنچمارک mythos-benه.
متدولوژیاش این بود: ۲۶ ترکیب از مدل و سطح تلاش — شامل Claude 4.6، 4.7 و 4.8 و GPT-5.4 و 5.5 با reasoningهای low/med/high/xhigh و اندازههای مختلف context (از ۲۰۰هزار تا ۱میلیون توکن). دو باگ واقعی بهعنوان کیس تست انتخاب شدن (یکی توی کد شبکهٔ OpenBSD و یکی توی NFS مربوط به FreeBSD) و در دو حالت به مدل داده شدن: کل فایل، یا فقط تابع آسیبپذیر. هر ترکیب ۲۰ بار اجرا شد، جمعاً ۲۰۸۰ کیس، و مدلها هیچ دسترسیای به ابزار نداشتن.
برای اینکه ۲۰۸۰ نتیجه رو دستی داوری نکنه، نویسنده یه «شورای» چهار مدلی ساخت (دو GPT و دو Claude) و رأی اکثریت رو ملاک گرفت. این شورا توی ۸۶٪ موارد اتفاقنظر کامل داشت و فقط ۲.۸٪ بدون اکثریت موند؛ نویسنده میگه احتمالاً یه شورای با تعداد فرد بهتر جواب میده تا رأیها گره نخوره.
یافتهٔ اصلی خلاف انتظار بود: reasoning بیشتر عموماً بهتره ولی نه همیشه. تلاش «low» توی همهٔ مدلها بدترین بود، ولی مثلاً gpt-5.5 با «med» بهتر از «high» و «xhigh» عمل کرد و بعضی نسخههای Claude هم با «high» بهتر از «xhigh» بودن. به قول نویسنده، گاهی مدلهای «باهوشتر» اونقدر فکر میکنن که خودشونو گیج میکنن. جالب اینکه هرچی reasoning بالاتر میرفت، نرخ رد درخواست بهخاطر فیلتر محتوا هم بیشتر میشد.
دربارهٔ دقت هم دو تصویر متفاوت درومد. پیداکردن «یه چیزی» نسبتاً راحت بود (حدود ۷۰.۸٪ کیسها لااقل بخشی از باگ رو پیدا کردن)، ولی کشف کل زنجیرهٔ آسیبپذیری خیلی سخت بود و فقط حدود ۱.۹٪ کیسها به راهحل کامل رسیدن. مهمترین الگو این بود که وقتی فقط تابع آسیبپذیر به مدل داده میشد، عملکرد بهشکل چشمگیری بهتر از حالت «کل فایل» بود؛ توی کیس OpenBSD نرخ موفقیت از ۹۱٪ (حالت تابع) به فقط ۱.۷٪ (حالت کل فایل) سقوط کرد.
چند نکتهٔ جانبی هم جالبه: تنها مدلهایی که توی تحلیلشون به شناسهٔ CVE اشاره کردن، Claudeها بودن؛ بهترین عملکرد کلی مالِ gpt-5.4 با تلاش xhigh بود؛ و کل هزینهٔ این آزمایشها حدود ۹۲۰۰ دلار برآورد شده (که با توکن رایگان GitHub Copilot انجام شده). جمعبندی عملیِ نویسنده اینه که بهجای پاسدادن کل فایل، بهتره هر تابع رو جدا به مدل بدی و لازم نیست حتماً سراغ گرانترین و جدیدترین مدل بری.
نکات کلیدی:
- بنچمارک ۲۶ ترکیب از مدلهای Claude و GPT روی triage دو آسیبپذیری واقعی کد
- reasoning بیشتر و مدل جدیدتر همیشه بهتر نیست؛ «low» بدترین بود ولی gpt-5.5-med از high/xhigh بهتر شد
- پیداکردن بخشی از باگ راحت بود (~۷۰٪) ولی کشف کل زنجیره خیلی سخت (زیر ۲٪)
- حالت «فقط تابع» بهشدت بهتر از «کل فایل» جواب داد
- reasoning بالاتر نرخ رد بهخاطر فیلتر محتوا رو هم بالا برد؛ فقط Claudeها به CVE اشاره کردن
- جمعبندی: هر تابع رو جدا به مدل بده و لزوماً سراغ گرانترین مدل نرو




