GitHub مدل کوچک را جای LLM گذاشت؛ هزینهٔ اسکن ۹۸٪ کم شد

|نویسنده: تیم تحریریه QUASA|6 دقیقه مطالعه
GitHub مدل کوچک را جای LLM گذاشت؛ هزینهٔ اسکن ۹۸٪ کم شد

GitHub در گزارش فنی ۱۳ اکتبر ۲۰۲۶، به‌روزشده در ۱۴ اکتبر شرح داد که در اسکن رازهای کد، طبقه‌بند کوچک ModernBERT را پس از فیلتر regex جای مرحلهٔ مبتنی بر LLM گذاشته است؛ در مقایسه با خط لولهٔ پیشین خود، هزینهٔ سرویس‌دهی مدل بیش از ۹۸٪ و میانهٔ زمان اجرای اسکن پس از push، ۸۶٪ کاهش یافت. این تغییر برای تشخیص اعتبارنامه‌هایی است که قالب مشخصی ندارند و ممکن است از نظر ظاهری با مقدارهای بی‌خطر یکسان باشند.

تحلیل WebPulse به دو دسته نتیجه اشاره می‌کند: در ارزیابی آفلاین روی ترافیک عمومی یکسان، precision به‌طور نسبی ۱۳٪ و recall به‌طور نسبی ۱۹٪ بهتر شد؛ در آزمایش A/B مشتریان نیز پذیرش هشدار با وزن‌دهی برحسب مالک مخزن ۱۱٫۵٪ افزایش یافت. این اعداد از سنجش داخلی GitHub می‌آیند. نرخ‌های مطلق precision و recall منتشر نشده‌اند، پس نتیجهٔ آزمایش رتبهٔ این اسکنر را در برابر محصولات دیگر مشخص نمی‌کند.

اسکن تازه چگونه از کد به هشدار می‌رسد

خط لوله با یک جست‌وجوی گسترده آغاز می‌شود. الگوهای regex در محتوای مخزن رشته‌هایی را جدا می‌کنند که به کلید، توکن یا گذرواژه شباهت دارند. اگر رشته‌ای در همین نقطه پیدا نشود، طبقه‌بند بعدی نیز آن را نمی‌بیند؛ در عوض، دامنهٔ گستردهٔ regex نمونه‌ها و شناسه‌های غیرحساس را هم وارد صف بررسی می‌کند.

ModernBERT هر نامزد را همراه با مسیر فایل، نوع راز، نام متغیر و بخش محدودی از کد یا متن اطراف آن ارزیابی می‌کند. خروجی، امتیازی برای احتمال واقعی بودن اعتبارنامه است؛ یافته‌های با اطمینان کافی به هشدار تبدیل می‌شوند و موارد شبیه مقدار جایگزین یا دادهٔ آزمون کنار می‌روند. مسیر تصمیم چنین است: محتوای مخزن ← نامزدهای regex ← داوری زمینه‌ای ModernBERT ← هشدار یا حذف نامزد. مدل کوچک در مرحلهٔ داوری جای فراخوانی LLM را گرفته و یافتن اولیهٔ نامزدها همچنان بر عهدهٔ الگوهاست.

اهمیت زمینه را می‌توان در دو رشتهٔ ظاهراً مشابه دید: گذرواژه‌ای کنار نشانی پایگاه دادهٔ عملیاتی و همان شکل رشته در دادهٔ آزمون. نشانی localhost در راهنمای نصب، چک‌سام و شناسهٔ ساخت هم ممکن است به الگوهای کلی بخورند. افزودن استثنا برای هر شکل ظاهری می‌تواند یک راز واقعی را نیز پنهان کند؛ طبقه‌بند از جای رشته و واژه‌های پیرامون آن برای جدا کردن این موارد استفاده می‌کند.

چرا یک مدل محدود کافی بود

وظیفهٔ این مرحله تولید پاسخ نوشتاری نیست؛ باید برای هر نامزد دربارهٔ احتمال راز بودن تصمیم بگیرد. ModernBERT یک رمزگذار تنظیم‌شده برای طبقه‌بندی است و روی پنجره‌ای محدود از مقدار و زمینه کار می‌کند. چنین ورودی و خروجی‌ای امکان تنظیم آستانهٔ هشدار با معیارهای تشخیص را فراهم می‌کند، بدون آنکه برای هر رشته پاسخی متنی از یک مدل زایشی دوردست گرفته شود.

دادهٔ آموزش از نمونه‌های به‌دست‌آمده از تجربهٔ محصول، نامزدهای استخراج‌شده با regex از مخزن‌ها و موارد مصنوعی برای وضعیت‌های کم‌نمونه تشکیل شده است. در میان آن‌ها «منفی‌های دشوار» نقش ویژه‌ای دارند: مقدارهای آزمایشی، نمونه‌های مستندات، کلیدهای عمومی، چک‌سام‌ها و رشته‌های ساختگی که ظاهر یک راز را دارند اما اعتبارنامهٔ قابل استفاده نیستند. نمونه‌های مصنوعی پیش از ورود به آموزش از اعتبارسنجی قطعی و بررسی کیفیت مبتنی بر مدل می‌گذرند.

برای کاهش خطر خوش‌بینی در ارزیابی، ردیف‌هایی که مخزن، مقدار نامزد یا مثال مشترک داشتند پیش از جداسازی دادهٔ آموزش و آزمون با هم گروه‌بندی شدند. آستانهٔ تصمیم ابتدا در ارزیابی آفلاین انتخاب و سپس روی ترافیک شبیه محیط عملیاتی سنجیده شد. مدل آموزش‌دیده به قالب ONNX منتقل و با کوانتیزه‌سازی ۸بیتی برای اجرای سریع آماده شده است. دادهٔ نزدیک به خطاهای واقعی و شیوهٔ اجرای مدل، هر دو بخشی از تغییرند.

هر شاخص چه چیزی را اندازه می‌گیرد

precision سهم هشدارهای درست را در میان همهٔ هشدارهای صادرشده می‌سنجد؛ recall سهم رازهای واقعی پیداشده را در میان رازهای واقعی موجود در مجموعهٔ ارزیابی نشان می‌دهد. بهتر شدن هر دو در آزمون آفلاین روی همان ترافیک عمومی، نشانهٔ بهبود مرز تصمیم نسبت به خط لولهٔ قبلی GitHub است. اما بدون نرخ‌های خام، تعداد نمونه‌ها و فاصلهٔ اطمینان، نمی‌توان حساب کرد از هر چند هشدار یکی نادرست است یا چه سهمی از رازها همچنان از دید اسکنر می‌گذرند.

پذیرش هشدار به رفتار دریافت‌کننده مربوط است: مالک مخزن یک یافته را می‌پذیرد یا آن را کنار می‌گذارد. وزن‌دهی برحسب مالک مخزن اثر مشتریانی را کم می‌کند که شمار زیادی هشدار را یکجا تعیین تکلیف می‌کنند. این شاخص برای فهم مفید بودن هشدارها در محیط واقعی ارزش دارد، اما با precision آزمایش آفلاین یکسان نیست. از افزایش پذیرش نیز نمی‌توان کاهش واقعی نشت اعتبارنامه یا شمار رخدادهای پیشگیری‌شده را نتیجه گرفت.

زمان میانهٔ اسکن پس از push، سرعت اجرای مسیر عملیاتی را نشان می‌دهد؛ هزینهٔ سرویس‌دهی نیز هزینهٔ اجرای طبقه‌بند فشرده را در برابر فراخوانی LLM از راه دور مقایسه می‌کند. هیچ‌یک به‌تنهایی قیمت اشتراک، هزینهٔ بررسی انسانی یا مخارج کامل Secret Protection را تعیین نمی‌کند. مقایسهٔ اعلام‌شده فقط با خط لولهٔ پیشین خود GitHub انجام شده است؛ حجم نامزدها، آستانهٔ هشدار و زیرساخت یک سازمان دیگر می‌تواند نتیجهٔ متفاوتی بسازد.

عرضهٔ مدل و تفاوت پیش و پس از push

بر پایهٔ اطلاعیهٔ عرضهٔ ۷ اکتبر ۲۰۲۶ GitHub، مشتریانی که از هشدارهای AI-detected Password استفاده می‌کردند به مدل تازه منتقل شده‌اند؛ تشخیص رازهای بدون قالب مشخص هنگام push در پیش‌نمایش خصوصی است. اسکن هشدارهای موجود برای مشتریان GHSP و GHAS در پوشش خریداری‌شده می‌ماند. بررسی اختیاری هنگام push قرار است از AI Credits استفاده کند و صورت‌حساب مصرفی آن پس از انتخاب و فعال‌سازی پیش‌نمایش عمومی آغاز شود.

اسکن پس از push وقتی کد وارد مخزن شده، یافته را برای رسیدگی ثبت می‌کند. محافظت هنگام push پیش از پذیرفته شدن تغییر می‌تواند به توسعه‌دهنده فرصت حذف اعتبارنامه بدهد؛ کاهش زمان اجرای طبقه‌بند، رساندن تشخیص زمینه‌آگاه به این نقطه را عملی‌تر کرده است. هشدار پس از ثبت تغییر و جلوگیری از ورود آن به تاریخچهٔ مخزن پیامدهای متفاوتی برای تیم امنیت دارند.

برای مقایسهٔ این نتایج با ابزار خود، تیم AppSec باید بداند نامزدها با چه پوششی تولید می‌شوند، هشدار در کدام لحظه صادر می‌شود و پذیرش آن چگونه اندازه‌گیری می‌شود. نرخ‌های خام precision و recall، اندازهٔ مجموعهٔ آزمون و تفکیک هزینهٔ مدل از هزینهٔ کل اسکن نیز برای برآورد اثر در مخزن‌های همان تیم لازم‌اند. تا انتشار چنین داده‌هایی، کاهش هزینه راهنمایی برای انتخاب معماری است، اما تعداد رازهایی را که در یک سازمان از دید اسکنر می‌گذرند پیش‌بینی نمی‌کند.

بیشتر بخوانید:

اشتراک‌گذاری:

عضویت در خبرنامه

تازه‌ترین اخبار Web3، هوش مصنوعی و رمزارز را مستقیم در صندوق ایمیل خود دریافت کنید.

0